Skip to content

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