通过特定的机器路由请求

我有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 – 这是很容易的,有很多的教程)