架设游戏私服——内网穿透工具frp

架设游戏私服——内网穿透frp

  • 1. 服务端
  • 2. 客户端
  • 3. exe消失之谜

适用场景:
拥有一台云服务器服务商提供的拥有公网ip的低配服务器。
拥有一台高配家用机,但是位于动态ip的家庭网络甚至是多级子网络中。
服务器能够架设公网ip的服务端用于玩家访问,但是配置撑不住服务端。
家用机配置足够承受服务端运算,但是没有公网ip用于加入游戏服务端。

frp是一款用于端口映射的开源项目,它的工作本质是:游戏的服务端在家用机的一个端口上运行,而玩家会访问云服务器的这个端口,此时,frp将云服务器的这个端口与家用机的端口连接起来,作为一个中转,使得玩家可以通过云服务器的转发来访问家用机上的服务端。

frp下载地址:https://github.com/fatedier/frp/releases

选择64位windows系统的windows_amd64.zip版本,下载并且解压缩。

可以看到,除了LICENSE之外,所有的文件都有frps和frpc两者之一的名称。
意思也很简单,s就是服务端server,c就是客户端client

原本的压缩包中所有文件都混在了一起,实际使用时可以按frps和frpc归到两个地方,服务端frps的文件放在有公网ip的云服务器上,而客户端frpc的文件则是放到实际运行游戏服务端的家用机上。

1. 服务端

服务端配置较为简单,只需要编辑frps.ini文件:
这里的bind_port可以随意设置,它并不是你要映射的端口,而是frp程序本身运行的端口,但是不要和你的游戏服务端抢占端口。

如果你在意安全问题的话,可以查一下相关文档中的sk属性,它是个连接的密钥,需要服务端与客户端的一样才能匹配,内容随便自己写。如果你无所谓安全问题的话,直接不写也行。 本文不涉及加密的安全性问题。

[common]
bind_port = 7000

然后在服务端文件夹中写一个start.sh脚本方便双击启动【以windows系统为例,如果你用的是linux那就写个.sh脚本】:

start frps.exe -c ./frps.ini

2. 客户端

客户端配置较为复杂一点,一般来说,游戏服务器通讯使用的是TCP或者UDP协议,以防万一可以把两者都配置一下转发。

举个栗子【不是错别字
假如我想在这台电脑上开【Minecraft】, 【Starbound】和【Empyrion-Galactic Survival】三个游戏的服务端,首先我要确认这些游戏服务端运行的端口,查询官方默认端口或者自己配置的端口。
查找发现,【Starbound】的默认开服端口是21025,而【Minecraft】是25565,【Empyrion-Galactic Survival】则更加复杂一些,它要使用30000-30004的所有端口来进行通讯。

再考虑到之前在服务端把frp的运行端口设置为了7000,那么就将frp的客户端frpc.ini文件配置为:
注:0.0.0.0的位置是填入你的云服务器公网ip,别照抄了。

[common]
server_addr = 0.0.0.0
server_port = 7000

[range:tcp_port]
type = tcp
local_ip = 127.0.0.1
local_port = 21025,25565,30000-30004
remote_port = 21025,25565,30000-30004
use_encryption = false
use_compression = false

[range:udp_port]
type = udp
local_ip = 127.0.0.1
local_port = 21025,25565,30000-30004
remote_port = 21025,25565,30000-30004
use_encryption = false
use_compression = false

local_port是本地端口,remote_port是云服务器的端口,将两者绑定起来。

然后在客户端文件夹中写一个start.sh脚本方便双击启动【以windows系统为例,如果你用的是linux那就写个.sh脚本】:

start frpc.exe -c ./frpc.ini

此时你在家用机启动服务端,就可以用云服务器的公网ip进入游戏服务器了~

3. exe消失之谜

如果你在启动脚本或者直接通过命令行运行后,发现程序没有工作,而且exe文件反而神秘消失了,那么十有八九你需要检查一下你电脑上那些无声的杀手——潜行的杀毒软件没错迈克菲我说的就是你这个装机自带的坑货

警惕迈克菲或者windows防火墙这种无形之中杀你文件的坑货,建议选用火绒这样安静的小可爱~

你可能感兴趣的:(游戏服务器,服务器,网络)