ssh-D的Python版本(ssh上的SOCKS代理)
我正试图通过代理使用urllib2来废弃一个不直接可用的网页(它在远程服务器的本地网络中运行,无法从外部访问)。我更喜欢的代理是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(等)
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选项相同的功能。