准备工作

  1. 服务器:一台具备公网IP的服务器,用于部署FRP服务端。

  2. 客户端:需要进行内网穿透的设备。

  3. FRP程序:可以从FRP官方GitHub页面下载最新版本。

  4. Docker:下载docker

服务器搭建(FRPS)

创建配置文件

# 创建存放目录
sudo mkdir /etc/frp
# 创建frps.ini文件
nano /etc/frp/frps.toml

frps.toml配置文件内容如下:

[common]
# 监听端口
bind_port = 7000
# 面板端口
dashboard_port = 7500
# 登录面板账号设置
dashboard_user = admin # 自己设置
dashboard_pwd = 1234 # 自己设置
# 设置http及https协议下代理端口(非重要)
vhost_http_port = 7080
vhost_https_port = 7081
​
​
# 身份验证
token = 12345678 #自己设置

运行frps容器

#服务器镜像:snowdreamtech/frps
#重启:always
#网络模式:host
#文件映射:/etc/frp/frps.ini:/etc/frp/frps.ini
​
docker run --restart=always --network host -d -v /etc/frp/frps.ini:/etc/frp/frps.ini --name frps snowdreamtech/frps

在安全组开放7000,7080,7081,7500端口tcp

然后就可以通过浏览器输入以下内容访问frp管理页面了 ip:7500 # ip替换为自己的服务器ip

frp1.png

中转客户端配置(FRPC)

创建配置文件

# 创建存放目录
sudo mkdir /etc/frp
# 创建frps.ini文件
nano /etc/frp/frpc.toml

frpc.toml配置文件示例:

[common]
# server_addr为FRPS服务器IP地址
server_addr = x.x.x.x
# server_port为服务端监听端口,bind_port
server_port = 7000
# 身份验证
token = 12345678
​
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 2288
​
# [ssh] 为服务名称,下方此处设置为,访问frp服务段的2288端口时,等同于通过中转服务器访问127.0.0.1的22端口。
# type 为连接的类型,此处为tcp
# local_ip 为中转客户端实际访问的IP 
# local_port 为目标端口
# remote_port 为远程端口
​
[ssh]
type = tcp
local_ip = 192.168.1.229
local_port = 80
remote_port = 18022
​
[unRAID web]
type = tcp
local_ip = 192.168.1.229
local_port = 80
remote_port = 18088
​
[Truenas web]
type = tcp
local_ip = 192.168.1.235
local_port = 80
remote_port = 18188
​
[speedtest]
type = tcp
local_ip = 192.168.1.229
local_port = 6580
remote_port = 18190
​
​
[webdav]
type = tcp
local_ip = 192.168.1.235
local_port = 18080
remote_port = 18189
​
[RDP PC1]
type = tcp
local_ip = 192.168.1.235
local_port = 3389
remote_port = 18389

运行frpc容器

#服务器镜像:snowdreamtech/frpc
#重启:always
#网络模式:host
#文件映射:/etc/frp/:/etc/frp/
​
docker run --restart=always --network host -d -v /etc/frp/:/etc/frp/ --name frps snowdreamtech/frpc

在服务端管理页面看到自己设定的配置显示online即为成功

frp2.png