内网设备frpc长连接云服务器frps → 外网用户访问云服务器IP:端口 → frps把流量转发给frpc → frpc转发到内网本地服务,解决无公网IPv4无法外网访问的问题。
前置准备
- 一台有独立公网IPv4的轻量云服务器
- 本地内网设备
- FRP 统一版本:服务端、客户端必须下载完全相同版本
云服务器部署 frps
- 云服务器放行端口 进入云厂商控制台 → 实例安全组/防火墙,添加入站TCP规则:
7000:frpc客户端与frps隧道通信必开7500:frps网页管理面板(可选)- 业务端口区间:例如
5000-6000(后续内网服务映射用)全部授权0.0.0.0/0,协议TCP
服务器内部防火墙也需放行(如有) 以 Debian 为例:
# Ubuntu/Debian sudo ufw allow 7000/tcp sudo ufw allow 7500/tcp sudo ufw allow 5000:6000/tcp sudo ufw reload 2. 下载解压 frps ```bash # 下载amd64架构(绝大多数云服务器) wget https://github.com/fatedier/frp/releases/download/v0.67.0/frp_0.67.0_linux_amd64.tar.gz tar -zxvf frp_0.67.0_linux_amd64.tar.gz cd frp_0.67.0_linux_amd64
- 编写 frps.toml 配置
# frps.toml bindPort = 7000 auth.token = "自定义高强度密码123456ABC" # 记住,客户端必须一模一样 # 网页管理后台(可选) webServer.port = 7500 webServer.user = "admin" webServer.password = "后台密码666" # 日志 log.to = "/var/log/frps.log" log.level = "info" log.maxDays = 3
- 设置系统自启(后台常驻)
# 复制程序与配置到系统目录 sudo mkdir -p /etc/frp sudo cp frps /usr/local/bin/ sudo cp frps.toml /etc/frp/ # 创建systemd服务文件 sudo tee /etc/systemd/system/frps.service <<EOF [Unit] Description=FRP Server After=network.target [Service] Type=simple ExecStart=/usr/local/bin/frps -c /etc/frp/frps.toml Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target EOF # 加载并开机自启 sudo systemctl daemon-reload sudo systemctl enable frps sudo systemctl start frps # 查看运行状态 systemctl status frps
看到 active (running) 代表服务端正常运行,浏览器访问 云服务器IP:7500 可登录管理面板。
第二部分:本地内网设备部署 frpc
通用配置 frpc.toml(复制即用,修改注释内容)
# ========== 通用连接配置(和frps必须对应) ========== serverAddr = "120.xx.xx.xx" # 替换成你的云服务器公网IP serverPort = 7000 auth.token = "自定义高强度密码123456ABC" # 和frps的token完全一致 # ========== 示例1:内网网页服务 192.168.1.100:80 → 云服务器5080端口 ========== [[proxies]] name = "web服务" type = "tcp" localIP = "192.168.1.100" # 内网设备IP localPort = 80 # 内网服务端口 remotePort = 5080 # 外网访问端口(云服务器5080,安全组已放行) # ========== 示例2:SSH远程控制 内网22 → 外网5022 ========== [[proxies]] name = "ssh管理" type = "tcp" localIP = "192.168.1.100" localPort = 22 remotePort = 5022 # ========== 示例3:HTTP自定义域名(搭配DDNS-Go) ========== # [[proxies]] # name = "网站域名" # type = "http" # localIP = "192.168.1.100" # localPort = 80 # customDomains = "nas.你的域名.com"

