今天偶然发现在我的OpenWrt下,开启了SSR全局代理GFW模式下,迅雷离线下载运行portal时会发生如下错误:


[root@JavaEE:/root]#/usr/xunlei/portal
initing...
try stopping xunlei service first...
killall: ETMDaemon: no process killed
killall: EmbedThunderManager: no process killed
killall: vod_httpserver: no process killed
setting xunlei runtime env...
port: 9000 is usable.


YOUR CONTROL PORT IS: 9000


starting xunlei service...
etm path: /usr/xunlei
execv: /usr/xunlei/lib/ETMDaemon.


getting xunlei service info...
Connecting to 127.0.0.1:9000 (127.0.0.1:9000)
wget: can't connect to remote host (127.0.0.1): Connection refused
xunlei service is not ready now.


try again...(has tried 1 time(s)).
getting xunlei service info...
Connecting to 127.0.0.1:9000 (127.0.0.1:9000)
wget: can't connect to remote host (127.0.0.1): Connection refused
xunlei service is not ready now.


起初我怀疑是迅雷的问题,于是手动运行EmbedThunderManager,通过netstat -apn查看是否开启了9000端口,发现9000端口并没有打开,可以推断EmbedThunderManager出现了异常,才导致了portal一直wget不到127.0.0.1::9000。但是我偶然关闭了SSR之后,就可以成功的获取迅雷的启动信息,我猜测可能是迅雷的程序和SSR的某种机制有冲突吧。希望大大们赐教。

在这里先记下来异常发生的现象和一个临时的解决方案,以后如果有更好的解决方法的话会在第一时间更新。


20170131更新:解决方法,把SSR的本地端口改为非1080,重启xware的portal即可。