最流畅的联机体验!TR使用IPv6远程联机
前言
本教程参考了星露谷物语吧的贴子:http://c.tieba.baidu.com/p/7591250125
学习本教程,则默认主机已经有一个可用的公网IPv6地址,而客机有一个可用的IPv6地址
IPv6联机有什么好处?
最直观的好处:延迟低
这是使用Sakura Frp创建的最低级内网映射隧道的延迟

这是我好友ping我的IPv6地址的延迟

看上去似乎只有7ms的差距?实际上,内网穿透在使用中的延迟要×2,因为这里ping是向Frp服务器通信,而实际使用中还要经Frp服务器转发到主机,因此实际延迟是52×2=104ms,而IPv6是直接向主机通信,延迟就是直观的45ms,足足比内网穿透快了一倍多
我怎么知道自己电脑支不支持IPv6联机?
这里区分开主机和客机两个部分,主机需要有公网IPv6地址,客机只需要有IPv6地址就行了
我是主机
首先打开这个测试IPv6的网站:http://test-ipv6.com/
若评分显示10/10,且IPv6地址开头不是fe80,那么说明你有公网IPv6地址,可以继续阅读下面的教程联机
可能会显示你有公网IPv4地址,其实这有可能是运营商的地址,用这个是联机不了的,不用管(当然除非你本身就有公网IPv4地址)

如果你评分不是10/10或者IPv6地址开头是fe80,这说明你没有IPv6地址或者只有局域网地址,建议上B站搜索教程(因为我没有这种情况,也没法给有用的教程)
这里我找了一个视频教程,可以参考一下:

我是客机
客机的话只要你能ping通主机的IPv6地址就行,同时按下Windows键+R键,在弹出窗口中输入cmd
然后在命令行中输入 ping -6 [主机的IPv6地址]
注意,这个中括号一定要带上,就像这样:

只要在下面弹出的内容中,已接收不是0,就说明你可以主机用IPv6联机。当然,丢失率为0%的话联机效果最好

我有公网IPv6,怎么联机?
需要注意的是,TR本身是不支持IPv6联机的,因此我们要使用端口转发工具,这里用的是tinyPortMapper,支持TCP和UDP端口转发,拿去给其他不支持IPv6联机的游戏用也是可以的,Github下载链接
TR默认使用TCP端口7777,如果你用TerrariaServer.exe开服的话,可以更改端口
以下内容直接摘自开头提到的星露谷吧的贴子
下载好后解压,打开有tinymapper.exe文件的文件夹,然后在上方路径框内输入"cmd"并按下回车

在打开的输入框中输入下面命令
它的语法:-l监听本地ip地址 -r转发至目标ip地址 -u表示这是udp连接 -t表示这是tcp连接,泰拉用-t就行了
如果是IPv6地址需要加上中括号再加冒号加端口号。选项和地址之间不需要空格
主机的命令:tinymapper.exe -l[<主机IP>]:<主机端口号> -r127.0.0.1:7777 -t
含义是:监听当前设备上某个IPv6的7777端口,然后转发至本地的游戏端口
客机的命令:tinymapper.exe -l127.0.0.1:<监听端口号> -r[<主机IP>]:<主机端口号> -t
含义是:监听本地的某个端口号,然后转发至主机负责解释IPv6数据的地址的指定端口
以上的尖括号<>不需要保留。相同的参数名称,参数数值也要相同!
端口号可以自圌由设定,但不应小于1024,更不能大于65535
之后主机进入游戏,依次点击“多人模式 -> 开服并开始游戏”,选完角色和世界后,Steam多人模式可关可不关,直接开房间即可
客机输入客机命令提到的监听地址便可进入
你这也太麻烦了吧?
我写了一个快捷方式(就像隔壁星露谷吧的贴子一样)可以帮你完成转发,你只需要输入IPv6地址和端口即可
下载链接:https://crapsky233.lanzouj.com/b01f2vk0f
密码:hnpm
使用方法附在压缩包里面了
对于主机:双击打开“主机端口转发.bat”,根据提示输入你的IPv6地址,如果你从游戏内开服的话,端口项直接留空即可(按回车)
对于客机:双击打开“客机端口映射.bat”,根据提示输入主机发给你的IPv6地址,然后进游戏,IP输入127.0.0.1,端口输入26000
"方便命令.bat"帮你记录了一些会用到的命令。
如果脚本或此程序向你申请管理员权限请同意。
关于临时IPv6地址
客机不需要关心,但主机需要留意。由于转发的目标地址固定,每次更换临时IPv6地址,也就需要更换一次<主机IP>,比较麻烦。目前看来临时IPv6地址应该是重启一次换一次,不会换得很频繁
临时IPv6地址主要是为了保证安全的,这样即使地址泄露,只要换一个就没事了
临时IP是可以关闭的
打开cmd窗口输入如下命令,
开启:netsh interface ipv6 set privacy state=enable
关闭:netsh interface ipv6 set privacy state=disable
输入这个命令需要重启一下网卡(禁用再启用),不知道咋弄可以直接重启电脑