以您的电脑作为主机进行多人游戏
前言
如果您希望在我们的游戏中创建私人比赛房间,并使其在服务器浏览器中可见,您需要拥有一个公网IP地址(Public IP)。
在当今IPv4地址资源已经枯竽的情况下,大多数网络服务提供商(ISP)都倾向于减少向家庭/办公宽带用户提供公网IP,转而采用网络地址转换(NAT)技术。NAT允许多个私有IP地址通过一个公网IP与互联网连接,从而节省IPv4地址资源,但同时也导致用户无法被其他终端主动访问。
为解决这一问题,出现了STUN(简单遍历UDP通过NAT)和内网穿透等技术和工具,如FRP和NPS。但遗憾的是,NorthStar游戏开发之初未考虑嵌套网络的情况,导致上述技术由于协议问题而无法使用。
这种情况与各国IPv4资源分配有关。根据数据,美国每个网民平均可分配近6个IPv4地址,而中国、巴西、墨西哥等发展中国家网民人均仅有不到0.5个IPv4地址。由于北美和欧洲拥有充足网络资源,该地区开发者在设计程序时几乎从未考虑过高度嵌套网络的情况。
这直接导致了中国三大运营商进一步缩减了向家庭/办公用户分配的公网IPv4资源。中国联通和电信家庭宽带用户或可向客服咨询,看是否能分配一个动态公网IPv4地址,是否能分配取决于当地政策和客服态度。而中国移动家庭宽带用户通常无法获得公网IPv4地址,客服一般会建议订购商业宽带。
随着IPv6加速部署,NAT技术将逐步被淘汰。IPv6庞大的地址池足以解决IPv4时代的地址短缺问题。
总之,如需创建可见的私人游戏房间,您需要一个公网IPv4地址。如果您的家庭/办公宽带没有提供这一资源,可以考虑其他方式,如商业宽带或IPv6。
在向网络供应商索要到一个公网IP后,由于国内运营商在办理宽带时为您提供的光猫等接入设备限制颇多,且通常性能低下,所以您需要一个额外的路由器,并将光猫的工作模式由拨号网关转换至网桥(Router ==> Bridge),将路由器Wan口接至光猫的Lan口下,并使用路由器进行PPPoE拨号
在默认配置文件下,您需要在路由器端口转发设置的端口为UDP 37015
与TCP 8081
,您必须至少拥有一个可用的TCP和UDP端口,端口号可根据您的网络情况自行修改,下文将使用UDP 37015
与TCP 8081
两个端口作为示范
准备工作
修改服务端配置文件
.\ns_startup_args.txt
包含游戏的 [启动项].\R2Northstar\mods\Northstar.CustomServers\mod.json
保存着 [全局变量] 的默认参数.\R2Northstar\mods\Northstar.CustomServers\mod\cfg\autoexec_ns_server.cfg
保存着 [全局变量] 的自定义参数,该文件在游戏加载时将覆盖上方[全局变量]的默认参数
详细设置请参考[独立服务端]
我是否拥有一个公网IP?
在国内网络环境下,判断自己是否拥有公网IP最简单的办法是通过查看路由器拨号Wan口IP与您访问互联网所使用的IP是否一致
此处使用小米AX3600路由器举例
在浏览器访问路由器管理后台,切换到上网模式设置页
查看拨号信息中的分配到的IP地址
浏览器访问IPIP,将拨号信息中的分配到的IP地址与浏览器中所显示的IP进行比对
若IP结果均一致,且非192.168.0.0/16
,172.16.0.0/16
,10.0.0.0/8
或100.64.0.0/10
(运营商NAT IP,RFC 6598)等局域网私有IP,则您应该已经成功分配到了一个公网IP
端口转发
在路由器管理后台找到端口转发管理页(部分品牌路由器也将该功能称作为虚拟服务器)
此处使用小米AX3600路由器举例
首先确认您要用来进行多人游戏的PC的局域网IP
您的路由通常会启动DHCP服务器为您自动分配一个IP
在您的电脑上打开任务管理器,点击性能详细页
点击您的网卡,查看路由器DHCP服务器为您分配的局域网IP
此处该PC的IP地址为192.168.31.131
回到路由器管理后台,点击添加端口转发规则
在默认配置下,您需要转发的端口如下
37015
(UDP)
8081
(TCP)
IP地址填写PC在局域网中分配到的IP地址,此处为192.168.31.131
完成创建转发规则后,点击保存&生效
Windows防火墙
若您的PC等设备在路由器的下一层,而非直接暴露在公网中,那么我们推荐您直接关闭Windows系统自带的防火墙
若您的PC等设备直接暴露在公网中,那么您应该保持防火墙系统开启,并保持敏感服务端口关闭
若您启用了Windows防火墙,您需要在防火墙中允许 NorthstarLauncher.exe
访问互联网. 在默认情况下,系统应该会在您第一次运行NorthstarLauncher.exe
时弹出询问窗口,请点击允许
如果您不小心点了拒绝(取消)按钮,手动设置的过程如下
- 打开
Windows Defender 防火墙
- 选择
允许应用或功能通过 Windows Defender 防火墙
- 点击
允许其他应用
- 点击
浏览
- 找到
NorthStarCNLauncher.exe
并勾选 - 点击
添加
环境检查
在完成上述步骤后,您已经可以使用您的电脑开启一个公开多人房间进行游玩了,在这之前,您也可以进行一次环境检查,以防在上述步骤中出现您未注意到的操作失误
在开启公开多人房间后,您可以使用网页端的服务器浏览器查看您的房间是否已经存在于浏览器中.
若房间长时间未出现在浏览器中,您可以先在PC上打开命令提示符(CMD),分别输入netstat -ano | findstr "37015"
和netstat -ano | findstr "8081"
来查看进程是否在本机上正确监听这两个端口
若输入查询指令后并无结果返回,则应首先检查您是否已经关闭防火墙或是否已经添加防火墙相对应的允许规则
若您已经完成了防火墙的相关操作,则应是您的配置文件没有正确配置,导致游戏进程并未在监听UDP 37015
与TCP 8081
,而是在监听其他端口,修改您的配置文件至正确的端口号即可
若您确认PC网络端口配置正确后,您还可以通过第三方网站提供的端口验通工具来确认您所开放的端口在互联网可以访问
此处我们使用IPVoid来检查您的TCP端口是否可以访问(上文已经提到,默认为 8081
)
然后使用IPVoid-UDP来检查您的UDP端口是否可以访问(上文已经提到,默认为 37015
)
在确认所有端口均可访问,配置文件设置正确后,您就可以开启游戏,并等待其他玩家进入您的房间了
实用指令
将ns_private_match_only_host_can_change_settings
设置为 2
,之后只有房主才有权限更改房间参数
将 ns_private_match_countdown_length
设置为 1
用来跳过开始游戏前的倒计时
将 ns_private_match_only_host_can_start
设置为 1
,之后只有房主才有权限开始游戏