Answers:
(情况很奇怪,互联网路由是否不像三角形不等式那样成立?)
无论如何,请尝试以下,上一个,ssh
到乙与-D
论证,
ssh -D 1080 address-of-B
它充当上的SOCKS5代理127.0.0.1:1080
,可用于支持SOCKS5代理连接的任何对象。 显然,wget
可以通过使用环境变量来做到这一点
export SOCKS_SERVER=127.0.0.1:1080
wget http://server-C/whatever
请注意,有时curl
更方便(即,我不确定是否wget
可以通过SOCKS5进行主机名查找;但这不是我想的问题之一)。Firefox也可以通过这样的SOCKS5代理完全工作。
编辑我刚才注意到你正在寻找一个单行的解决方案。好吧
ssh address-of-B 'wget -O - http://server-C/whatever' >> whatever
例如,将wget
-fetched输出重定向到stdout
,并将本地输出(从远程ssh
运行wget
)重定向到文件。
这似乎可行,wget
输出结果有点混乱(“ 保存到- ”),您可以通过添加-q
到wget
调用中来摆脱它。
socksify
。
socksify
不是设置,而是一个单独的程序。
受另一个问题的另一个答案的启发,我建议使用proxychains-ng(这是较新版本的proxychains)。
proxychains.conf
文件,在当前目录下,或者在~/.proxychains/proxychains.conf
,或/etc/proxychains.conf
。
-f
命令行参数或PROXYCHAINS_CONF_FILE
环境变量指定。在proxychains.conf
文件中,添加:
[ProxyList]
socks5 127.0.0.1 1234
跑 ssh -D 1234 your_host_b
。这将使ssh在本地主机的端口1234上侦听,并将您的远程主机用作SOCKS代理。
ssh -ND 1234 your_host_b
改为运行。-N
将阻止ssh在远程服务器上运行任何命令(即,它不会打开外壳)。proxychains4 yourcommandhere yourparametershere
。看一些例子:
proxychains4 wget -O - http://ifconfig.co/
proxychains4 -q links http://ifconfig.co/
为了wget
与的SOCKS5代理一起使用ssh
,您必须安装security/dante
软件包才能SOCKS_SERVER
在socksify
实用程序中使用该选件。
sudo pkg_add dante
随后,您在后台打开SSH连接:
ssh -N -C -D1080 user@hostB &
并通过socksify通过SOCKS5代理使用wget:
env SOCKS_SERVER=127.0.0.1:1080 socksify wget http://website-C
只需将文件通过管道传输到stdout
服务器上,然后从stdin
您的工作站上读取文件即可。
ssh -C user@hostB "wget -O- http://website-C" >> file-from-website-C
您可以在框A到框B之间建立一条ssh隧道,然后将其添加到框A的路由表中,可以通过隧道到达框B到达网站C。您必须在框B上允许数据包转发。
在这里您可以看到一个非常好的分步教程...
您将需要在计算机B上创建一个隧道,这样会将呼叫重定向到网站C。但是,我感到困惑的是为什么这样做会更快,除非您的ISP受某些限制。
我不知道一个班轮,但这并不复杂。
在计算机A上,您可以这样做(我随机获得11111,您可以选择任何想要的值,只要它> 1024,或者您需要是root用户即可)
ssh -f -C -N -L 11111:C:80 username@B
B上的用户名是您用于连接到B的用户名。这应该在机器B的端口11111上创建一个隧道,该隧道重定向到机器C的端口80(HTTP中的网站使用HTTPS 443)(我希望我不会弄乱命令 ;) )
然后,您可以通过机器B直接从机器A下载文件。我假设文件位于,http://C/path/to/file
因此可以使用:
wget http://B:11111/path/to/file
您可以通过端口转发(ssh隧道)来实现。这是资源:http : //www.jfranken.de/homepages/johannes/vortraege/ssh2_inhalt.en.html#ToC9
本质上,您应该在B上设置端口转发。当A向B发wget时,B会将数据包转发到C并将结果发送回A。
SOCKS_SERVER
环境变量对Ubuntu 14.04没有影响。