Frps 配合 Frpc 实现内网穿透

frps 作为公网服务器, frpc 作为客户端。

需要使用到 Nginx Proxy Manager 并拥有一个域名和 VPS 。


配置 frps 服务器端

创建一个 frps.ini 文件,作为 frps 的配置

配置文件分为3个部分

  1. bind_port kcp_bind_port 为监听端口,与客户端绑定端口
  2. dashboard_user dashboard_pwd dashboard_port 为网页端的用户、密码与端口
  3. token 为客户端连接服务器端需要用到的验证
1
2
3
4
5
6
7
8
9
10
11
# frps.ini
[common]

bind_port= 52244
kcp_bind_port = 52244

dashboard_user= admin
dashboard_pwd= jdn7*LV!*qKEkdDQ
dashboard_port= 9527

token = Q8!!3V897&qe#&#jt9*q

配置完上面的服务器端设置,就可以使用 docker-compose 启动这项服务

1
nano docker-compose.yml
1
2
3
4
5
6
7
8
9
version: '3.3'
services:
frps:
restart: always
network_mode: host
volumes:
- './frps.ini:/etc/frp/frps.ini'
container_name: frps
image: snowdreamtech/frps
1
docker-compose up -d

打开端口后,使用 Nginx Proxy Manager 设置 frps 网站代理

1
2
3
4
ufw allow 52244/tcp
ufw allow 9527/tcp

http://45.76.126.20:9527

配置 frpc 客户端

创建一个 frpc.ini 文件,作为 frpc 的配置

配置文件分为 2 个部分

  1. 服务器端的配置
    1. server_addr 服务器所在的 IP
    2. server_port 服务器设置的端口
    3. token 服务器设置的 token
  2. 客户端的配置
    1. type = tcp 类型为 tcp
    2. local_ip = 127.0.0.1 本地网站的 IP 地址
    3. local_port = 4000 本地网站的端口
    4. remote_port = 7000 反向代理本地的端口
1
2
3
4
5
6
7
8
9
10
11
# frpc.ini
[common]
server_addr = 45.76.126.20
server_port = 52244
token = Q8!!3V897&qe#&#jt9*q

[hexo]
type = tcp
local_ip = 127.0.0.1
local_port = 4000
remote_port = 7000

配置完上面的客户端设置,就可以使用 docker-compose 启动这项服务

1
nano docker-compose.yml
1
2
3
4
5
6
7
8
9
version: '3.3'
services:
frpc:
restart: always
network_mode: host
volumes:
- './frpc.ini:/etc/frp/frpc.ini'
container_name: frpc
image: snowdreamtech/frpc
1
docker-compose up -d

7000 端口需要在 VPS 中打开,通过 Nginx Proxy Manager 反向代理就可以通过域名访问本地 hexo 网页了,如下图

image-20230605152936764


Blog : https://blog.laoda.de/archives/frp-with-nginx-proxy-manager

Github : https://github.com/fatedier/frp/blob/dev/README_zh.md