我的目的
实现本机 <-> VPS <-> 8.8.8.8 的 DNS 查询请求的中转,借此可以“准确地”使用“真正的” 8.8.8.8 服务器返回的 IP 。 8.8.8.8 返回的结果在 100ms 内,在我看来是不正常的。
设置
VPS 设置
我已配置 VPS 的 iptables ,采用如下命令
iptables -t nat -A PREROUTING -p udp -d VPS 的 IP --dport 5353 -j DNAT --to-destination 8.8.8.8:53
iptables -t nat -A POSTROUTING -p udp -d 8.8.8.8 --dport 53 -j SNAT --to-source VPS 的 IP
dig www.google.com @VPS 的 IP -p 5353
; <<>> DiG 9.8.3-P1 <<>> www.google.com @VPS 的 IP -p 5353
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38425
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0;; QUESTION SECTION:
;www.google.com. IN A;; ANSWER SECTION:
www.google.com. 118 IN A 216.58.216.4;; Query time: 371 msec
;; SERVER: VPS 的 IP#5353(VPS 的 IP)
;; WHEN: Mon Jan 25 14:00:14 2016
;; MSG SIZE rcvd: 48
本机设置( OS X )
已采用 这篇文章 所述方法进行设置,其中 resolv.dnsmasq.conf 文件设置为
nameserver VPS 的 IP#5353
( nameserver 208.67.222.222#5353 也不行,而 OpenDNS 开设 5353 端口)
遇到的问题
- 仍然无法解析域名( Chrome 返回的错误为 DNS_PROBE_FINISHED_BAD_CONFIG ),所以我在想是否是 dnsmasq 的设置问题(或者说非标端口该如何设置)。
- 如果无法设置非标端口,那么端口转发时,如何设置:国内网址走 114 等 DNS
- 我曾按照 这个网址 配置 OS X 的 pfctl ,但不成功。请问该如何实现 53 端口至 5353 端口的转发?