Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ssh-D的Python版本(ssh上的SOCKS代理)_Python_Proxy_Socks - Fatal编程技术网

ssh-D的Python版本(ssh上的SOCKS代理)

ssh-D的Python版本(ssh上的SOCKS代理),python,proxy,socks,Python,Proxy,Socks,我正试图通过代理使用urllib2来废弃一个不直接可用的网页(它在远程服务器的本地网络中运行,无法从外部访问)。我更喜欢的代理是SSH-SOCKS代理(就像您运行SSH-d9090服务器时得到的一样),这既是因为我可以访问它,也是因为它相当安全 我对paramiko进行了一次探索,但我发现的一切都指向通过SOCKS运行SSH连接,这与我在这里实际尝试实现的目标相反 我见过Transport类,但它只执行哑转发,并没有提供一个好的OpenSSH SOCKS代理接口,我可以使用SocksiPy(等)

我正试图通过代理使用urllib2来废弃一个不直接可用的网页(它在远程服务器的本地网络中运行,无法从外部访问)。我更喜欢的代理是SSH-SOCKS代理(就像您运行
SSH-d9090服务器时得到的一样),这既是因为我可以访问它,也是因为它相当安全

我对paramiko进行了一次探索,但我发现的一切都指向通过SOCKS运行SSH连接,这与我在这里实际尝试实现的目标相反

我见过Transport类,但它只执行哑转发,并没有提供一个好的OpenSSH SOCKS代理接口,我可以使用SocksiPy(等)锁定该接口


这正是我用错误的语言寻找的。Python中是否有任何东西可以通过SSH提供代理?

我有一个解决方案可以用于抓取。我没有尝试使用SSH连接,而是使用远程shell提取数据:

from bs4 import BeautifulSoup
import paramiko

ssh = paramiko.SSHClient()
ssh.load_system_host_keys()
ssh.connect('example.com', username='Oli', look_for_keys=True, timeout=5)

stdin, stdout, stderr = ssh.exec_command('/usr/bin/wget -qO- "%s"' % url)
soup = BeautifulSoup(stdout)

ssh.close()

这不是我一开始想要的(我仍然非常想看看是否有一种通过SSH连接SOCKS套接字的方法),但它的简单性中有一些优雅之处。

您找到其他方法了吗?我需要与ssh-D选项相同的功能。