0.背景
此文,供有一定计算机知识的朋友参考,讲解如何通过frp穿透本机的mod服务。
frp官网:https://gofrp.org/zh-cn/
frp是一个内网穿透工具,可以将我们内网的服务代理到公网上。
我们使用mod启动服务器后,由于是内网环境,如果没有公网ip,朋友们是访问不到的。
所以,frp能干嘛?
在深海迷航联机MOD主页文章中,讲了可以使用虚拟局域网的方式来联机。
我是按文章中的方法使用的蒲公英,但是实际体验中,感觉延迟比较高。
看了下文章,有介绍一个思路,可以通过内网穿透代理本地udp协议的11000端口,启动服务器后也有这条提示。
本文,介绍如何通过内网穿透工具FRP来将我们的本地服务器穿透到公网。
有服务器的同学,可以让朋友通过服务器的公网ip访问联机mod。
原理,大概就是下面这样,朋友们可以通过公网服务器连接到我们的本地的mod服务来,实现一起游戏。
此种方式下,无需再使用蒲公英等虚拟组网工具。
1.要求
2.frp配置
2.1 服务端
我的环境: CentOS Linux release 8.5.2111
frp版本如下:
2.1.1 下载
在github的frp-releases下载相应的文件,linux服务器的话一般选AMD64
。
或者,使用命令来确定服务器的架构。
uname -m
比如此处我下载的是amd64版本的包。
点击后即可开始下载,然后上传到服务器的任意位置。
2.1.2 解压
上传到服务器后,执行解压命令。
tar -xzvf frp_0.53.2_linux_amd64.tar.gz
tar -xzvf frp_0.53.2_linux_amd64.tar.gz -C /path/to/destination
解压后,大概是下面的样子。
作为穿透的服务端,我们只用关心frps
、frps.ini
两个文件即可。
2.1.3 注册系统服务
使用systemd管理frp服务
A.安装
yum install systemd
B.编辑systemd配置
vim /etc/systemd/system/frps.service
C.写入配置值
修改我注释的2处即可
[Unit]
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
ExecStart = /yang/software/frp/frp_0.44.0_linux_amd64/frps -c /yang/software/frp/frp_0.44.0_linux_amd64/frps.ini
[Install]
WantedBy = multi-user.target
D.保存
运维命令
systemctl start frps
systemctl stop frps
systemctl restart frps
systemctl status frps
2.1.4 编辑配置
vim frps.ini
写入服务端的配置
[common]
bind_port = 7000
token = 可以写随机字符,等会配置客户端配置成一样的即可
vhost_http_port = 7100
log_file = /yang/logs/frp/frp.log
dashboard_port = 7500
dashboard_user = 配置你的管理台账号
dashboard_pwd = 配置你的密码台密码
max_pool_count = 5
2.1.5 启动
保存后,就可以通过启动命令启动frp的服务端了。
systemctl start frps
可以查看日志的启动信息
2.2 客户端
我的环境: Microsoft Windows 11 专业版
frp版本如下:
2.2.1 下载
同服务端一样,下载对应的版本即可。
2.2.2 解压
.zip文件,解压不多说了。
作为穿透的客户端,我们只用关心frpc、
frpc.ini`两个文件即可。
2.2.3 编辑配置
客户端的配置文件,我用了include语法,实际上放在了config目录中。
所以,frpc.ini的文件是这样的。
# ==========服务端信息 ==========
[common]
server_addr = frp服务器的server端ip,即你的服务器ip
server_port = 7000
token = 上文你配置的token
includes = ".\\config\\*.ini"
config中我存放了具体的配置文件。
shenhai.ini配置如下。
# 深海迷航
[ShenHaiMiHang]
name = "ShenHaiMiHang"
type = "udp"
local_ip = "127.0.0.1"
local_port = 11000
remote_port = 11000
2.2.4 启动
3.网络配置
注意上方我们服务器使用了如下端口
-
7000:frp服务端的端口
-
7500:frp控制台界面的web端口
-
11000:深海迷航的穿透到服务器上的端口
记得给上面的端口加白,不同的服务器厂商操作方式不一样,需要自己搜索下怎么操作。
你也可以查看frp当前监听了哪些端口,然后加白这些端口。
注意我们的mod服务器是udp协议
netstat -tunlp|grep frp
4.使用
完成上方配置后,在多人游戏的这个界面,就可以通过服务器ip:端口访问了
之前frp服务器端配置过后管还记得嘛,端口是7500,这里也可以查看到连接信息。
5.其他
碰到问题,可以查看frp的官网文档。
里面的各项配置,各个版本还是有差异的,我也被坑过,可以结合搜索工具确定下实际的配置方式。
或者结合我的版本来操作。
平时工作比较忙,这个网站来的少,有问题可以给我发邮件交流:[email protected]