TyrantLucifer / ssr-command-client

:airplane:The commend client of ssr based Python3
Apache License 2.0
978 stars 240 forks source link

节点切换后报错:Secure Connection Fails <临时解决方案> #49

Open Hussimii opened 2 years ago

Hussimii commented 2 years ago

挂个 issue,也当作一个记录

Phenomena: 看视频的时候,在未关闭连接的情况下突然切换节点,导致整个系统的代理失效:火狐提示 Secure Connection Fails,终端使用 curl 调试,提示curl:(56) Recv failure: 连接被对方重设。

Solution:

  1. 切换系统及其他设备,同样的节点,均可正常访问,排除节点问题。
  2. 使用 ssr-command-client,在替他设备挂相同的节点,可正常访问,排除客户端问题。
  3. 查看客户端日志,提示 “tcprelay.py[line:1095] - [_log_error] - ERROR: [Errno 2] No such file or directory: b'liblibcrypto.a' when handling connection from 127.0.0.1:43312”,说明是加载库的时候出现了异常,需要进一步调试。
  4. 在 cryptos/util.py 里加日志,读取的库名是正常的: libcrypto,在 ctypes 库里加日志,就报错了: /usr/bin/ld: cannot find -llibcrypto /usr/bin/ld: note to link with /usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu/libcrypto.a use -l:libcrypto.a or rename it to liblibcrypto.a 意思就是 gcc 在使用 ld 加载库的时候,把 libcrypto 识别成了 liblibcrypto,但其他线程都是好的,只有 socks5h 的相关应用有这个问题。
  5. 所以临时解决方案就是新增一个 liblibcrypto.a,之后可以继续正常使用。

Question TBD: 看样子像是系统里的某个文件在节点切换的一瞬间被搞坏了,但具体是哪个文件坏了,什么原因导致的还不是很清楚。看有没有大佬知道。