下载&安装 {#%E4%B8%8B%E8%BD%BD%26%E5%AE%89%E8%A3%85}
在 https://github.com/fatedier/frp/releases 中下载系统对应的版本(服务端和客户端都在一个压缩包中)
将对应的压缩包分别解压到服务端和客户端的任意文件夹中
配置&启动 {#%E9%85%8D%E7%BD%AE%26%E5%90%AF%E5%8A%A8}
服务端 {#%E6%9C%8D%E5%8A%A1%E7%AB%AF}
编辑 frps.toml
bindPort = 7000
#FRP服务所绑定的端口,可更改
./frps -c ./frps.toml
Windows系统下要去掉命令前面的
./
客户端 {#%E5%AE%A2%E6%88%B7%E7%AB%AF}
编辑 frpc.toml
serverAddr = "x.x.x.x"
#部署FRP服务的服务器地址
serverPort = 7000
#FRP服务所绑定的端口,必须与服务端配置中的"bindPort"一致,可更改
`[[proxies]]
name = "tcp"
#FRP隧道名称,可更改
type = "tcp"
#连接类型
localIP = "127.0.0.1"
#本地服务的IP
localPort = 10000
#本地服务的端口(内网端口)可更改
remotePort = 6000
#本地服务映射到公网的端口(外网端口)可更改
`
./frpc -c ./frpc.toml
Windows系统下要去掉命令前面的
./
注:若您使用nat机,请在服务商提供的控制面板为以下配置中绑定的端口创建端口映射。建议内网端口与外网端口一致。
frps.toml
中的bindPort
frpc.toml
中的remotePort
启动服务后,可以通过 x.x.x.x:6000
访问 部署FRP客户端的主机 上以 10000
端口运行的服务
实践 {#%E5%AE%9E%E8%B7%B5}
基础 {#%E5%9F%BA%E7%A1%80}
A作为服务端(具有公网IP
1.2.3.4
,FRP在7000
端口上运行)B作为客户端,运行本地端口为
25565
的Minecraft Java服务器
编辑服务端 A 中的 frps.toml
bindPort = 7000
#FRP服务所绑定的端口
编辑客户端 B 中的 frpc.toml
serverAddr = "1.2.3.4"
#部署FRP服务的服务器地址
serverPort = 7000
#FRP服务所绑定的端口,必须与服务端配置中的"bindPort"所绑定的端口一致
`[[proxies]]
name = "minecraft"
#FRP隧道名称
type = "tcp"
#连接类型
localIP = "127.0.0.1"
#本地服务的IP
localPort = 25565
#本地服务的端口(内网端口)
remotePort = 6000
#本地服务映射到公网的端口(外网端口)
`
启动服务端和客户端后,可以通过 1.2.3.4:6000
来访问在B上以 25565
端口运行的服务器
进阶 {#%E8%BF%9B%E9%98%B6}
A作为服务端(具有公网IP
1.2.3.4
,FRP在7000
端口上运行)B作为客户端,运行本地端口为
25565
的Minecraft Java服务器
通过ProxyProtocol显示真实IP {#%E9%80%9A%E8%BF%87proxyprotocol%E6%98%BE%E7%A4%BA%E7%9C%9F%E5%AE%9Eip}
编辑服务端 A 中的 frps.toml
bindPort = 7000
#FRP服务所绑定的端口
Minecraft服务端中需要启用
proxy protocol
,部分服务端不支持开启此功能Fabric服务端中,可添加
Fabric-Haproxy
模组以支持 https://github.com/wallenjos01/fabric-haproxy
编辑客户端 B 中的 frpc.toml
添加 proxies.transport
配置
serverAddr = "1.2.3.4"
#部署FRP服务的服务器地址
serverPort = 7000
#FRP服务所绑定的端口,必须与服务端配置中的"bindPort"所绑定的端口一致
[[proxies]]
name = "minecraft"
#FRP隧道名称,可更改
type = "tcp"
#连接类型
localIP = "127.0.0.1"
#本地服务的IP
localPort = 25565
#本地服务的端口(内网端口)
remotePort = 6000
#本地服务映射到公网的端口(外网端口)
[proxies.transport] proxyProtocolVersion = "v2" #推荐使用v2版本
启动服务后,通过 1.2.3.4:6000
访问时,可以在后台看到玩家的真实IP而非 127.0.0.1
域名绑定 {#%E5%9F%9F%E5%90%8D%E7%BB%91%E5%AE%9A}
例如:将 1.2.3.4:6000
绑定至 mc.example.com
| 类型 | 名称 | 服务 | 协议 | TTL | 优先级 | 权重 | 端口 | 内容/目标 | |-----|----|------------|-----|-----------|-----|----|------|---------------| | A | a | / | / | / | / | / | / | 1.2.3.4 | | SRV | mc | _minecraft | tcp | AUTO (自动) | 5 | 0 | 6000 | a.example.com |