51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

FRP | 内网穿透

下载&安装 {#%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 |


赞(0)
未经允许不得转载:工具盒子 » FRP | 内网穿透