shadowsocks / ChinaDNS

Protect yourself against DNS poisoning in China.
GNU General Public License v3.0
3.59k stars 1.29k forks source link

和shadowsocks的udp转发配合存在问题 #114

Open ghost opened 9 years ago

ghost commented 9 years ago

直接将DNS请求转发到ss-tunnel的5300端口,dns结果很快就会返回,但是将127.0.0.1:5300设置成chinadns的国外上游服务器的话,第一次启动chinadns,返回结果是正确的,但是之后就收不到,除非在重启chinadns,然后第一次又可以。

我观察了下服务器端的ss的log,发现dns直接转发给5300端口,服务器端很快就会出现记录,而使用chinadns,服务器要么不出现记录,要么出现:

openwrt上运行dig www.facebook.com -p 5353

结果: ; <<>> DiG 9.9.4 <<>> www.facebook.com -p 5353 ;; global options: +cmd ;; connection timed out; no servers could be reached

ss-server端日志:

2015-08-04 11:46:15 INFO: [udp] cache miss: 8.8.8.8:53 <-> 111.20.241.226:25184 2015-08-04 11:46:15 INFO: [udp] remote receive a packet 2015-08-04 11:46:20 INFO: [udp] server receive a packet 2015-08-04 11:46:20 INFO: [udp] cache hit: 8.8.8.8:53 <-> 111.20.241.226:25184 2015-08-04 11:46:20 INFO: [udp] remote receive a packet 2015-08-04 11:46:21 INFO: [udp] connection timeout 2015-08-04 11:46:21 INFO: [udp] one connection freed

我使用的是openwrt版本的shadowsocks-libec-spec和openwrt版本的chinadns

JoveYu commented 9 years ago

+1

matrikslee commented 6 years ago

我在树莓派(armv7h架构的archarm系统)上编译的chinadns也有这个问题,在Arch X86_64的系统上似乎就没这个问题。