内网穿透-frp

记于:2025-09-20 下午
地点:浙江省·温州市·家里
天气:阴天

简单介绍 (by 官网)#

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

下载#

Github上下载对应平台的二进制包,解压即可使用。
注意:服务端和客户端需要下载对应的平台版本。

服务端部署#

1
# cat /etc/systemd/system/frps.service 
1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /path/to/frps -c /path/to/frps.toml

[Install]
WantedBy = multi-user.target
1
2
systemctl start frps
systemctl enable frps

服务端frps.toml配置

1
bindPort = 7000

客户端部署
客户端frpc.toml配置

1
2
3
4
5
6
7
8
9
serverAddr = "此处填写部署frps的公网IP"
serverPort = 7000

[[proxies]]
name = "note"
type = "tcp"
localIP = "127.0.0.1"
localPort = 1111
remotePort = 6000

serverAddrserverPort配置为服务端frps的公网IP和端口;
localIPlocalPort配置为需要内网穿透的服务地址和端口;
remotePort配置为服务端开放的端口,外网访问该端口即访问内网服务(即外网6000端转发到本地1111端口)。

启动客户端

1
2
3
4
5
6
# ./frpc -c ./frpc.toml
2025-09-20 17:25:13.467 [I] [sub/root.go:149] start frpc service for config file [./frpc.toml]
2025-09-20 17:25:13.468 [I] [client/service.go:319] try to connect to server...
2025-09-20 17:25:13.575 [I] [client/service.go:311] [e33931d2705928f7] login to server success, get run id [e33931d2705928f7]
2025-09-20 17:25:13.576 [I] [proxy/proxy_manager.go:177] [e33931d2705928f7] proxy added: [note]
2025-09-20 17:25:13.605 [I] [client/control.go:172] [e33931d2705928f7] [note] start proxy success

访问外网frps的ip+6000端口即可访问内网服务。


另外还有其他场景示例,见官方文档

参考资料#