frp是一个可用于内网穿透的高性能反向代理应用,支持TCP、UDP、HTTP、HTTPS等多种协议。利用frp可以轻松地将内网服务暴露到公网,实现远程访问内网设备的目的。
本教程将详细介绍如何在云服务器和内网主机上分别配置frp服务端(frps)和客户端(frpc)。
一、云服务器frps配置
1. 下载并解压缩
首先,前往frp官方GitHub仓库下载对应版本的资源包:
1 2
| wget https://github.com/fatedier/frp/releases/download/v0.61.1/frp_0.61.1_linux_amd64.tar.gz tar -xzvf frp_0.61.1_linux_amd64.tar.gz
|
2. 删除多余配置并移到指定目录
1 2 3 4
| cd frp_0.61.1_linux_amd64 sudo rm frpc frpc.toml frpc_full.toml cd mv download/frp_0.61.1_linux_amd64 frp
|
3. 修改frps.toml配置文件
修改公网服务器上的服务端配置文件 frps.toml
,基本配置如下:
注意:这是最基本的配置,您可以根据需要添加更多配置项,如认证信息、日志设置等。
4. 后台运行frps服务
进入frp目录并启动服务:
1 2
| cd frp nohup ./frps -c ./frps.toml > /dev/null 2>&1 &
|
二、内网主机frpc配置
1. 下载并解压缩
1 2
| wget https://github.com/fatedier/frp/releases/download/v0.61.1/frp_0.61.1_linux_amd64.tar.gz tar -xzvf frp_0.61.1_linux_amd64.tar.gz
|
2. 删除多余配置并移到指定目录
1 2 3 4
| cd frp_0.61.1_linux_amd64 sudo rm frps frps.toml frps_full.toml cd mv download/frp_0.61.1_linux_amd64 frp
|
3. 修改frpc.toml配置文件
修改内网目标主机的客户端配置文件 frpc.toml
,示例配置如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| serverAddr = "xxx.xxx.xxx.xxx"
serverPort = 7000
[[proxies]]
name = "xxxx_ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000
[[proxies]] name = "xxxx_webui" type = "tcp" localIP = "127.0.0.1"
localPort = 11100
remotePort = 6001
|
三、设置开机自启动
1. 创建systemd服务脚本
1
| sudo vim /usr/lib/systemd/system/frpc.service
|
写入以下内容(注意替换用户名和实际路径):
1 2 3 4 5 6 7 8 9 10 11 12 13
| [Unit] Description=frpc service After=network-online.target network.target syslog.target Wants=network-online.target
[Service] Type=simple ExecStart=/home/用户名/tools/frp/frpc -c /home/用户名/tools/frp/frpc.toml Restart=on-failure RestartSec=3
[Install] WantedBy=multi-user.target
|
2. 启用并设置开机自启
1 2
| sudo systemctl start frpc sudo systemctl enable frpc
|
四、安全配置
1. 开放云服务器端口
在云服务器控制台的安全组或防火墙设置中,开放以下端口:
- frp服务端口(默认7000)
- 所有在frpc.toml中配置的remotePort端口
2. 安全建议
- 建议在frps.toml中配置身份验证
- 使用非标准端口
- 定期更新frp版本以获取安全补丁
五、验证连接
配置完成后,可以通过以下方式验证连接是否成功:
1 2 3 4 5 6
| ssh -p 6000 用户名@服务器公网IP
http://服务器公网IP:6001
|
总结
通过以上步骤,您已经成功搭建了基于frp的内网穿透服务。现在您可以从公网访问内网的各种服务了。如需更多高级配置,请参考frp官方文档。