我在局域网(192.168.1.0/24)中有一个具有静态IP地址192.168.1.100的服务器,现在我希望在同一局域网(192.168.1.0/24)中的主机可以使用192.168.100.100访问此服务器上的所有服务,例如。当尝试访问192.168.100.100:1234时,请求将由192.168.1.100:1234处理。我怎样才能做到这一点?
我试过修改路由器上的ARP arp -s 192.168.100.100 m:ac:of:se:rv:er,但没有成功。
我还尝试将iptable应用于路由器:iptables -t nat -A PREROUTING -d 192.168.100.100 -j DNAT --to-destination 192.168.1.100。Pinging服务器会导致超时。
背景:我以前在LAN 192.168.100.0/24中托管文件和媒体服务192.168.100.100,现在我暂时将主机迁移到另一个LAN 192.168.1.0/24。客户端使用192.168.100.100到达服务器,修改客户端上的所有应用程序工作量太大。显然,使用主机名而不是IP地址更好,但在我的情况下,客户端使用本地主机DNS,而忽略了路由器的DNS。我对IP知之甚少。
发布于 2018-07-06 19:36:25
问题是,需要访问192.168.100.100的主机是否在192.168.1.0/24或其他地方。如果是后者,那么您在路由器上添加的规则(假设它获得了发送给192.168.100.100的通信量)就足够了(当然,您也需要启用转发,但我认为这对于路由器来说是显而易见的)。
如果这些主机来自192.168.1.0/24网络,试图进入192.168.100.100,那么它就会更复杂一些。他们将把源地址为192.168.1.x的请求发送到目的地192.168.100.100到将进行DNAT的路由器,并将数据包发送到192.168.1.100,返回同一网络段。问题是响应将具有192.168.1.100的源ip和192.168.1.x的目标ip,并且不会通过路由器返回DNAT的效果。由原始主机接收的数据包将不匹配任何已知连接,并将被丢弃。要解决这个问题,您还需要在数据包上设置SNAT,这些数据包被路由回此网段:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 --ctstate DNAT -j SNAT --to-source 192.168.1.r其中,192.168.1.r是路由器在192.168.1.0/24子网上的ip地址。
发布于 2018-07-07 08:12:00
这就是你从一开始就需要使用DNS的原因。
我在这里看到的唯一解决方案是在192.168.1.0/24和192.168.100.0/24网络之间添加一个路由器。然后在192.168.1.0/24网络上指定主机需要通过路由器向192.168.100.100/24发送数据包,反之亦然。
https://serverfault.com/questions/919766
复制相似问题