Total Pageviews

Friday, 2 October 2020

用stunnel解决有时连接不上ss-python的问题

 我们知道,最近,有时候,python版的ss client连接不上ss-python服务器端,解决办法如下。

登陆linux vps,之前已经用这个一键安装脚本https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh安装了ss-python服务器端。

然后,按此文https://briteming.blogspot.com/2012/01/vpsstunnel.html 安装stunnel服务器端,然后,

nano /etc/stunnel/stunnel-backend-is-ss-python.conf

其内容为:

client = no

cert = /etc/stunnel/public.crt

key = /etc/stunnel/private.key

[ss-python]

accept  = 444

connect = localhost:7990


这里,localhost:7990上运行的就是ss-python服务器端。然后运行:

stunnel4 /etc/stunnel/stunnel-backend-is-ss-python.conf


回到本地机器mac.运行brew install stunnel ,stunnel的配置文件在/usr/local/etc/stunnel/下。

cd /usr/local/etc/stunnel/

把服务器上的public.crt和private.key下载到当前目录。然后,

nano stunnel-backend-is-ss-python-on-vps.conf

其内容为:

client = yes

cert = public.crt 

key = private.key

[ss-python]

accept  = 127.0.0.1:7779 

connect = vps-public-ip:444


然后运行:

stunnel stunnel-backend-is-ss-python-on-vps.conf


在本地机器上,安装ss客户端程序,比如shadowsocksx,启动ss客户端程序,

在ss客户端程序中的服务器地址需填写为stunnel client的地址127.0.0.1:7779 ,加密方法/密码不用改动。


整个流程是ss client --> stunnel client --> stunnel server --> ss-python server


看到这个流程了吗?ss client去连接stunnel client,所以ss client中的服务器地址需填写为stunnel client的地址,而不是ss服务器的公网ip和ss服务器端的端口号。


设置浏览器的socks5服务器地址为127.0.0.1 ,端口1080,浏览器即可翻墙。


用obfsproxy/kcptun代替stunnel也行。事实上,用任意一个tunnel程序代替stunnel应该都是可行的,不过stunnel最好,因为stunnel是基于证书加密的tunnel程序。


相关帖子:

https://briteming.blogspot.com/2015/08/obfs4proxy-shadowsocks.html 


https://briteming.blogspot.com/2016/03/obfsproxysockshttp.html


https://briteming.blogspot.com/2016/05/kcptunsocks.html







No comments:

Post a Comment