[CentOS7] Shadowsocks-Manager//WebGUI 添加 Node 的失败与解决

我的头发都是被小厂商和精简系统害没的。

使用 Shadowsocks-Manager 也已经有一段时间了,今天是彻底给三台梯子的 VPS 都重做了一次。先是遇到了 CentOS 和 RHEL 的小版本迭代不同步导致的 Repository 缺失软件包问题,而后又在日本 Vultr 与美国 BwH 都正常的情况下,使用同配置的香港 TA 出现了无法添加到 WebGUI 管理端的的问题。

询问作者后得知是 Type=M 的VPS访问 Type=S 的 VPS 出现了异常,尝试了互 ping,关闭防火墙,问题依旧。

最终通过排查监听的端口是否有异常查到了问题所在。

我给 ssmgr 放置的远端管理端口是 5431,所以通过 netstat 命令查看监听状况:

[[email protected] ~]# netstat -nupl 5431 
Active Internet connections (only servers) 
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name 
udp 0 0 0.0.0.0:42467 0.0.0.0:* 854/node 
udp 0 0 0.0.0.0:5353 0.0.0.0:* 494/avahi-daemon: r 
udp 0 0 0.0.0.0:37112 0.0.0.0:* 494/avahi-daemon: r 
udp 0 0 127.0.0.1:5430 0.0.0.0:* 835/ss-manager

然后与已经正常的其他 VPS 进行对比:

[[email protected] ~]# netstat -nupl 5431 
Active Internet connections (only servers) 
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name 
udp 0 0 0.0.0.0:59869 0.0.0.0:* 711/node 
udp 0 0 0.0.0.0:11002 0.0.0.0:* 927/ss-server 
udp 0 0 0.0.0.0:11003 0.0.0.0:* 929/ss-server 
udp 0 0 0.0.0.0:11004 0.0.0.0:* 931/ss-server 
udp 0 0 0.0.0.0:11005 0.0.0.0:* 933/ss-server 
udp 0 0 0.0.0.0:11006 0.0.0.0:* 935/ss-server 
udp 0 0 0.0.0.0:11007 0.0.0.0:* 937/ss-server 
udp 0 0 0.0.0.0:11008 0.0.0.0:* 939/ss-server 
udp 0 0 0.0.0.0:11009 0.0.0.0:* 941/ss-server 
udp 0 0 0.0.0.0:11010 0.0.0.0:* 943/ss-server 
udp 0 0 0.0.0.0:11011 0.0.0.0:* 945/ss-server 
udp 0 0 0.0.0.0:11012 0.0.0.0:* 947/ss-server 
udp 0 0 0.0.0.0:11013 0.0.0.0:* 949/ss-server 
udp 0 0 0.0.0.0:11014 0.0.0.0:* 951/ss-server 
udp 0 0 0.0.0.0:11015 0.0.0.0:* 953/ss-server 
udp 0 0 0.0.0.0:11016 0.0.0.0:* 955/ss-server 
udp 0 0 0.0.0.0:11017 0.0.0.0:* 957/ss-server 
udp 0 0 0.0.0.0:11018 0.0.0.0:* 959/ss-server 
udp 0 0 0.0.0.0:11019 0.0.0.0:* 961/ss-server 
udp 0 0 0.0.0.0:11020 0.0.0.0:* 963/ss-server 
udp 0 0 127.0.0.1:5430 0.0.0.0:* 850/ss-manager 
udp 0 0 127.0.0.1:323 0.0.0.0:* 470/chronyd 
udp 0 0 0.0.0.0:68 0.0.0.0:* 753/dhclient 
udp 0 0 0.0.0.0:6768 0.0.0.0:* 753/dhclient 
udp6 0 0 :::2099 :::* 753/dhclient 
udp6 0 0 ::1:323 :::* 470/chronyd

可以看出相比连接失败的 ssmgr 程序,正常的除了多出了几个远端配置的账号外,还有两个 chrony 协议进程,分配监听 UDPUDP6。通过查询后得知,这个程序是基于 NTP 协议的时间校对工具。推测可能是在添加服务器过程中用来进行辅助校验 Token 的。

于是,使用 yum 安装这个 chrony 包,完成后再次查看网络状态:

[[email protected] ~]# netstat -nupl 5431 
;Active Internet connections (only servers) 
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name 
udp 0 0 0.0.0.0:41169 0.0.0.0:* 497/avahi-daemon: r 
udp 0 0 0.0.0.0:5353 0.0.0.0:* 497/avahi-daemon: r 
udp 0 0 127.0.0.1:5430 0.0.0.0:* 878/ss-manager 
udp 0 0 127.0.0.1:323 0.0.0.0:* 492/chronyd 
udp 0 0 0.0.0.0:53650 0.0.0.0:* 881/node 
udp6 0 0 ::1:323 :::* 492/chronyd

此时再次尝试在 WebGUI 中添加,成功。