为什么需要公网 IP 呢? 理论上来说,就算是内网 ip,经过 nat 转换,不也是公网 ip 吗? 你有什么解决方法呢?
1
takanasi 2017-10-17 18:01:00 +08:00
头一次听说
|
2
googlebot 2017-10-17 18:06:10 +08:00 via iPad
bt 下载一样,nat 别人无法给你传数据,
|
3
ChristopherWu OP @googlebot 知道的只是别人的内网 ip,而不是经过 nat 出来的公网 ip ?
|
4
nekoyaki 2017-10-17 18:10:40 +08:00 5
switch 目前我知道的游戏里,马车和 splatoon 都是 udp p2p 方式联机的,没公网 ip 也可以连,但是需要至少是端口受限锥形 NAT。
参考资料: http://strawhatfy.github.io/2015/08/03/nat-napt/ 一般二级运营商是对称 NAT 类型( Symmetric NAT ),因此无法联机。一级运营商一般不会这么搞,这也就容易给人一种“没公网 IP 联不了机”的错觉。 |
5
nekoyaki 2017-10-17 18:15:27 +08:00 2
对了,switch 能直接在网络选项里看到 NAT type,如果有公网 IP 或者完全锥形 NAT 对应的是 A,端口受限或者 IP 锥形 NAT 对应的可能是 B 或者 C。再往下我没成功联机过,比如长宽的对称 NAT 我是 F 或者 E,不知道是按什么标准判断的。
3DS 不像 switch,没有相关的菜单和说明,但我估计和 switch 应该是相同的。 |
6
ChristopherWu OP @nekoyaki 已经铜币,感谢详细回答,学习了。
https://www.zhihu.com/question/38729355 我在上面链接里看了下几种 NAT 类型,我是光纤对应对称型 NAT, 可以理解。 》对于对等型 NAT,同一内网主机同一端口号,每一次与不同的外网主机通讯,就重新分配另一个端口号 就算是这样, 也不会导致联机问题啊?每次跟别人联机虽然端口不一样,但是走公网 ip,一样可以转发回来。我还是不理解~ |
7
stanjia 2017-10-17 18:22:05 +08:00 1
因为 PS 3ds 联机游戏是用户和用户之前对连 ,所以至少要有一个做为服务器的 PS 或 3ds 主机有公网 IP 且端口被映射出来
不像 WOW, WOW 是用户和网易连接。 网易有公网 IP 和端口映射, 所以所有人都可不必有公网 IP |
8
ChristopherWu OP @stanjia 如果是游戏商联机是直接粗暴的内网对内网,而不是公网对公网,那可以理解。 所以他们就是这样做?为什么不公网对公网?
|
9
nekoyaki 2017-10-17 18:26:12 +08:00
@ChristopherWu
光纤不一定是对称型 NAT,其实这个主要是看运营商,会不会把你“发往不同 IP 的包,经过不同的公网 IP 路由出去”。如果会,就是对称 NAT,在 switch 和 3ds 的场景下就很可能无法联机。 如果你本来就能联机,你自己在一级运营商的光猫后头架一个路由器,应该也是可以联机的(未证实,但多一层 NAT 也许网络会不稳定) |
10
jasontse 2017-10-17 18:29:04 +08:00 via iPad
我也是不懂这些平台为什么没有服务器
|
11
ChristopherWu OP @nekoyaki 已经在光猫后加了路由器,机器连 wifi,不行。
》发往不同 IP 的包,经过不同的公网 IP 路由出去 就算这样,我跟对方连时,对方是固定的公网 ip,我也会有固定的公网 ip 路由给他呀? |
12
raysonx 2017-10-17 18:33:25 +08:00
因为很多游戏需要用户与用户之间建立 P2P 连接。而 NAT 下的用户使用的是内网 IP,不能接受入站连接。
NAT 后的公网 IP 不是你一个人享有的,而是和很多用户共享。向 NAT 设备的公网 IP 主动发起连接往往会被无情地拒绝。 虽然业界研究出一些 NAT 打洞技术来绕过这个限制,而在某些 NAT 类型(比如对称 NAT )下或者多层 NAT 下,打洞成功率非常低。 如果不需要用户间建立 P2P 连接,而是提供一台有公网 IP 的中心服务器进行数据中转,则不需要考虑 NAT 的问题。然而,这需要成本。 |
13
nekoyaki 2017-10-17 18:35:19 +08:00
@ChristopherWu
我的意思是,如果你本来能联机,即使加一层路由器 NAT,应该也能连,所以和运营商给不给公网 IP 不是完全强相关。如果你现在已经是对称 NAT,那肯定不行。 运营商路由 udp 的规则也许和 tcp 不一样吧,对称 NAT 的必须得紧接着发出去的 IP 和端口去回,可能二级运营商设置了什么实效性或者别的什么规则影响了。 |
14
raysonx 2017-10-17 18:38:07 +08:00
举个不太恰当的例子,内网的机器就像公司里的内线电话。
员工使用自己的分机都可以向外拨号,但接听方通过来电显示看到的号码都是公司总机的号码。回拨的话会打到公司的总机,而不是员工的分机。 |
15
RqPS6rhmP3Nyn3Tm 2017-10-17 18:41:04 +08:00 via iPad
@nekoyaki 你的回复很有价值,之前我没有往这方面思考过。
有一个问题,是什么使得任天堂采用 p2p 作为联机使用?一般的网游都是客户端和服务端通过 udp 连接,p2p 的意义是什么? |
16
b821025551b 2017-10-17 18:42:28 +08:00
@nekoyaki #13 PS4 上的地狱老司机,有段时间死活连不上,后来破了一下光猫开启 uPnP,神奇的连上了。
|
18
stanjia 2017-10-17 18:50:23 +08:00
@ChristopherWu
e... 简单的讲, 就是互链一定要有一个在公网。 2 个都在内网的话, 是不行的。 你在内网能访问 V2EX 是因为 V2EX 有公网 IP 和端口。 你玩 WOW 和你的朋友, 是因为 WOW 有公网 IP 你们都联到 WOW 的公网服务器上进行游玩, 相应的你要 交钱。 因为公网服务器是要钱维护的。 你玩 PS4 和 你的朋友联机, 是没有一个像 WOW 那样的服务器, 你和你朋友联机时,PS4 会协商谁做主机, 一般就是有公网 IP 和端口的做主机, 然后所有人链接到这个人的 PS4 一起游玩。 |
19
RqPS6rhmP3Nyn3Tm 2017-10-17 18:57:12 +08:00 via iPad
@nekoyaki ……有理有据,令人信服
|
22
ChristopherWu OP |
23
ChristopherWu OP 如果理解有误,还请指教。
如果是以上的问题,那么让运营商允许外网发起连接到我的内网 ip,是否无需公网,问题就可以解决了? |
24
yexm0 2017-10-17 19:36:20 +08:00 via iPhone
放心,这是绝对不可能的啦。你凭什么让运营商帮你做 dmz 嘛
|
25
zjqzxc 2017-10-17 20:02:23 +08:00
@BXIA 我觉得,更大的可能是:对于这些一次付费,又没有内购的游戏,游戏开发商只能收一次钱,而全球部署服务器在整个公司的生命周期里都需要持续付出成本,应该是觉得不划算。如果能按月收费,或者可以插广告,我相信他们也会部署官方游戏服务器的。(毕竟没有什么问题是钱解决不了的;如果解决不了,就再多加点)
而现在这种模式下,只需要部署一台服务器,用来交换下玩家数据就行了,服务器开销会小得多。 |
26
ChristopherWu OP @zjqzxc ps:任天堂的联网是做的很差, 没有语音, 没有对话功能,只有连上了就玩玩玩。。
|
27
bianchensz 2017-10-17 22:00:04 +08:00
@yexm0 还是有人能拿到公网 IP 只是越来越难了
|
28
RqPS6rhmP3Nyn3Tm 2017-10-17 22:50:28 +08:00 via iPhone
@zjqzxc 我倒是觉得这个不会是主要原因。其他买断制的网游,比如守望先锋,采用的也是传统服务端。而且考虑到任天堂游戏非常贵(还不打折),可能还是技术上的考虑。
之前 FF14 出了大面积的连接问题,想想日厂的运营能力还是比较落后的。 |
29
raysonx 2017-10-17 22:56:21 +08:00
@ChristopherWu `让运营商允许外网发起连接到我的内网 ip`就是要让运营商帮你做 DMZ 或者映射一部分端口给你,然而这通常是不可能的。合同里面没有约定的事情你是不能指望运营商做的,他们才是大爷。
|
30
coolcoffee 2017-10-18 10:20:05 +08:00
刚好最近有玩 PS4 的仁王联机, 但那破游戏的联机机制也有点迷,某些玩家之间能连上,某些玩家联机抛错就永远抛错。
我猜测那游戏就是 P2P 联机的,游戏的主服务器只负责撮合玩家互相连接,然后数据都在玩家之间交换,不经过游戏服务器。 而玩家互相连接,至少要有一个人是公网 IP 充当服务器才能保证长链接不中断,两个人都是内网的话,除非运营商做静态路由,否则不可能直连通信。 |
31
skylancer 2017-10-18 12:16:24 +08:00
@ChristopherWu 妈的这中文看的我蛋疼不已,是什么鬼,然后一看英文噢噢噢是这个啊..
|
32
ChristopherWu OP @skylancer 不懂你说啥。。
|
33
FeifeiJin 2017-10-18 17:28:15 +08:00
长城宽带直接暴死了。
|