Use DNS Forwarder

Jian Chang edited this page Mar 20, 2018 · 2 revisions

目前部分 ISP 下使用 ss-tunnel 不稳定, 导致 ChinaDNS 无法正常工作, 根本原因是这类 ISP 的 UDP 不稳定.
可以使用 DNS-Forwarder 替代 ss-tunnel 作为 ChinaDNS 的上游服务器, 如果使用 shadowsocks 的话, 因为是 TCP 协议, 所以可以使用到 shadowsocks 代理, 同时也解决了线路优化问题.

设置说明

DNS-Forwarder 保持默认设置即可, 默认监听 5300 端口,如果有其它应用程序占用, 可以修改为其它可用端口. 上游 DNS 需要是国外的 DNS 服务器, 并且支持 TCP 查询, 默认是 8.8.8.8.
ChinaDNS 上游服务器设置为 114.114.114.114,127.0.0.1:5300 即可, 如果不需要压缩指针, 可以将 127.0.0.1:5300 改为 127.0.0.1#5300.

为什么不使用 pdnsd 的 TCP 查询?
因为 pdnsd 的缓存无法完全禁用, 会导致 ChinaDNS 的线路优化功能失效. 而 DNS-Forwarder 是不带缓存的, 可以避免此问题.

设置示例

/etc/config/dns-forwarder

config dns-forwarder
	option listen_addr '0.0.0.0'
	option listen_port '5300'
	option dns_servers '8.8.8.8'
	option enable '1'

/etc/config/chinadns

config chinadns
	option bidirectional '0'
	option chnroute '/etc/chinadns_chnroute.txt'
	option port '5353'
	option enable '1'
	option server '114.114.114.114,127.0.0.1#5300'

/etc/config/dhcp

config dnsmasq
	option domainneeded '1'
	option boguspriv '1'
	option localise_queries '1'
	option rebind_protection '1'
	option rebind_localhost '1'
	option expandhosts '1'
	option readethers '1'
	option leasefile '/tmp/dhcp.leases'
	option localservice '1'
	option noresolv '1'
	option nohosts '1'
	option local '127.0.0.1#5353'
Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.