- 服务器(香港轻量 Linux)准备
1、系统:推荐 CentOS7 / Debian11 / Ubuntu20.04(宝塔都支持)
2、已装宝塔,面板端口、80/443 已放行
3、拿到服务器 公网 IP(记下来,后面要用)
4、服务器放行端口(非常重要)
轻量云 安全组 / 防火墙 必须放行:
(1)7000(frp 通信端口)
(2)7500(frp 面板,可选)
(3)你要映射的端口(如 10088、8080 8088 8089 8090等)
宝塔面板 → 安全 → 放行端口:7000,7500,10088,8080,8088,8089,8090
注:服务器原有8080端口可能会被占用,应考虑使用8088或10088
- 服务端 frps 安装(Linux + 宝塔)
- 用 SSH 登录服务器(或直接使用宝塔面板终端面板),复制-粘贴执行:
# 进入/www目录(宝塔常用) cd /www
# 下载(选 0.45 左右稳定版,兼容好) wget https://github.com/fatedier/frp/releases/download/v0.45.0/frp_0.45.0_linux_amd64.tar.gz
# 解压 tar -zxvf frp_0.45.0_linux_amd64.tar.gz
# 改名方便用 mv frp_0.45.0_linux_amd64 frp cd frp
- 配置ini(服务端),修改设置后复制-粘贴执行:
vi frps.ini
写入:
[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = 你的密码(自己设)
token = 你的密钥(自己设,客户端要一样)
vhost_http_port = 8088
说明:
- bind_port=7000:客户端连接端口
- dashboard_port=7500:web 管理面板
- token:必须和客户端一致
- vhost_http_port=8088:http 穿透用的端口(我们使用TCP穿透,影响不大)
保存退出(使用SSH):按键盘Esc键后 → :wq → 回车
保存退出(使用宝塔终端):用 Ctrl+[ 代替 ESC(最稳)
A、确保窗口是激活的(点一下终端里的黑框)
B、直接按:Ctrl + [(左中括号)
C、屏幕左下角的 --INSERT-- 会消失,说明成功退出编辑模式
D、(键盘英文状态下)输入:wq
E、回车 → 保存并退出
注意:先按英文冒号 :(键盘 L 右边按键),屏幕左下角出现:输入提示符后,再输入 wq,最后回车。
F、如何验证是否已保存成功?:
终端输入这条查看内容:
cat /www/frp/frps.ini
正常出来内容:
[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = 你的密码(自己设)
token = 你的密钥(自己设,客户端要一样)
vhost_http_port = 8088
内容对上 = 保存没问题。
- 启动 frp 服务(直接整段复制运行):
systemctl daemon-reload
systemctl restart frps
systemctl status frps
出现绿色 active (running) 代表服务端正常开机运行。
- 配置 systemd 开机自启(重点)
vi /etc/systemd/system/frps.service
写入(复制粘贴):
[Unit]
Description=frps service
After=network.target
[Service]
Type=simple
ExecStart=/www/frp/frps -c /www/frp/frps.ini
Restart=always
[Install]
WantedBy=multi-user.target
保存后执行:
systemctl daemon-reload
systemctl start frps
systemctl enable frps
systemctl status frps
显示 active (running) 就是正常。
- 访问 frp 面板
浏览器打开:http://你的公网IP:7500
输入 admin / 你的密码,能进就说明服务端部署完成。
三、Win7 x64 客户端 frpc 安装配置
1、下载对应版本(0.45.0 适配 Win7 x64)
Win7 用 0.45 或更早版本(新版不兼容):
(1)下载:frp_0.45.0_windows_amd64.zip
打开:https://proxykuy.com/
下载地址粘贴进网页内网址填写框:https://github.com/fatedier/frp/releases/download/v0.45.0/frp_0.45.0_windows_amd64.zip
- 解压到:C:\frp(路径不要中文、空格)
只保留里面:frpc.exe,其余文件不用管
2、编写 frpc.ini(Win7 客户端)
在 C:\frp 新建 frpc.ini,修改设置后粘贴下面配置:
[common]
server_addr = 公网IP
server_port = 7000
token = 你的密钥(自己设,与服务端一致)
user = pc1
[web1]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 8089 (外网访问端口)
[kk_tcp]
type=tcp
local_ip=127.0.0.1
local_port=8012
remote_port=8012 (kkFileView预览端口)
- 测试启动
右键【命令提示符 CMD】→以管理员身份运行:
cd C:\frp
frpc.exe -c frpc.ini
出现 login to server success 就是连通成功。
4、外网访问地址
http://外网IP:8089
打开就能访问你 Win7 本机 80 端口网站。
5、小提醒
(1)确认 Win7 本地 80 端口网站能本机正常打开(127.0.0.1)
(2)服务器全组 / 宝塔防火墙已经放行:7000、8080、8088、8089、8090、7500、8012、8013(已经弄完不用改)
小贴士:以后每次开 CMD,必须先 cd C:\frp再运行程序。
- 两端开机自启完整配置
1、服务器 Linux(frps 已配置 systemd,自带开机自启 ✅)
之前执行过systemctl enable frps,服务器重启自动启动 frps,无需额外配置 宝塔终端查看确认:
systemctl is-enabled frps
返回enabled即为开机自启生效。
2、Win7 客户端 frpc 开机自启(NSSM 封装系统服务,最优方案)
(1)下载 nssm64 位,解压把win64\nssm.exe放到C:\frp\nssm.exe
(2)管理员 CMD 执行:C:\frp\nssm.exe install FrpClient
弹窗填写:
Path:C:\frp\frpc.exe
Startup directory:C:\frp
Arguments:-c C:\frp\frpc.ini
Service name:FrpClient(自定义)
补充设置(可选优化)
切换到 Details 标签,服务名称填:FrpClient; 切换到 Recovery,全部失败选项改为「重新启动服务」,掉线自动重连。
填完点击 OK,服务自动安装并立即运行,以后开机系统自动启动 frp。
- 验证服务安装情况:运行msc,可在 Win7 服务列表找到FrpClient,点击启动、设置自动。
4、卸载服务命令(备用):C:\frp\nssm.exe remove FrpClient
五、多台 Win7 主机同时穿透(一台服务端对接多台内网电脑,完全支持)
1、端口多站点方案
原理:每台机器独立 frpc.ini,remote_port 不能重复,其他已有配置一样
示例:
机器 A(第一台,现有配置)
[common]
server_addr = 外网服务器IP
server_port = 7000
token = 密码(与服务端一致)
user = pc1
[web-A]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 8089 (外网访问端口)
[kk1_tcp]
type=tcp
local_ip=127.0.0.1
local_port=8012
remote_port=8012 (kkFileView预览端口)
外网访问:外网IP:8089
机器 B(第二台 Win7,新配置)
[common]
server_addr = 外网服务器IP
server_port = 7000
token = 密码(与服务端一致)
user = pc2
[web-B]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 8090 (外网访问端口)
[kk2_tcp]
type=tcp
local_ip=127.0.0.1
local_port=8012
remote_port=8013 (kkFileView预览端口)
外网访问:外网IP:8090
机器 C(第三台)
[common]
server_addr = 外网服务器IP
server_port = 7000
token = 密码(与服务端一致)
user = pc3
[web-C]
type = tcp
local_ip = 127.0.0.1
local_port = 80
remote_port = 8091 (外网访问端口)
[kk3_tcp]
type=tcp
local_ip=127.0.0.1
local_port=8012
remote_port=8014 (kkFileView预览端口)
外网访问:外网IP:8091
注:配套服务器操作(后续外网以二级域名:端口号访问不同内网主机)
- 阿里云安全组 + 宝塔防火墙批量放行新增端口:8089、8090……8012、8013……
- 在域名 DNS 后台单独添加二级域名xxx.com、pc2.xxx.com单条 A 记录
- 外网访问就可以使用不同的二级域名+不同的端口对应不同的内部网站。例xxx.com:8089,就是访问主机1;pc1.xxx.com:8090,就是访问主机2。
- 每台 Win7 单独一套 frpc 程序 + 独立 ini,独立端口,各自用 nssm 做成系统服务,互不干扰。
2、域名多站点方案(此方案测试过会有串站情况,暂时无法解决,请用方案一)
多台机器绑定不同二级域名,全部 type=http、填写各自custom_domains=xxx.com,共用服务端 8088 端口,remote_port 无需额外分配(type=http时,remote_port=8088这行要删除)。
TCP:需要 remote_port;HTTP/SUB:依靠 vhost_http_port,禁止填写 remote_port。
- 在域名 DNS 后台添加A 记录
你的主域名.com → 解析指向 公网IP (泛解析,所有二级域名自动指向服务器 IP;也可单独添加 pc1.xxx.com、pc2.xxx.com 单条 A 记录)
示例 1:单台主机绑定单个二级域名
[common]
server_addr = 公网IP
server_port = 7000
token = 你的密码(与服务端一致)
[web-pc1]
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = pc1.xxx.com
访问:http://pc1.xxx.com:8088
示例 2:多台 Win7 机器绑定不同二级域名(共用服务端 8088 端口,不用新开远端端口)
PC1(第一台电脑 frpc.ini)
[common]
server_addr = 公网IP
server_port = 7000
token = 你的密码(与服务端一致)
[web-pc1]
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = pc1.xxx.com
浏览器访问格式:http://pc1.xxx.com:8088
PC2(第二台电脑独立 frpc.ini)
[common]
server_addr = 公网IP
server_port = 7000
token = 你的密码(与服务端一致)
[web-pc2]
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = pc2.xxx.com
浏览器访问格式:http://pc2.xxx.com:8088
优势:多台设备共用服务器 8088 一个端口,不用在安全组频繁放行新端口,靠域名区分不同内网站点。
服务端无需改动
服务端frps.ini里vhost_http_port = 8088保持原样即可。
3、补充:想用 80 端口免端口访问
(1)服务器安全组 + 宝塔放行80 端口
(2)修改 frps.ini:vhost_http_port = 80,重启 frps 服务端 后续域名直接不带端口访问:http://pc1.xxx.com
4、配置TCP与HTTP的区别:
(1)二级域名:8088 能打开 = TCP 穿透逻辑 现在remote_port=8089属于TCP 端口映射,域名只是解析 IP,配置的域名:8089等价公网IP:8089,确实不用改 frpc.ini,只是域名代替 IP 寻址。
访问格式:xxx.域名.com:8089
(2)不带端口直接 xxx.域名.com 访问 = HTTP 虚拟主机(必须改配置) 需要把type=tcp改成type=http、填写custom_domains=xxx.域名.com,依靠 frp 自带的域名路由,共用服务端vhost_http_port=80,实现无端口访问。当前服务端实际配置vhost_http_port = 8089
,也是要带端口访问(域名:8089),只有80端口不用带端口。
访问格式:xxx.域名.com:8089
(3)拓展小技巧:想彻底去掉端口,改成 HTTP 模式,直接 http://二级域名 访问,(完全不带端口)两步:
- 服务器安全组 + 宝塔放行 80 端口
- 服务器修改 frps.ini:vhost_http_port = 80,执行
systemctl restart frps
之后直接网址访问,不带端口。
