远程联机不求人 | 樱花内网穿透?Frp是什么?如何自建穿透服务?

© blog.srprolin.top

这是一篇博客转载,小黑盒不支持代码段,图片的显示效果可能不太好,如有兴趣者请前往博客页查看,个签处已标明域名。

简介与摘要

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

市面上的内网穿透服务Sakura FRP 樱花内网穿透 也是基于此实现的。

本文将以 Ubuntu24 系统公网云服务器为例,Frp 官方压缩包版本为 v0.65.0,分享部署自用内网穿透服务的步骤。

文中未提到的多处细节,请参考官方文档自行了解。

Frp 部署

官方的 release 界面下载到的压缩包中,会包含 frpc 客户端和 frps 服务端两个程序,我们一般在服务器上保留 frps,在需要穿透的内网机器上保留 frpc,我将分别演示在服务端(Linux)和客户端(Windows)上的操作:

Frps 服务端

分步总览:

  • 下载官方压缩包并解压进入项目目录

  • 删除有关客户端 frpc 的文件

  • 编辑 frps.toml 以初始化服务端配置

  • 为 frps 创建 systemd 后台服务文件

  • 将 frps 归入系统后台服务并开机自启

命令行操作(关于wget 网络问题,可以自行下载好压缩包之后,通过sftp 上传至服务器):

下载与安装

现在我们需要编辑frps.toml 文件内容,这里使用nano编辑器:nano frps.toml

文件内容大致如下:

frps.toml

现在按照官方用法,只需要执行./frps -c ./frps.toml 便可开启服务,并在 7500 端口查看 frps 的 web 页面。

但是此时该服务只能运行在 ssh 终端,也就是说关闭了 ssh 连接,frp 服务也将终止。

因此按照官方文档的推荐方法,可以将 frps 注册为 systemd 系统服务,跑在服务器后台。

安装部署systemd

内容大致如下:

frps.service

随后通过systemctl启动frps服务。

systemctl常用参数:

  • start

  • stop

  • restart

  • status

  • enable

  • disable

使用systemctl启动frps

Frpc 客户端

分步总览:

  • 下载并解压官方压缩包

  • 删除 frps 相关文件

  • 编辑`frpc.toml`配置初始化

  • 编辑`bat`和`vbs`文件以达到后台效果

  • 通过 web 界面编辑穿透服务

这里以 amd64 的 Windows 系统为例,点击下载官方压缩包

C:\Program Files\frpc 目录为例,存放解压后的文件。

删除frps.exe和frps.toml两个文件。

编辑frpc.toml内容如下:

frpc.toml

此时我们双击运行frpc.exe文件就能运行该服务,但是它需要跑在终端里。

下面将使用bat脚本+vbs脚本的方式,让该服务跑在后台,不占用前台终端。

在该目录下创建start_frpc.bat文件,编辑内容如下:

start_frpc.bat

创建start_frpc.vbs文件,编辑内容如下:

start_frpc.vbs

随后为start_frpc.vbs创建一个桌面快捷方式,双击快捷方式即可在后台运行,可访问http://127.0.0.1:7400 检查是否成功。

Frp 示例 | 穿透本机游戏端口

在上面的教程中,只是成功部署了 frp 服务,我们部署 frpc 客户端也是为了显示本机应用端口的穿透,下面将演示 Minecraft_Java 游戏服务器和 CS2 游戏房间的穿透案例。

运行start_frpc.vbs启动客户端后,前往web 页面:

frpc_web

我这里是已经部署成功后的页面,点击左边configure 可以实现在 web 页面编辑 frpc.toml 文件:

frpc_web_toml

按照此格式写入后,点击upload 即可更新配置文件,便可实现内网穿透:

web_toml

参数说明:

  • name:只用做服务标识,可以随便设置

  • type:对于当前案例来说,多数网游使用`udp`,而 Minecraft_Java 版游戏使用`tcp`

  • localIP:一般不用更改,127.0.0.1 表示本机。

  • localPort:根据需要的服务端口而言,这里 Minecraft 服务器默认跑在 25565 端口,CS2 房间是跑在 27015 端口。

  • remotePort:指的是别人需要通过远程服务器上的哪个端口来访问你本机的游戏服务器,该端口需要在云厂商安全组中放行,可与本地游戏服务端口不一致。

结语

本人对 Frp 的使用是非常有限的,实际上官方文档中对 Frp 的功能介绍远比我这里多得多,本文旨在展示这么一样东西,了解 Frp 的基础操作逻辑和参数说明,可以帮大家在使用比如 Sakura FRP 樱花内网穿透时,不那么茫然。

更多游戏资讯请关注:电玩帮游戏资讯专区

电玩帮图文攻略 www.vgover.com