西西河

主题:【原创】怎样在复杂情况下突破中国电讯的网络尖兵? -- 山寺桃花

共:💬32 🌺26 新:
全看分页树展 · 主题 跟帖
家园 关于NAT

几天没机会上网,刚看到你的发文。我没有机会试网络尖兵,所以解决方法没有针对性,只是根据你的发文泛泛而谈。

因为使用NAT,经过NAT转换,从NAT路由器出来的IP包不会有不同的MAC地址,他们全都用NAT路由对外端口的MAC地址。所以这一MAC地址要克隆你注册的MAC地址,但NAT以内内部网的机器都不要改。

单重或多重NAT没有本质区别。双重NAT对一般应用没有问题,不过可能对某些p2p,voip,和vpn应用会有问题,当然同样应用在单重NAT下也可能会出问题。具体情况比较复杂,不多说了。

一般检测共享无非是预设限制(流量,连接数等等)扫描和监听这三种手段。

预设限制的方法根本不在乎是共享还是单机,超过限制一律假设为共享,所以没什么好办法对付。不过一般这类限制额比较高,否则正常用户都没法使用,false positive太高。所以如果你家里不是使用量非常大,那应该还可以。当然如果太大,就要想其他办法了。没有办法对付流量限制,不过包月的不应该设流量限制。对连接数的限制只能从架代理的角度来想办法。

对付扫描的手段是有针对性地设好你的防火墙。

单纯的监听除了一种方法外对NAT一般没有用(当然还可以辅以各种行为分析手段来判断到底是一台还是几台机器,不过估计可能性不大)。这种这种办法就是看IP包头里的TTL值。一般TTL初始值都是2的指数,比如Linux和BSD都用64做初始值,windows用128等等。而NAT因为是路由器,在处理IP包的时候必定要把这个值减去1。所以尖兵如果发现向外走的IP包有非2的指数的TTL值,那就是说该IP包已经经过过路由器了,否则收到的IP包TTL值应该还是初始值。这样就可以断定有共享。解决办法就是去掉NAT递减TTL的效果。一般NAT路由没有这功能,我也不熟悉国内市场上有没有带此功能的NAT路由。如果是自己的linux机做NAT,那需要改kernel里IP处理部分的程序,再重造kernel。如果你对自己的终端机器熟悉,也可以改它的缺省TTL值,变成正常值加1,比如linux机用65,window机用129等等。

元宝推荐:四月一日,
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河