比特彗星 常见问题的收集与解决

2.3 网络环境检测

问:有这么多的解决方法,但每个人的网络环境都不一样
要如何确定使用哪一种方法呢?

答:这就需要确定自己的网络环境了

主要网络环境优化
和运营商NAT检测

如果看不到运营商级NAT
一般认为是有ipv4公网

运营商级 NAT 网关通常使用以下 3 个地址空间:

  • 100.64.0.0/10,即 100.64.0.0 - 100.127.255.255
  • 172.16.0.0/12,即 172.16.0.0 - 172.31.255.255
  • 10.0.0.0/8,即 10.0.0.0 - 10.255.255.255

一般 看到以 100 10 172 开头的 那基本都是运营商级NAT

192.168.1.1 一般为光猫的地址

我们可以使用路由追踪命令
来确定自己的网络环境

不要开启代理软件 VPN 游戏加速器 会影响测试结果

win+r 弹出运行

输入这段命令

cmd /k tracert -d -4 www.baidu.com

点击确定后会弹出命令提示符窗口

显示跟踪完成后
即可截图保存进行分析

运营商级别NAT展示

10 开头的运营商NAT

100 开头的运营商NAT

172 开头的运营商NAT

常见情况分析

图片来自网络和QQ群

情况一


这是一种很常见的结构
有运营商级NAT(无ipv4公网)
光猫拨号
还连接了一个路由器
而电脑则连接在路由器上

优化建议:
(1)
向运营商获取公网IP以消除运营商级别NAT
修改光猫模式为桥接模式
拨号功能将交给路由器 以消除光猫NAT

路由器承接拨号功能
这样一来就只有一层NAT了
在路由器上做端口映射即可获取绿灯
是最理想的情况

(2)
运营商不给/无法获取ipv4公网
运营商nat无法消除

修改光猫模式为桥接模式
拨号功能将交给路由器 以消除光猫NAT
路由器承接拨号功能
在路由器上开启DMZ
为stun穿透做准备


情况二

这也是一种常见的结构
有运营商级NAT(无ipv4公网)
光猫拨号
但是没有连接路由器
而电脑直接连接在光猫上

优化建议:
与 情况一 相似
但不同的是没有路由器
拨号功能由光猫承担

当然也可以添置一个路由器
这样网络结构就变得和 情况一 相同了

添置路由的目的主要目的是接替光猫进行拨号
这样就可以将光猫改为桥接模式
免除路由设置光猫的麻烦

(1)
向运营商获取公网IP以消除运营商级别NAT
在光猫上设置端口映射 即可获得绿灯
(可能需要使用超级管理员)

(2)
运营商不给/无法获取ipv4公网
运营商nat无法消除

在光猫上开启DMZ 或者映射所有端口
为stun穿透做准备
(需要使用超级管理员)


情况三

与 情况一 相似
不过有多层运营商级NAT

10 开头的这IP些均为运营商NAT
在这么多层NAT stun应该是无法穿透的
建议考虑frp穿透或者获取IPv6


接下来再看有公网的情况

情况四

这相当于获取到公网后的 情况一
优化建议和情况一相同


情况五

有公网
光猫拨号没有路由器

这相当于获取到公网后的 情况二
优化建议和情况二相同


其他情况

是这些常见情况的变体

如光猫是否承担拨号/路由功能
若看不到 192.168.1.1
则光猫可能是处于桥接模式

如路由器的个数
或者运营商NAT的层数

小结:

一层运营商NAT:
尝试获取公网以消除运营商级别NAT

多层运营商NAT:
尝试IPv6 或者 frp 穿透

光猫:
在有路由器的情况下
尽量改桥接 让了路由器承接拨号功能
提高网络可靠性 减小配置复杂程度

路由器:
一般仅需在路由器设置 端口转发 upnp 或者 DMZ

在有多个路由器时
建议由一个路由器拨号
其他路由器 改为 桥接模式
减少不必要的NAT转换

IPv6方面

在之前的章节说过

常见的问题是路由器不支持IPv6
或支持但无法关闭IPv6防火墙

光猫一般都是支持的
不过关闭IPv6防火墙一般都需要
超级管理员

若路由器不支持IPv6功能
或支持IPv6但无法关闭IPv6防火墙
同时IPv4 无法解决运营商NAT

这时候可以尝试 由光猫拨号
使用超级管理员 关闭光猫IPv6防火墙
以实现IPv6端口开放 从而获得绿灯

问:路由跟踪的方法 一定可靠吗?

答:并不是
这个方法有个大前提,就是 NAT 网关会正确返回 ICMP 报文,否则该跃点会显示超时而无法判断。

目前大部分的家用路由器以及电信级 NAT 网关都不会禁止 ICMP,但一些企业内网使用的设备或许会过滤掉。

另外一些二级网络运营商会伪装 IP。拨号获取到的 WAN IP 是公网 IP,路由跟踪返
回的结果也没有显示电信级 NAT 网关

但这个“公网 IP”在经过运营商的设备时会被映射端口,且用户不可控 所以在事实上是存在运营商级NAT的

1個讚