urllib3 使用 ssh 连接作为代理

urllib3 using an ssh connection as proxy

我在本地笔记本电脑上有如下 ssh 连接:

ssh -f -N -D 3232 USER@IP

现在在 telepot 中使用 urllib3 我想将所有连接传递到此 ssh 连接,因为 Telegram 服务器已在我的办公室被禁止。 我阅读了 this 并按照它说的去做。但是当我使用这个时:

proxy_url = 'http:localhost:3232

我收到这个错误:

urllib3.exceptions.ProxyError: ('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f22968e5710>: Failed to establish a new connection: [Errno 111] Connection refused',))

如何连接到这个服务器?

如果您使用 urllib3 的旧版本,只需使用 sudo pip install urllib3 --upgrade 升级即可。 那么您必须使用 sudo pip2 install PySocks 安装 PySocks。 在这两个步骤之后,您必须将代码 here 更改为:

proxy_url = 'socks5://localhost:PORT'

telepot.api._pools = { 
            'default': SOCKSProxyManager(proxy_url=proxy_url, num_pools=3, maxsize=10, retries=False, timeout=30),
            }

telepot.api._onetime_pool_spec = (SOCKSProxyManager, dict(proxy_url=proxy_url, num_pools=1, maxsize=1, retries=False, timeout=30))

如果找不到 SOCKSProxyManager,请使用以下导入:

from urllib3.contrib.socks import SOCKSProxyManager