![Ubuntu 16.04机器作为路由器](https://linux22.com/image/137757/Ubuntu%2016.04%E6%9C%BA%E5%99%A8%E4%BD%9C%E4%B8%BA%E8%B7%AF%E7%94%B1%E5%99%A8.png)
我必须将我的 ubuntu PC 作为路由器,因为我不允许将任何路由器连接到大学网络。
我有一台带有两个网卡的 PC(ubuntu 16.04)。 eth0 连接到大学网络(公共),eth1 连接到 WLAN 路由器。
eth0 : 131.173.115.18
eth1 : 192.168.1.62
Router WAN: 192.168.1.65
我希望所有流量都通过 eth0 到达互联网。我已启用IP转发
net.ipv4.ip_forward=1
以及 eth0 上的 NAT 服务
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
我不知道为什么我有这么多路线。并且无法从 eth0 或反向 ping eth1。我缺少什么?
epc@nano:~$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 131.173.119.254 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 131.173.119.254 0.0.0.0 UG 100 0 0 eth0
0.0.0.0 131.173.115.18 0.0.0.0 UG 101 0 0 eth1
131.173.112.0 0.0.0.0 255.255.248.0 U 100 0 0 eth0
131.173.115.18 0.0.0.0 255.255.255.255 UH 100 0 0 eth1
131.173.245.1 131.173.119.254 255.255.255.255 UGH 100 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eth1
答案1
默认情况下Linux不允许你这样做,你需要更改rp过滤器 echo 2 > /proc/sys/net/ipv4/conf/all/rp_filter
https://www.slashroot.in/linux-kernel-rpfilter-settings-reverse-path-filtering