使用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

了解DNS

DNS通讯协议 DNS服务通常使用53号端口,同时使用TCP协议和UDP协议. DNS在进行区域传输的时候使用TCP协议,其它时候则使用UDP协议. 什么叫区域传输? DNS的规范规定了2种类型的DNS服务器,一个叫主DNS服务器,一个叫辅助DNS服务器. 在一个区中主DNS服务器从自己本机的数据文件中读取该区的DNS数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息.当一个辅助DNS服务器启动时,它需要与主DNS服务器通信,并加载数据信息.这就叫做区域传输(Zone Transfer). 为什么既使用TCP又使用UDP? 这里就要先了解一下TCP与UDP的一个差异: UDP报文的最大长度为512字节,而TCP则允许报文长度超过512字节.当DNS查询超过512字节时,协议的TC标志出现删除标志,这时则使用TCP发送. 区域传送时使用TCP,主要有一下两点考虑: 1. 辅域名服务器会定时(一般时3小时)向主域名服务器进行查询以便了解数据是否有变动。如有变动,则会执行一次区域传送,进行数据同步。区域传送将使用TCP而不是UDP,因为数据同步传送的数据量比一个请求和应答的数据量要多得多。 2. TCP是一种可靠的连接,保证了数据的准确性。 域名解析时使用UDP协议: 1. 客户端向DNS服务器查询域名,一般返回的内容都不超过512字节。 2. 不用经过TCP三次握手,这样DNS服务器负载更低,响应更快。 虽然从理论上说,客户端也可以指定向DNS服务器查询的时候使用TCP,但事实上,很多DNS服务器进行配置的时候,仅支持UDP查询包。 DN解析记录 A记录: 将域名指向一个IPv4地址(例如:100.100.100.100),需要增加A记录 CNAME记录: 如果将域名指向一个域名,实现与被指向域名相同的访问效果,需要增加CNAME记录。这个域名一般是主机服务商提供的一个域名 MX记录: 建立电子邮箱服务,将指向邮件服务器地址,需要设置MX记录。建立邮箱时,一般会根据邮箱服务商提供的MX记录填写此记录 NS记录: 域名解析服务器记录,如果要将子域名指定某个域名服务器来解析,需要设置NS记录 TXT记录: 可任意填写,可为空。一般做一些验证记录时会使用此项,如:做SPF(反垃圾邮件)记录 AAAA记录: 将主机名(或域名)指向一个IPv6地址(例如:ff03:0:0:0:0:0:0:c1),需要添加AAAA记录 SRV记录: … “了解DNS”

Read More