官方文档:
https://gofrp.org/zh-cn/docs/
GitHub:
https://github.com/fatedier/frp
frp 主要由两个组件组成:客户端(frpc) 和 服务端(frps)。通常情况下,服务端部署在具有公网 IP 地址的机器上,而客户端部署在需要穿透的内网服务所在的机器上。
由于内网服务缺乏公网 IP 地址,因此无法直接被非局域网内的用户访问。用户通过访问服务端的 frps,frp 负责根据请求的端口或其他信息将请求路由到相应的内网机器,从而实现通信。
本次我们的需求是使用带有公网IP的Centos7机器搭建frp服务端,实现内网穿透,达到我和朋友联机Minecraft的目的。
https://github.com/fatedier/frp/releases
wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz
tar -zxvf frp_0.52.3_linux_amd64.tar.gz -C /opt/module/
服务端配置说明:
https://gofrp.org/zh-cn/docs/reference/server-configures/
vim /opt/module/frp_0.52.3_linux_amd64/frps.toml
bindPort = 7001
token = "*********"
#日志
log.to = "/opt/module/frp_0.52.3_linux_amd64/frps.log"
服务端监听端口,默认值为 7000。我们可以改一个自己喜欢的端口,不冲突的。token相当于密码。
使用 systemd 来管理 frps 服务,包括启动、停止、配置后台运行和设置开机自启动。
安装systemd
yum -y install systemd
创建 frps.service 文件
vim /etc/systemd/system/frps.service
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /opt/module/frp_0.52.3_linux_amd64/frps -c /opt/module/frp_0.52.3_linux_amd64/frps.toml
[Install]
WantedBy = multi-user.target
设置 frps 开机自启动
sudo systemctl enable frps
使用 systemd 命令管理 frps 服务
# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
# 查看frp状态
sudo systemctl status frps
https://github.com/fatedier/frp/releases/
https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_windows_amd64.zip
客户端配置说明:
https://gofrp.org/zh-cn/docs/reference/client-configures/
serverAddr = "x.x.x.x"
serverPort = 7001
token = "*********"
[[proxies]]
name = "Minecraft"
type = "tcp"
localIP = "127.0.0.1"
localPort = 25565
remotePort = 25575
localIP
和 localPort
配置为需要从公网访问的内网服务的地址和端口。remotePort
表示在 frp 服务端监听的端口,访问此端口的流量将被转发到本地服务的相应端口。在frpc.exe和frpc.toml所在的文件夹空白处按shift+右键,在此处打开powershell窗口。
.\frpc.exe -c frpc.toml