安装
此次示例服务端和客户端均为CentOS 7.9
- 首先检查服务端和客户端架构:
服务端:
客户端:
- 根据系统版本和架构下载相应的软件版本:https://github.com/fatedier/frp/releases(Golang语言编写,所以是二进制文件):
- 解压后得到这些文件,将其中的 frpc 相关文件拷贝到内网服务所在的机器上,将 frps 相关文件拷贝到具有公网 IP 的机器上,放置在任意目录下:
- 编写配置文件
通过 SSH 访问内网机器,需要提前开通服务器端的端口(7001和6001)
服务端frps.ini:
客户端frpc.ini:
- 先通过
./frps -c ./frps.ini
启动服务端,再通过./frpc -c ./frpc.ini
启动客户端。如果需要在后台长期运行,建议结合其他工具使用,例如 systemd 和 supervisor
服务端:
客户端:
- 后台运行
以下以编写frps的systemd文件为例
编写systemd文件:/etc/systemd/system/frps.service
[Unit]
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
ExecStart = /etc/frps/frps -c /etc/frps/frps.ini
[Install]
WantedBy = multi-user.target
启动frps服务:
检查frps服务状态:
开启自启服务:
最后通过 SSH 访问内网机器,假设用户名为 test:
ssh -oPort=6001 test@x.x.x.x
frp 会将请求 x.x.x.x:6001 的流量转发到内网机器的 22 端口
参考
- fatedier/frp - Github
- 内网穿透原理解析 - 贝锐