semigodking / redsocks

transparent redirector of any TCP/UDP connection to proxy
Apache License 2.0
1.17k stars 247 forks source link

Openwrt上的redsocks2无法正确将被reset的地址转发给代理 #29

Closed Harry-Chen closed 8 years ago

Harry-Chen commented 8 years ago

环境: Lenovo Y1 mini running Openwrt PandoraBox Redsocks2 (端口1081)来自于openwrt.org.cn的PandoraBox/Barrier Breaker (14.09)源 ss-redir(端口1080) ss-local(端口1082) iptables配置如下 zone_lan_prerouting redsock2_origin 思路是如果在gfwlist内则直接转发给shadowsocks,如果不在白名单(大陆IP段)内再转给redsocks2 而redsocks2的配置是转发给本地的1082端口上的ss-local 发现只要是经由Redsocks2的流量,如果远端time out(例如Google)则可以自动转发给代理并写入IP缓存,但是如果远端不在gfwlist内又返回reset,则无法正常访问,浏览器也会给出reset,IP缓存中也没有对应IP,log也没有错误信息。如下(其实这个网站在gfwlist里面,只是为了演示我手动去除了它) 注:我的shadowsocks服务器在国内,故也是在whitelist里面,不会引起forward loop reset ipcache log 在网上搜索以后并没有发现有人有类似的症状,不知是何故?

semigodking commented 8 years ago

你其实不需要再转发给ss ,除非你一定要使用ss local 新引入的功能。 至于 reset 是特意不写入缓存的。 没必要。reset回来得非常快,对这类屏蔽,先试直连,reset马上转代理。为什么?因为很多网站过几小时就变一次,也有很多网站偶尔会reset, 容易误判。所以,每次都试一下比较好,反正reset很快回来。 2015年11月29日 上午11:06,"Harry Chen" notifications@github.com写道:

环境: Lenovo Y1 mini running Openwrt PandoraBox Redsocks2 (端口1081)来自于openwrt.org.cn的PandoraBox/Barrier Breaker (14.09)源 ss-redir(端口1080) ss-local(端口1082) iptables配置如下 [image: zone_lan_prerouting] https://cloud.githubusercontent.com/assets/2819727/11455127/15f031fe-9688-11e5-9017-038c44dc8e65.png [image: redsock2_origin] https://cloud.githubusercontent.com/assets/2819727/11455131/3b53e404-9688-11e5-9906-dd344a3b1a29.png 思路是如果在gfwlist内则直接转发给shadowsocks,如果不在白名单(大陆IP段)内再转给redsocks2 而redsocks2的配置是转发给本地的1082端口上的ss-local 发现只要是经由Redsocks2的流量,如果远端time out(例如Google)则可以自动转发给代理并写入IP缓存,但是如果远端不在gfwlist内又返回reset,则无法正常访问,浏览器也会给出reset,IP缓存中也没有对应IP,log也没有错误信息。如下(其实这个网站在gfwlist里面,只是为了演示我手动去除了它) 注:我的shadowsocks服务器在国内,故也是在whitelist里面,不会引起forward loop [image: reset] https://cloud.githubusercontent.com/assets/2819727/11455134/acb6ffdc-9688-11e5-8f56-cad0536e0edc.png [image: ipcache] https://cloud.githubusercontent.com/assets/2819727/11455135/b1a0da04-9688-11e5-8367-9686b27fb021.png [image: log] https://cloud.githubusercontent.com/assets/2819727/11455136/b489ab38-9688-11e5-8eb9-37442e419721.png 在网上搜索以后并没有发现有人有类似的症状,不知是何故?

— Reply to this email directly or view it on GitHub https://github.com/semigodking/redsocks/issues/29.

Harry-Chen commented 8 years ago

呃不用转发给ss是指gfwlist的那些吗?那些的话是考虑到不必浪费时间判断了所以转发的。 但是现在的问题是遇到reset以后redsocks就直接往回抛,而没有转给后面的代理,这应该是不正常的吧?

发自我的 iPad

在 2015年11月29日,11:23,semigodking notifications@github.com 写道:

你其实不需要再转发给ss ,除非你一定要使用ss local 新引入的功能。 至于 reset 是特意不写入缓存的。 没必要。reset回来得非常快,对这类屏蔽,先试直连,reset马上转代理。为什么?因为很多网站过几小时就变一次,也有很多网站偶尔会reset, 容易误判。所以,每次都试一下比较好,反正reset很快回来。 2015年11月29日 上午11:06,"Harry Chen" notifications@github.com写道:

环境: Lenovo Y1 mini running Openwrt PandoraBox Redsocks2 (端口1081)来自于openwrt.org.cn的PandoraBox/Barrier Breaker (14.09)源 ss-redir(端口1080) ss-local(端口1082) iptables配置如下 [image: zone_lan_prerouting] https://cloud.githubusercontent.com/assets/2819727/11455127/15f031fe-9688-11e5-9017-038c44dc8e65.png [image: redsock2_origin] https://cloud.githubusercontent.com/assets/2819727/11455131/3b53e404-9688-11e5-9906-dd344a3b1a29.png 思路是如果在gfwlist内则直接转发给shadowsocks,如果不在白名单(大陆IP段)内再转给redsocks2 而redsocks2的配置是转发给本地的1082端口上的ss-local 发现只要是经由Redsocks2的流量,如果远端time out(例如Google)则可以自动转发给代理并写入IP缓存,但是如果远端不在gfwlist内又返回reset,则无法正常访问,浏览器也会给出reset,IP缓存中也没有对应IP,log也没有错误信息。如下(其实这个网站在gfwlist里面,只是为了演示我手动去除了它) 注:我的shadowsocks服务器在国内,故也是在whitelist里面,不会引起forward loop [image: reset] https://cloud.githubusercontent.com/assets/2819727/11455134/acb6ffdc-9688-11e5-8f56-cad0536e0edc.png [image: ipcache] https://cloud.githubusercontent.com/assets/2819727/11455135/b1a0da04-9688-11e5-8367-9686b27fb021.png [image: log] https://cloud.githubusercontent.com/assets/2819727/11455136/b489ab38-9688-11e5-8eb9-37442e419721.png 在网上搜索以后并没有发现有人有类似的症状,不知是何故?

— Reply to this email directly or view it on GitHub https://github.com/semigodking/redsocks/issues/29.

— Reply to this email directly or view it on GitHub.

semigodking commented 8 years ago

因为 redsocks2 自身是支持ss 的 你配置好就可以做为ss 客户端用了。 对于被reset的连接,它也是会像timeout一样转给代理的。 2015年11月29日 上午11:27,"Harry Chen" notifications@github.com写道:

呃不用转发给ss是指gfwlist的那些吗?那些的话是考虑到不必浪费时间判断了所以转发的。 但是现在的问题是遇到reset以后redsocks就直接往回抛,而没有转给后面的代理,这应该是不正常的吧?

发自我的 iPad

在 2015年11月29日,11:23,semigodking notifications@github.com 写道:

你其实不需要再转发给ss ,除非你一定要使用ss local 新引入的功能。 至于 reset 是特意不写入缓存的。 没必要。reset回来得非常快,对这类屏蔽,先试直连,reset马上转代理。为什么?因为很多网站过几小时就变一次,也有很多网站偶尔会reset, 容易误判。所以,每次都试一下比较好,反正reset很快回来。 2015年11月29日 上午11:06,"Harry Chen" notifications@github.com写道:

环境: Lenovo Y1 mini running Openwrt PandoraBox Redsocks2 (端口1081)来自于openwrt.org.cn的PandoraBox/Barrier Breaker (14.09)源 ss-redir(端口1080) ss-local(端口1082) iptables配置如下 [image: zone_lan_prerouting] < https://cloud.githubusercontent.com/assets/2819727/11455127/15f031fe-9688-11e5-9017-038c44dc8e65.png>

[image: redsock2_origin] < https://cloud.githubusercontent.com/assets/2819727/11455131/3b53e404-9688-11e5-9906-dd344a3b1a29.png>

思路是如果在gfwlist内则直接转发给shadowsocks,如果不在白名单(大陆IP段)内再转给redsocks2 而redsocks2的配置是转发给本地的1082端口上的ss-local 发现只要是经由Redsocks2的流量,如果远端time

out(例如Google)则可以自动转发给代理并写入IP缓存,但是如果远端不在gfwlist内又返回reset,则无法正常访问,浏览器也会给出reset,IP缓存中也没有对应IP,log也没有错误信息。如下(其实这个网站在gfwlist里面,只是为了演示我手动去除了它)

注:我的shadowsocks服务器在国内,故也是在whitelist里面,不会引起forward loop [image: reset] < https://cloud.githubusercontent.com/assets/2819727/11455134/acb6ffdc-9688-11e5-8f56-cad0536e0edc.png>

[image: ipcache] < https://cloud.githubusercontent.com/assets/2819727/11455135/b1a0da04-9688-11e5-8367-9686b27fb021.png>

[image: log] < https://cloud.githubusercontent.com/assets/2819727/11455136/b489ab38-9688-11e5-8eb9-37442e419721.png>

在网上搜索以后并没有发现有人有类似的症状,不知是何故?

— Reply to this email directly or view it on GitHub https://github.com/semigodking/redsocks/issues/29.

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHub https://github.com/semigodking/redsocks/issues/29#issuecomment-160364256 .

semigodking commented 8 years ago

另外,看你给出的 redsocks2 log ,并没有reset啊,是正常关闭连接。 2015年11月29日 上午11:44,"Semigod King" semigodking@gmail.com写道:

因为 redsocks2 自身是支持ss 的 你配置好就可以做为ss 客户端用了。 对于被reset的连接,它也是会像timeout一样转给代理的。 2015年11月29日 上午11:27,"Harry Chen" notifications@github.com写道:

呃不用转发给ss是指gfwlist的那些吗?那些的话是考虑到不必浪费时间判断了所以转发的。 但是现在的问题是遇到reset以后redsocks就直接往回抛,而没有转给后面的代理,这应该是不正常的吧?

发自我的 iPad

在 2015年11月29日,11:23,semigodking notifications@github.com 写道:

你其实不需要再转发给ss ,除非你一定要使用ss local 新引入的功能。 至于 reset 是特意不写入缓存的。

没必要。reset回来得非常快,对这类屏蔽,先试直连,reset马上转代理。为什么?因为很多网站过几小时就变一次,也有很多网站偶尔会reset, 容易误判。所以,每次都试一下比较好,反正reset很快回来。 2015年11月29日 上午11:06,"Harry Chen" notifications@github.com写道:

环境: Lenovo Y1 mini running Openwrt PandoraBox Redsocks2 (端口1081)来自于openwrt.org.cn的PandoraBox/Barrier Breaker (14.09)源 ss-redir(端口1080) ss-local(端口1082) iptables配置如下 [image: zone_lan_prerouting] < https://cloud.githubusercontent.com/assets/2819727/11455127/15f031fe-9688-11e5-9017-038c44dc8e65.png>

[image: redsock2_origin] < https://cloud.githubusercontent.com/assets/2819727/11455131/3b53e404-9688-11e5-9906-dd344a3b1a29.png>

思路是如果在gfwlist内则直接转发给shadowsocks,如果不在白名单(大陆IP段)内再转给redsocks2 而redsocks2的配置是转发给本地的1082端口上的ss-local 发现只要是经由Redsocks2的流量,如果远端time

out(例如Google)则可以自动转发给代理并写入IP缓存,但是如果远端不在gfwlist内又返回reset,则无法正常访问,浏览器也会给出reset,IP缓存中也没有对应IP,log也没有错误信息。如下(其实这个网站在gfwlist里面,只是为了演示我手动去除了它)

注:我的shadowsocks服务器在国内,故也是在whitelist里面,不会引起forward loop [image: reset] < https://cloud.githubusercontent.com/assets/2819727/11455134/acb6ffdc-9688-11e5-8f56-cad0536e0edc.png>

[image: ipcache] < https://cloud.githubusercontent.com/assets/2819727/11455135/b1a0da04-9688-11e5-8367-9686b27fb021.png>

[image: log] < https://cloud.githubusercontent.com/assets/2819727/11455136/b489ab38-9688-11e5-8eb9-37442e419721.png>

在网上搜索以后并没有发现有人有类似的症状,不知是何故?

— Reply to this email directly or view it on GitHub https://github.com/semigodking/redsocks/issues/29.

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHub https://github.com/semigodking/redsocks/issues/29#issuecomment-160364256 .

Harry-Chen commented 8 years ago

嗯,我用redsocks自带的代理取代了ss-local,但是被reset的地址仍然无法正常访问,表现就是浏览器依旧得到reset,而redsocks2的log中却是success。所以我也很奇怪为什么是被认为正常关闭链接了

发自我的 iPad

在 2015年11月29日,11:44,semigodking notifications@github.com 写道:

因为 redsocks2 自身是支持ss 的 你配置好就可以做为ss 客户端用了。 对于被reset的连接,它也是会像timeout一样转给代理的。 2015年11月29日 上午11:27,"Harry Chen" notifications@github.com写道:

呃不用转发给ss是指gfwlist的那些吗?那些的话是考虑到不必浪费时间判断了所以转发的。 但是现在的问题是遇到reset以后redsocks就直接往回抛,而没有转给后面的代理,这应该是不正常的吧?

发自我的 iPad

在 2015年11月29日,11:23,semigodking notifications@github.com 写道:

你其实不需要再转发给ss ,除非你一定要使用ss local 新引入的功能。 至于 reset 是特意不写入缓存的。 没必要。reset回来得非常快,对这类屏蔽,先试直连,reset马上转代理。为什么?因为很多网站过几小时就变一次,也有很多网站偶尔会reset, 容易误判。所以,每次都试一下比较好,反正reset很快回来。 2015年11月29日 上午11:06,"Harry Chen" notifications@github.com写道:

环境: Lenovo Y1 mini running Openwrt PandoraBox Redsocks2 (端口1081)来自于openwrt.org.cn的PandoraBox/Barrier Breaker (14.09)源 ss-redir(端口1080) ss-local(端口1082) iptables配置如下 [image: zone_lan_prerouting] < https://cloud.githubusercontent.com/assets/2819727/11455127/15f031fe-9688-11e5-9017-038c44dc8e65.png>

[image: redsock2_origin] < https://cloud.githubusercontent.com/assets/2819727/11455131/3b53e404-9688-11e5-9906-dd344a3b1a29.png>

思路是如果在gfwlist内则直接转发给shadowsocks,如果不在白名单(大陆IP段)内再转给redsocks2 而redsocks2的配置是转发给本地的1082端口上的ss-local 发现只要是经由Redsocks2的流量,如果远端time

out(例如Google)则可以自动转发给代理并写入IP缓存,但是如果远端不在gfwlist内又返回reset,则无法正常访问,浏览器也会给出reset,IP缓存中也没有对应IP,log也没有错误信息。如下(其实这个网站在gfwlist里面,只是为了演示我手动去除了它)

注:我的shadowsocks服务器在国内,故也是在whitelist里面,不会引起forward loop [image: reset] < https://cloud.githubusercontent.com/assets/2819727/11455134/acb6ffdc-9688-11e5-8f56-cad0536e0edc.png>

[image: ipcache] < https://cloud.githubusercontent.com/assets/2819727/11455135/b1a0da04-9688-11e5-8367-9686b27fb021.png>

[image: log] < https://cloud.githubusercontent.com/assets/2819727/11455136/b489ab38-9688-11e5-8eb9-37442e419721.png>

在网上搜索以后并没有发现有人有类似的症状,不知是何故?

— Reply to this email directly or view it on GitHub https://github.com/semigodking/redsocks/issues/29.

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHub https://github.com/semigodking/redsocks/issues/29#issuecomment-160364256 .

— Reply to this email directly or view it on GitHub.

semigodking commented 8 years ago

建议你抓包看看。猜太费劲了 2015年11月29日 上午11:52,"Harry Chen" notifications@github.com写道:

嗯,我用redsocks自带的代理取代了ss-local,但是被reset的地址仍然无法正常访问,表现就是浏览器依旧得到reset,而redsocks2的log中却是success。所以我也很奇怪为什么是被认为正常关闭链接了

发自我的 iPad

在 2015年11月29日,11:44,semigodking notifications@github.com 写道:

因为 redsocks2 自身是支持ss 的 你配置好就可以做为ss 客户端用了。 对于被reset的连接,它也是会像timeout一样转给代理的。 2015年11月29日 上午11:27,"Harry Chen" notifications@github.com写道:

呃不用转发给ss是指gfwlist的那些吗?那些的话是考虑到不必浪费时间判断了所以转发的。 但是现在的问题是遇到reset以后redsocks就直接往回抛,而没有转给后面的代理,这应该是不正常的吧?

发自我的 iPad

在 2015年11月29日,11:23,semigodking notifications@github.com 写道:

你其实不需要再转发给ss ,除非你一定要使用ss local 新引入的功能。 至于 reset 是特意不写入缓存的。

没必要。reset回来得非常快,对这类屏蔽,先试直连,reset马上转代理。为什么?因为很多网站过几小时就变一次,也有很多网站偶尔会reset, 容易误判。所以,每次都试一下比较好,反正reset很快回来。 2015年11月29日 上午11:06,"Harry Chen" notifications@github.com写道:

环境: Lenovo Y1 mini running Openwrt PandoraBox Redsocks2 (端口1081)来自于openwrt.org.cn的PandoraBox/Barrier Breaker (14.09)源 ss-redir(端口1080) ss-local(端口1082) iptables配置如下 [image: zone_lan_prerouting] <

https://cloud.githubusercontent.com/assets/2819727/11455127/15f031fe-9688-11e5-9017-038c44dc8e65.png>

[image: redsock2_origin] <

https://cloud.githubusercontent.com/assets/2819727/11455131/3b53e404-9688-11e5-9906-dd344a3b1a29.png>

思路是如果在gfwlist内则直接转发给shadowsocks,如果不在白名单(大陆IP段)内再转给redsocks2 而redsocks2的配置是转发给本地的1082端口上的ss-local 发现只要是经由Redsocks2的流量,如果远端time

out(例如Google)则可以自动转发给代理并写入IP缓存,但是如果远端不在gfwlist内又返回reset,则无法正常访问,浏览器也会给出reset,IP缓存中也没有对应IP,log也没有错误信息。如下(其实这个网站在gfwlist里面,只是为了演示我手动去除了它)

注:我的shadowsocks服务器在国内,故也是在whitelist里面,不会引起forward loop [image: reset] <

https://cloud.githubusercontent.com/assets/2819727/11455134/acb6ffdc-9688-11e5-8f56-cad0536e0edc.png>

[image: ipcache] <

https://cloud.githubusercontent.com/assets/2819727/11455135/b1a0da04-9688-11e5-8367-9686b27fb021.png>

[image: log] <

https://cloud.githubusercontent.com/assets/2819727/11455136/b489ab38-9688-11e5-8eb9-37442e419721.png>

在网上搜索以后并没有发现有人有类似的症状,不知是何故?

— Reply to this email directly or view it on GitHub https://github.com/semigodking/redsocks/issues/29.

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHub < https://github.com/semigodking/redsocks/issues/29#issuecomment-160364256> .

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHub https://github.com/semigodking/redsocks/issues/29#issuecomment-160366932 .

semigodking commented 8 years ago

特殊情况,无法支持.