搭建 Frpc + Frps 实现内网穿透
前言
适用条件: 无公网 IPv4、IPv6 的网络环境;域名后想隐藏端口的强迫症 |
个人建议: 采用境外 VPS(带宽较大,HK 优先,延迟低)
搭建步骤
- VPS 搭建 frps、Nginx Proxy Manager
- 家庭服务搭建 frpc
- 域名托管 A 类型指向 VPS IPv4 地址
- Nginx Proxy Manager 配置反代
第一步:搭建 frps、Nginx Proxy Manager
部署Frps
VPS 路径:/home 新建一个 /frps
和 /npm
文件夹。
在
/home/frps
文件夹中添加 docker-compose.yml
和 frps.toml
两个文件,并填写下方代码:
docker-compose.yml
services:
frps:
image: snowdreamtech/frps:latest
container_name: frps
network_mode: host
volumes:
- ./frps.toml:/etc/frp/frps.toml
restart: always
frps.toml
bindPort = 7000 # 服务端与客户端通信端口
auth.token = "12345678" # 身份验证令牌,frpc要与frps一致
webServer.addr = "0.0.0.0" # 后台管理地址
webServer.port = 7500 # 后台管理端口
webServer.user = "" # 后台登录用户名
webServer.password = "" # 后台登录密码
cd /home/frps
docker compose up -d
然后就启动容器啦
部署Nginx Proxy Manager
version: "3.5"
services:
nginx:
image: chishin/nginx-proxy-manager-zh:latest
container_name: nginx
ports:
- "443:443"
- "80:80"
- "81:81"
- "10222:10222"
restart: always
volumes:
- /home/nginx/data:/data
- /home/nginx/letsencrypt:/etc/letsencrypt
environment:
- TZ=Asia/Shanghai
networks:
- nginx
networks:
nginx:
name: nginx
cd /home/nmp
docker compose up -d
部署后访问VPSIP:81即可
第二步:搭建 Frpc
搭建方式很多,本文使用 Docker Compose 搭建
注意事项
同 frps
,为避免因 frpc.toml
文件的挂载、格式或者配置错误导致容器无法正常运行并循环重启,请确保先配置好 frpc.toml
后再执行启动。
frps.toml
serverAddr = "" # 服务IP地址
serverPort = 7000 # 服务端通信端口
#auth.method = "token"
auth.token = "12345678" # token 与服务端保持一直
[[proxies]]
name = "mp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3004 # 本地端口号
remotePort = 13009 # 公网端口号
[[proxies]]
name = "ugreen"
type = "tcp"
localIP = "127.0.0.1"
localPort = 9999 # 本地端口号
remotePort = 13012 # 公网端口号
Docker Compose
services: # 服务定义
frpc: # 服务名称
image: snowdreamtech/frpc:latest # 镜像来源
container_name: frpc # 容器名称
restart: always # 容器重启策略
network_mode: host # 宿主机网络模式
volumes: # 挂载卷
- /volume1/docker/frpc/frpc.toml:/etc/frp/frpc.toml
第三步:将二级域名 DNS A 类型解析至 VPS 的 IP
域名解析
- 登录您的域名管理平台(如阿里云、腾讯云、Cloudflare 等)。
- 找到域名的 DNS 解析设置。
- 添加一条 A 记录,配置如下:
- 主机记录:
*
(表示通配符,匹配所有二级域名) - 记录类型:
A
- 记录值:填写您的 VPS 的 IP 地址
- TTL:默认值或根据需求调整
- 主机记录:
示例 以阿里云 DNS 解析为例:
- 主机记录:
*
- 记录类型:
A
- 记录值:
123.123.123.123
(替换为您的 VPS IP 地址) - TTL:
600
(默认值)
注意事项
- 通配符
*
表示所有二级域名,例如sub1.example.com
、sub2.example.com
等都会解析到该 IP。 - 解析生效时间取决于 TTL 设置,通常需要几分钟到几小时。
第四步:配置 Nginx Proxy Manager
访问 Nginx Proxy Manager
- 在浏览器中输入您的 VPS 的 IPv4 地址,并加上端口
81
,例如:http://123.123.123.123:81 - 打开后,进入 Nginx Proxy Manager 的 Web 界面。
注册账号
- 在登录页面,点击 Register 或 注册。
- 输入您的邮箱和密码,完成账号注册。
默认账号(可选)
如果您使用的是默认安装,可以直接使用以下默认账号登录:
- 默认账号:
[email protected]
- 默认密码:
changeme
登录并进入 Web 服务
- 使用注册的账号或默认账号登录。
- 登录后,您将进入 Nginx Proxy Manager 的管理界面,可以开始配置反向代理、SSL 证书等。