我有3台普通的台式机A,B和C,它们是同一networking的一部分。 我有一个在C上的Apache Web服务器。我想有一个场景来testing我想从A到C总是通过B路由请求。是否有可能实现这一目标? B不是指定的网关机器,它是我的普通台式机器之一。 我可以用路由表来实现这个吗? 请指教。 B始终运行Linux,A和C可以是任何操作系统(现在我正在使用Windows)。
提前致谢。
如果机器A,B和C在同一个networking上,那么可以很容易地在A和C上完成一些主机特定的路由。通常,在Linux下禁用IP转发,所以你必须启用它。
echo 1> / proc / sys / net / ipv4 / ip_forward
或者:
sysctl net.ipv4.ip_forward = 1
如果主机A是10.1.2.3/24,主机B是10.1.2.4/24,主机C是10.1.2.5/24,则需要添加如下路由。 主持人A:
ip route add 10.1.2.5/32 via 10.1.2.4
主持人C:
ip route add 10.1.2.3/32 via 10.1.2.4
在Windows下,等效路由应该是可行的,但是我手边没有这些命令。
你的意思是设置代理/袜子隧道吗? 您可以使用ssh和-D开关来创build从A端口到B端口的隧道。
例如,在A上运行下面的命令,那么你应该能够把你的Web浏览器代理configuration指向你本地计算机上的端口8080(A),一切都将通过B
ssh -D 8080 -N username@serverB
如果你希望它运行,直到你closures计算机A,你可以使用-f开关,这将把这个ssh命令发送到后台。
注意,你需要在机器B上运行ssh(你正在运行linux,所以没有问题),但是你也需要在机器A上运行。你可以试试Cygwin,但是在机器A上安装putty会更容易。用putty设置袜子代理login – 这是很容易的,有很多的教程)