Ubuntu服务器充当两个接口路由器

我试图build立一个使用Ubuntu服务器12.04的鱿鱼代理服务器

我对Ubuntu很新,但是我已经设法完成了一些简单的事情。

我买了第二个PCI接口,并设法安装在服务器上。

我的目标是将所有数据包从一个接口(或子网)转发到另一个接口。 我认为这是configurationsquid本身之前的第一步。

从我的Ubuntu服务器,我可以在两个子网ping设备。 但从我的笔记本电脑,这是在子网192.168.0.0 / 24,我不能ping我的路由器,这是在另一个子网192.168.1.0/24。

从我的Ubuntu服务器发送时,路由器和笔记本电脑都会响应ICMP请求。

我也在sysctl.conf中激活了net.ipv4.ip_forward = 1

输出sudo ip route:

default via 192.168.1.254 dev eth1 metric 100 192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.200 192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.200 

输出sudo iptables -nvL:

 Chain INPUT (policy ACCEPT 339 packets, 55782 bytes) Chain FORWARD (policy ACCEPT 185 packets, 12382 bytes) Chain OUTPUT (policy ACCEPT 276 packets, 25481 bytes) 

你有什么想法,为什么这个设置不起作用? 我确定我错过了一些东西。

问题是,您正在尝试联系的路由器不知道如何将数据包路由回笔记本电脑,因为它不知道192.168.0.0/24子网。 来自笔记本电脑的数据包到达路由器,但响应数据包要么发送到错误的地方(互联网),要么根本不发送。

您需要通过192.168.0.200为192.168.0.0/24的静态路由configuration路由器。 这样做取决于具体的路由器,但通过Web界面查看有关路由的部分。

要使Linux能够在接口之间路由数据包,请运行以下命令打开IPv4路由:

 sysctl -w net.ipv4.ip_forward=1 

要使其成为永久性更改,请将其添加到/etc/sysctl.conf

 net.ipv4.ip_forward = 1