DNS Tunnel可以大致分为中继和直连两种类型,中继需要在外网有自己的服务器,直连在本地操作就可以。iodine这个工具不仅可以支持这两种类型,而且传输文件的速度非常快,是一种主流工具。iodine分为主控端和被控端,也就是服务端与客户端。当客户端请求该域名的解析,就可以建立通道连接。iodine支持NULL,TXT,SRV,MX,CNAME,A等多种查询请求类型。下面就是干货,告诉大家如何使用iodine传输文件并获取数据流量。
客户端:sudo iodine -f -r xxx.com -M 200
服务端 : sudo iodined -f -DDD -T TXT 192.168.99.1 xxx.com -c
当连接的开始需要两端输入相同的密码,然后在前台会显示大量的心跳数据......
这里稍微解释一下参数:
1.xxx.com 表示你在外网下服务器的域名。
2.-M 表示最大的上传域名长度,默认为255. 范围为100-255.使用此选项可缩减上行带宽,有利于下行带宽。
3.-f 表示保持前台运行。
4.-r 表示中继模式,如果ip地址换成外网服务器的真实ip地址,则代表是 直连模式,那么就不用加该参数。
5.-DDD 表示最高级别的debug(还可以是-DD ,-D哦~)。
6.-T 表示资源类型。
7.-c 表示禁用检查所有传入请求的客户端IP地址。
8.ip地址可以自己设定,直连情况下鄙人一般设定为192.168.0.1,此时通过ifconfig命令可以查询到服务端与客户端均多了dns0虚拟网卡,且ip地址分别为192.168.0.1 和192.168.0.2。
此时诸位亲就可以通过DNS Tunnel进行数据传输了,比如nc工具就可以,但是其中的ip地址就要根据您的dns0网卡的ip地址来设定了。比如:
主控端 : nc -l 8080 < abc.txt
被控端 : nc -n 192.168.99.1 8080 > abc.txt