FRP内网穿透搭建记录
FRP内网穿透搭建记录

FRP内网穿透搭建记录

内容纲要

FRP内网穿透搭建记录

1.前言

虽然现在家里有公网环境,但是有一台在国内的服务器,没有公网的情况下,就需要用到内网穿透。使用FRP可以给在内网的服务器搭建一个隧道到有公网的服务器,实现内网穿透,这样你的公网服务器就可以达到中转的职责,只需要映射内网服务器的对应端口,就可以使用公网服务器的IP加端口来访问内网的服务。

手里有几台甲骨云的服务器闲置着,正好来搭建一个顺便记录一下方法。

2.准备工作

  • 一台处于内网的服务器
  • 一台拥有公网IP的VPS(甲骨云amd)*1

3.防火墙配置

甲骨云的服务器我是使用的Ubuntu22.04,因为甲骨云有独特的防火墙设置,所以需要对服务器的防火墙配置开放对应的端口。

参考网上的文章可以使用以下方法开放端口

  • 直接删除 iptables 规则

    COPYsudo rm -rf /etc/iptables && reboot
  • 开放所有端口

    COPYsudo iptables -P INPUT ACCEPT
    sudo iptables -P FORWARD ACCEPT
    sudo iptables -P OUTPUT ACCEPT
    sudo iptables -F
    sudo apt-get purge netfilter-persistent
    reboot
  • 只开放特定端口

    COPYsudo iptables -I INPUT -s 0.0.0.0/0 -p tcp --dport 要放行的端口号 -j ACCEPT
    sudo iptables-save
    sudo apt-get update
    sudo apt-get install iptables-persistent -y
    sudo netfilter-persistent save
    sudo netfilter-persistent reload

4.安装FRP服务端

使用ssh连接甲骨云的服务器,我们来安装FRP服务端。

这里我们使用Docker-compose的方式安装。

4.1安装docker和docker-compose

#1.安装Docker
wget -qO- get.docker.com | bash

#2.开机自动启动
systemctl enable docker

#3.安装Docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

#4.赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose

4.2配置docker-compose.yml

创建一个docker-compose.yml输入以下内容:

version: '3.3'
services:
    frps:
        restart: always
        network_mode: host
        volumes:
            - './frps.ini:/etc/frp/frps.ini'
        container_name: frps
        image: snowdreamtech/frps

4.3配置frps.ini

我们需要在当前的目录下面创建一个名为frps.ini的文件

touch frps.ini

输入以下内容:

# frp的服务端端口,可以修改成自己想要的端口
bind_port = 7000

# frp 服务端密码
token = 123456789

# 服务端网页端口,默认为7500
dashboard_port = 7500

# 服务端仪表盘的用户名和密码
dashboard_user = username
dashboard_pwd = password

# 如果想要用 frp 穿透访问本地内网的http和https端口要需要设置以下两个监听端口
vhost_http_port = 7100
vhost_https_port = 7200

配置好后保存退出,然后我们部署一下输入:

docker-compose up -d

部署成功后我们可以访问网页服务

输入公网IP加7000端口即可访问

屏幕快照 2023-09-10 的 18.41.31 下午

5.安装FRP客户端

来到本地内网的服务器如果没有安装docker和docker-compose还是先安装他们。

5.1配置客户端docker-compose.yml

version: '3.3'
services:
    frpc:
        restart: always
        network_mode: host
        volumes:
            - './frpc.ini:/etc/frp/frpc.ini'
        container_name: frpc
        image: snowdreamtech/frpc

5.2配置frpc.ini

我们需要在当前的目录下面创建一个名为frpc.ini的文件

touch frpc.ini

输入以下内容:

[common]
# server_addr为FRPS服务器IP地址
server_addr = 122.489.432.123
# server_port为服务端监听端口,bind_port
server_port = 7000
# 身份验证
token = 123456789

[emby]
type = tcp
local_ip = 127.0.0.1
#本地服务端口
local_port = 8096
#远程服务器端口
remote_port = 9000
# 是否加密客户端与服务端之间的通信,默认是 false
use_encryption = true
# 是否压缩客户端与服务端之间的通信,默认是 false
use_compression = true

举个例子

比如我们想把本地的emby端口8096映射到公网服务器的9000端口上就可以把remote_port设置成9000

5.4部署FRP客户端

配置好后保存退出,然后我们部署一下输入:

docker-compose up -d

然后我们就可以从公网的+9000端口来访问内网的8096端口的emby了。

关于更详细的配置你可以参考下面的官方文档和大佬们的教程文档

参考

https://zhuanlan.zhihu.com/p/599123751

https://champhoon.xyz/note/oracle-frp/

官方文档

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注