技术解析

再求教一次, OpenWrt 不能自启动 ss-tunnel
0
2021-06-24 18:44:37
idczone
RT ,路由器重新刷了一下系统,把 ss-redir 和 ss-tunnel 都写进了 /etc/rc.local , ss-redir 开机启动正常,但是 ss-tunnel 却不会,只能 ssh 上去手动重启,求解决办法,请教,我的 /etc/rc.local 如下:

/usr/bin/ss-redir -c /etc/ss-redir.json -b 0.0.0.0 -f /var/run/ss-redir.pid
/usr/bin/ss-tunnel -c /etc/ss-tunnel.json -b 0.0.0.0 -l 5353 -L 8.8.8.8:53 -u
/etc/init.d/dnsmasq restart
exit 0
可以尝试一下延迟一下延迟启动

请问我应该怎么操作啊,谢谢啦

请问你说的是 sleep 延时吗

设置了一个 init.d 貌似好了,谢谢一楼

似乎发现问题可能是你的 ss-tunnel 没有加 -f 参数
/usr/bin/ss-tunnel -c /etc/ss-tunnel.json -b 0.0.0.0 -l 5353 -L 8.8.8.8:53 -u -f /var/run/ss-tunnel.pid
延时启动的话是这样:
sleep 5 && /usr/bin/ss-tunnel -c /etc/ss-tunnel.json -b 0.0.0.0 -l 5353 -L 8.8.8.8:53 -u -f /var/run/ss-tunnel.pid

不过既然是 openwrt ,为何不直接装 luci-app-shadowsocks 呢?
顺道分享一个自己从 openwrt-shadowsocks 提取的 init 脚本,去掉了对 UCI 的依赖
https://gist.github.com/stackia/0c83f9ca66cdc010be48840ee5b0a09c

谢谢哥们!

应该不是没加-f 的原因

用你的命令成功了,刚才 init.d 还是失败的

每个命令行后面要加个空格和&符号,这样每个命令都独立在后台执行,否则因为第一个命令是服务导致进程没有终止,也就不会再启动后续的命令行了。

/usr/bin/ss-redir -c /etc/ss-redir.json -b 0.0.0.0 -f /var/run/ss-redir.pid &
/usr/bin/ss-tunnel -c /etc/ss-tunnel.json -b 0.0.0.0 -l 5353 -L 8.8.8.8:53 -u &
这个可以不加&
/etc/init.d/dnsmasq restart
exit 0

谢谢啦,现在又刷回去路由器官方的固件了
数据地带为您的网站提供全球顶级IDC资源