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
我在本地笔记本电脑上有如下 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