frp 内网穿透教程:轻松实现远程访问内网服务
frp 内网穿透教程:轻松实现远程访问内网服务
什么是 frp?
frp (Fast Reverse Proxy) 是一款高性能的反向代理应用,用于内网穿透。它可以将内网中的服务(例如 Web 服务、SSH、远程桌面等)暴露到公网,方便远程访问。
常见应用场景:
-
在家远程访问公司或家庭内网服务器
-
将本地开发环境映射到公网,方便测试和演示
-
为树莓派、NAS 等设备提供外网访问入口
安装 frp
frp 是 Go 写的单个二进制程序,部署非常简单:
1
2
3
4
# 下载 frp(以 0.60.0 为例,可去 GitHub Releases 获取最新版本)
wget https://github.com/fatedier/frp/releases/download/v0.60.0/frp_0.60.0_linux_amd64.tar.gz
tar -zxvf frp_0.60.0_linux_amd64.tar.gz
cd frp_0.60.0_linux_amd64
解压后会看到:
-
frps
:服务端程序 -
frps.toml
:服务端配置文件 -
frpc
:客户端程序 -
frpc.toml
:客户端配置文件
服务端配置(frps)
服务端需要有 公网 IP 的 VPS,比如阿里云、腾讯云、搬瓦工等。
编辑配置文件 frps.toml
:
1
2
3
4
5
6
7
# frps.toml
bindPort = 7000 # frpc 客户端连接 frps 的端口
dashboardPort = 7500 # Web 管理面板端口
dashboardUser = "admin" # 面板用户名
dashboardPwd = "admin123" # 面板密码
auth.method = "token" # 使用 token 验证
auth.token = "1234567890" # 客户端和服务端必须一致
启动服务端:
1
./frps -c frps.toml
后台运行(推荐使用 systemd 管理):
1
2
3
4
5
6
7
8
9
10
11
12
# /etc/systemd/system/frps.service
[Unit]
Description=frp server
After=network.target
[Service]
ExecStart=/root/frp/frps -c /root/frp/frps.toml
Restart=always
User=root
[Install]
WantedBy=multi-user.target
1
2
3
sudo systemctl daemon-reload
sudo systemctl enable frps
sudo systemctl start frps
客户端配置(frpc)
客户端运行在 内网机器(例如你的家用电脑、树莓派、NAS)。
编辑 frpc.toml
:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# frpc.toml
serverAddr = "你的VPS公网IP"
serverPort = 7000
auth.method = "token"
auth.token = "1234567890"
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000
[[proxies]]
name = "web"
type = "http"
localIP = "127.0.0.1"
localPort = 80
customDomains = ["example.com"]
说明:
-
ssh
:把内网的22
端口映射到 VPS 的6000
端口。- 使用时直接
ssh -p 6000 user@你的VPS_IP
即可远程登录。
- 使用时直接
-
web
:把内网的 Web 服务映射到公网域名example.com
。
启动客户端:
1
./frpc -c frpc.toml
同样可以用 systemd
托管。
常见问题
-
防火墙问题
-
确保 VPS 开放了
bindPort
、dashboardPort
和所有remotePort
。 -
例如用
ufw
:1 2 3
sudo ufw allow 7000 sudo ufw allow 7500 sudo ufw allow 6000
-
-
Token 验证失败
- 检查
frps.toml
和frpc.toml
的auth.token
是否一致。
- 检查
-
HTTP 映射无效
-
确保域名解析到 VPS 的公网 IP。
-
如果用 80/443 端口,需要在 VPS 开放这些端口。
-
总结
frp 的优点是:
-
配置简单
-
支持多种协议(TCP、UDP、HTTP、HTTPS、STCP、XTCP)
-
有 Dashboard 方便管理
在实际使用中,建议:
-
使用 Token 或 TLS 加强安全性
-
配合 Nginx 反向代理,让多个服务共享 80/443
-
配合 systemd 实现开机自启
这样一来,就可以非常方便地在公网访问内网服务了 🚀
本文由作者按照
CC BY 4.0
进行授权