我有以下设置:
默认的互联网连接是通过10.56.9.15(更快),但我只能控制10.56.9.1,所以对于一些特定的主机,这应该是路由。 为了达到这个目的,我设置了10.56.9.5作为路由器,默认网关为10.56.9.15,为需要通过10.56.9.1访问的主机添加特定的路由。
我现在需要从互联网上打开访问主机VNC服务器。 我有这个问题。
有没有办法通过一个特定的网关路由回数据包,而不声明源IP,并没有在terminal主机(只在路由器和网关)进行任何特定的设置?
是的,你可以根据你的网关的configuration允许。
你可以在网关上设置一个NAT规则,把VNCstream量的源地址转换成本地网关的IP地址(或者更具体地说,在Linux中,在你的内部接口上)。
在gw接口上使用一个别名ip地址(或者它们的池)是很好的,这样你就可以识别和分离来自正常的stream量。 留出本地地址空间中的地址或子网,但如信任外部地址那样处理,比如说10.56.9.254
在NAT之前logging也很有用,因此您可以确定stream量真正从哪里来,因为您的VNC框现在将看到所有连接的本地内部地址。
当stream量到达VNC时,它会看到一个本地源地址,该地址始终会被路由回到您指定的地方(stream量源自该stream量),然后stream量将以其进入的方式返回,并被重新解压出路。
在Linux世界中,地址和nat规则将如下所示:
ip address add 10.56.9.254 dev intnic0 iptables -t nat -A POSTROUTING -o intnic0 -p tcp --destination 10.56.9.vnc --dport 5900 -j SNAT --to 10.56.9.254
你可以在另外一个IP上用另一个IP做同样的事情,比如253,然后你可以通过任何一个连接。
如果您逐步完成连接过程,则这基本上就是您的NAT在从内部networking出来的路上正在做的事情。 修改源IP,发送数据包并在数据包返回时映射它们。 你只是想做一个特定的连接和相反的方向,这是网关configuration进来的地方。它是否让你configuration它的能力?
编辑:如果您通过10.56.9.5路由VNCstream量,并且可以识别数据来自于互联网,您可以在默认网关10.56.9.5上实施相同的NAT规则。 也许可以通过网关标记数据包,也可以将数据包标记为默认gw,您仍然可以知道数据包来自哪里。