如何在本地网络中设置网关?

如何在本地网络中设置网关?

家庭作业免责声明...

所以我有一台计算机 A,其 IP 地址恰好是192.168.0.81。该计算机安装了 Web 服务器并公开端口 80。因此,192.168.0.81在该本地网络的任何其他计算机的 Web 浏览器地址栏中键入都会显示此网页。

但我在这个本地网络中还有另一台计算机:192.168.0.129我的任务是以这样的方式配置这两台计算机,192.168.0.129使其成为192.168.0.81.发送的所有数据包都192.168.0.81必须通过192.168.0.129,并且192.168.0.129必须将其在端口 80 上收到的所有流量转发到192.168.0.81

解决方案尝试。在服务器上执行此操作,希望使其通过以下方式发送响应192.168.0.129

route add default gw 192.168.0.129

在网关上执行此操作,希望允许它将流量从服务器转发到外部世界:

echo 1 > /proc/sys/net/ipv4/ip_forward

在网关上执行此操作,希望能够将收到的流量转发到服务器:

iptables -t nat -A PREROUTING -p tcp -d 192.168.0.129 --dport 80 -j DNAT --to 192.168.0.81:80

但这不起作用。192.168.0.129在该网络中另一台计算机的 Web 浏览器地址栏中键入( 192.168.0.185) 显示浏览器错误而不是此网页。我究竟做错了什么?

为了以某种方式找出发生了什么,我尝试通过在两台机器上发出来记录所有数据包:

iptables -A INPUT -j LOG
iptables -A OUTPUT -j LOG

这些是结果。看来服务器从原始请求发出者接收数据包并尝试发回一些数据包。我看到这样的条目:

Dec 19 23:23:25 debian kernel: (...) IN= OUT=eth0 MAC=(...) SRC=192.168.0.185 DST=192.168.0.81 LEN=60 TOS=0x00 PREC=(blah blah this and subsequent stuff omitted for brevity)
Dec 19 23:23:25 debian kernel: (...) IN= OUT=eth0 SRC=192.168.0.81 DST=192.168.0.185 LEN=60 TOS=0x00 PREC=(...)

但是,网关的日志似乎没有显示任何相关流量。

如何解决这个问题?

相关内容