内网穿透 | frp 自建内网穿透服务操作心得

技术探讨, Linux, 软件  ·  2025-08-26

一、前言

研究这个的起因,还是我最近在玩 MC,在多人联机方面遇到了问题。 使用第三方的局域网软件或内网穿透工具,不仅线路拥堵延迟高,还不稳定,因此既然我手头正好有几台服务器,就想实现frp内网穿透,映射本地游戏端口至服务器,以达到加速的效果。

不论如何,自建穿透线路优势都很明显,首先就是独享线路,延迟和速度取决于带宽和服务器物理距离(理论上国内的服务器直连延迟都不会高到哪里去),其次大厂的服务器都会很稳定,只要安全组设置和防火墙设置正确,就不必过多担心线路安全问题。

二、准备

要实现本地端口映射到服务器,我们需要用到一个开源的项目 frp ,项目在 Github 上斩获了 97.9k Star,地址:https://github.com/fatedier/frp

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

在发行版里分别找到 Linux 和 Windows 端压缩包下载下来,一端作为服务端,另一端作为客户端。

2025-08-25T15:24:52.png

三、核心操作

服务端

打开服务器根目录,进入 /root 文件夹内,创建一个文件夹用于存放 frp 项目,例如 /root/frp/bl ,并把 Linux 压缩包上传至此目录解压,此时目录内应为下图结构:

2025-08-25T15:29:49.png

修改目录下 frps.toml 服务端配置文件:

bindPort = 7000
auth.token = "12345678abc"

其中,bindPort 为接收客户端连接的端口,auth.token 为验证密钥(自定义)。

接下来我们要 启动服务端相关服务,打开服务器终端窗口,输入以下命令:

./frps -c ./frps.toml

如果要保持窗口一直运行,请使用 screen 插件,具体安装命令:yum install screenapt install screen,安装完成后执行命令 screen -S frp 启动一个名为frp的窗口,再输入上面启动服务的命令就行了,这样即使关闭终端服务也不会被关闭。

放行安全组

为了能够顺利访问端口,我们还需要在服务器安全组里放行 700025565 端口,这里 7000 为刚刚设置的客户端进来的端口,25565 可更改为您的客户端需要穿透到公网的端口,MC 默认为 25565!

file-frp内网穿透大致流程.png

客户端

客户端需要用户也要启动相关服务,以此向服务器暴露本机需要映射的端口,或需访问。

把 Windows 端解压到任意文件夹,文件夹内结构应如下图(与服务端相同):
2025-08-25T15:29:49.png

修改目录下 frpc.toml 服务端配置文件,其中 服务器ip 更换为你的服务器ip地址:

serverAddr = "服务器ip"
serverPort = 7000
auth.token = "12345678abc"

[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 25565
remotePort = 25565

serverPort 即上面放行的服务器接收端口,auth.token 为验证密钥,需要确保与服务端密钥相同!往下 proxies 就是frp相关配置了,它支持 TCP、UDP、HTTP、HTTPS 等多种协议。

⚠️重点:localPort 为本地需要映射的端口,remotePort 为 frp 服务端监听的端口,如果你不知道怎么填,就默认两个端口都为本地需要被监听映射的端口,设置相同的就行

配置完客户端文件后,同样在项目目录内按 Shift + 鼠标右键,打开 PowerShell 并执行启动命令:./frpc -c ./frpc.toml

看到如下图即为成功(全部为蓝色):
2025-08-25T16:28:49.png


总结:
自建的frp服务让局域网联机体验上升了不止一层楼,另外内网穿透的目的当然不止游戏联机,这意味着只要服务器带宽足够,可以实现串流、远程访问等等强大的玩法!

评论
青柠半熟. All Rights Reserved.

Write by GEORGEWU. 琼ICP备2024029190号