socat 公网ipv6 转发 内网ipv4 实现 FiveM 联机 不花一分钱
研究了三天终于研究明白了,首先大家需要测试家里的宽带是否有IPv6
本教程基于Linux实现,因为socat 目前我没找到好用的Windows版本
进入[https://www.test-ipv6.com/index.html.zh_CN] 如果有如下图
说明是支持的
如果不是如下图 那就是不支持ipv6
这样的话,大家就需要看自己的光猫和路由器ipv6相关的开关有没有打开
如果确实不支持ipv6 但是你最新的手机应该是支持ipv6的,你可以用的手机开热点,给你要开服务器的电脑
下一步我们来检查自己的电脑是否获取到ipv6的地址了
我的服务器是用家里的旧电脑(i3 6100+8gb) 装的Ubuntu 20 Linux系统 所以我用我的Windows电脑连接,
可以看到已经获取到ipv6了
我们拿着这个scope global temporary dynamic 这一行的IP,复制到[https://ipw.cn/ipv6ping/]这个网站里进行ping测试
如果如下图结果所示,那就是通的,我们可以进行下一步直接部署了服务器了,如果Ping测试不通的话,我们需要关闭你服务器电脑操作系统的防火墙或者放行一些必要的端口如30120 40120之类的
我们进行下一步操作给你的服务器电脑安装socat
Ubuntu直接打开终端输入sudo apt-get update
、sudo apt-get install -y socat
然后我们通过socat 对我们的FIveM的端口进行监听和转发
txAdmin:socat TCP6-LISTEN:10011,reuseaddr,fork TCP4:127.0.0.1:40120
Fivem:TCP socat TCP6-LISTEN:10012,reuseaddr,fork TCP4:127.0.0.1:30120
Fivem:UDP socat UDP6-LISTEN:10012,reuseaddr,fork UDP4:127.0.0.1:30120
然后正常的启动服务器 Linux下是cd 到run.sh的目录 然后./run.sh
等txadmin启动后 我们可以用手机流量打开 txadmin的网页试一试
可以看到正常启动 这时候我们来到Fivem 客户端 F8输入connect [ipv6地址就是scope global temporary dynamic 这一行的IP]:10012 对服务器进行连接就可以正常进入游戏了