KagayamaKaede / ShadowsocksRDroid

A ShadowsocksR client for Android4.0+.Compatible Shadowsocks protocol and support some ShadowsocksR function.
Other
341 stars 103 forks source link

关于vpnservice的bug #9

Open yantaodehaoma opened 9 years ago

yantaodehaoma commented 9 years ago

你好,好久没见更新了哈。 不知道有没有人注意到,不关闭vpn的情况下重装app,数据是不通的,必须重启手机,貌似daemon进程未关闭,本地端口被占用。 不关闭vpn的情况下卸载掉app,vpn连接一直在,似乎daemon进程也一直在跑,网络不通,只能重启手机才能关闭。 这个不知道有什么好的解决方案????

KagayamaKaede commented 9 years ago

最近在研究纯Java的SS实现,libev版本的我暂无能力维护,为了尽快实现SSR,我就从Java入手了。

用的是最新版本吗(V1.0.7 Beta)?用原版有没有这个问题?

启动VPN前,所有daemon进程我都会清理掉。重装App理论系统是会掐掉App已有的虚拟机进程(主进程,VPN进程)的。

yantaodehaoma commented 9 years ago

重装App,启动vpn,业务不通,但是若更换local port重装,则没问题。

yantaodehaoma commented 9 years ago

重装App理论系统是会掐掉App已有的虚拟机进程(主进程,VPN进程)的。

主进程,VPN进程确实都掐掉了,但是daemon进程应该没有,你启动vpn前清理deamon时,怎么获取卸载前的pid呢?

KagayamaKaede commented 9 years ago

重装不会清除/data/data//下的文件(daemon进程的PID通过pid file存储在该文件夹下),不过如果你会的话,可以通过终端查看是不是真的没有kill掉(ps | grep com.proxy.shadowsocksr)。我这边没法重现问题。

yantaodehaoma commented 9 years ago

刚刚试了一下。tun2socks会多起一个进程,ss-local好像起不来: 重装后打开vpn: shell@hwC8817D:/ $ ps | grep com.proxy.shadowsocksr u0_a261 13588 1 1484 332 ffffffff 00000000 S /data/data/com.proxy.shadowsocksr/ss-local u0_a261 13800 1 1220 304 ffffffff 00000000 S /data/data/com.proxy.shadowsocksr/tun2socks u0_a262 14592 258 565956 41236 ffffffff 00000000 S com.proxy.shadowsocksr u0_a262 14630 258 526196 22840 ffffffff 00000000 S com.proxy.shadowsocksr:vpn u0_a262 17449 1 1064 112 ffffffff 00000000 S /data/data/com.proxy.shadowsocksr/tun2socks 关闭vpn: shell@hwC8817D:/ $ ps | grep com.proxy.shadowsocksr u0_a261 13588 1 1484 504 ffffffff 00000000 S /data/data/com.proxy.shadowsocksr/ss-local u0_a261 13800 1 1220 304 ffffffff 00000000 S /data/data/com.proxy.shadowsocksr/tun2socks u0_a262 14592 258 566636 43900 ffffffff 00000000 S com.proxy.shadowsocksr u0_a262 14630 258 529704 25716 ffffffff 00000000 S com.proxy.shadowsocksr:vpn

KagayamaKaede commented 9 years ago

感谢反馈,我找时间修复

yantaodehaoma commented 9 years ago

嗯,reinstall UID发生了改变,导致kill失败。

KagayamaKaede commented 9 years ago

@yantaodehaoma, 我移除了所有shadowsocks的c实现,换用java实现了shadowsocks以及部分ssr插件。但是tun2socks和pdnsd仍然使用daemon. 有时间你可以测试下

不关闭vpn的情况下重装app,数据是不通的,必须重启手机,貌似daemon进程未关闭,本地端口被占用。 不关闭vpn的情况下卸载掉app,vpn连接一直在,似乎daemon进程也一直在跑,网络不通,只能重启手机才能关闭。

问题是否依然存在。(可能需要清空数据,否则可能会无限崩溃)