我有 2 台运行 CentOS 6 的服务器
我有一台服务器 A,它有 2 个网卡。eth0 是私有测试网络。eth1 是企业网络,必须使用代理服务器才能访问互联网。在这台服务器上,我使用
export http_proxy=http://proxyserver:3128/
并能访问互联网。
我有一台服务器 B,它有 1 张网卡。eth0 与上面位于同一个私有测试网络上。
我希望服务器 B 能够连接到互联网。显然我唯一的选择是通过服务器 A。我尝试设置 squid 代理以及 SSH 隧道,但没有成功,我对这两者都不太了解,也不太懂得如何在 Google 上搜索到合适的示例/帮助。我的 Linux 技能严重不足。
答案1
您可以尝试以下操作来创建ssh
从 B 到 A 的隧道。
server_B$ ssh -Nf -L 1234:proxyserver:3128 server_A
-N
告诉ssh
不要在 server_A 上启动 shell,并且-f
它应该在提示输入密码后立即转到后台。
有趣的部分是-L
,它指定了端口转发——我仍然惊讶于它可以做什么:
1234
是本地(即 server_B)ssh
将监听的端口。(当然也可以是 3128,但我选择了不同的值来说明区别。)
proxyserver
必须可以从 server_A 访问;3128
最后是您将被重定向到的端口。
由于端口转发是透明的,您应该能够在 server_B 上使用代理(一旦隧道打开)
export http_proxy=http://localhost:1234/