使用ICMP和DNS隧道代理绕过认证限制网络

这种方法适用于获取了局域网地址后,却要进行页面认证的网络,比如常见的免费 WiFi 连接后,需要手机短信认证,或微信认证。 这种情况下,通常是往外部网络的请求被网关限制了。 那么此时,可以通过ping命令,尝试ICMP协议是否可以通行。比如ping 1.2.4.8看是否存在回应,如果可行,那么就代表可以通过隧道代理的方式实现外网连接。 但如果ping不同,没关系,正所谓上帝关了门留了窗,既然内部的DHCP给客户端分配了IP,那么必然分配DNS服务,也就是说DNS的请求在网关处有极大可能是畅通无阻的,因此可以尝试能否解析域名来验证隧道代理的可行性,通常可以使用命令nslookup解析指定的服务地址来验证。比如nslookup baidu.com 223.5.5.5,尝试解析baidu.com的IP,并指定使用阿里云的公共DNS服务器,如果解析成功,那么就可以通过隧道代理的方式实现外网的连接。 其实我用这种方法已经好久了,自从2015年买了 Raspberry Pi 2 并安装了 SoftEtherVPN 后,就发现这个软件简直就是代理中的神器,集多种代理协议于一身还实现了多用户的认证与多样化管理。最最神奇的是,它可以支持ICMP和DNS的隧道代理。 后来在长期使用中,发现部分网络的 ICMP 协议会被禁用,但 DNS 协议却是没有任何阻碍,更关键的是,DNS 协议走53号端口,一些网络中的网关并不支持数据包结构的验证,即不是DNS协议格式的数据包结构也能过,所以只要将代理的端口设置为53号即可。并且由于 DNS 协议会同时使用 TCP 和 UDP 协议,网关不会同时阻拦这两种类型协议,故强烈推荐使用 Shadowsocks 或加强版的 ShadowsocksR ,这两个代理软件能指定数据包走 TCP 或 UDP,只需将服务端的代理端口设置为 … “使用ICMP和DNS隧道代理绕过认证限制网络”

Read More