如何在1台PC(有线和无线网卡)中的2个连接(不同网络)之间进行路由?

我有问题为我的PC制作路由表。

我有1台在Ubuntu上运行,我有2个连接卡(eth0和wlan0)。 eth0 IP:192.168.1.1/24 wlan0 IP:10.10.10.1/24,安装了dhcp-server

IP:10.10.10.2连接到我的路由器wlan0但没有连接到我的eth0网络的客户端。

如何解决这个问题呢? 谢谢

我看到两个网络都有私有IP,所以我假设你只想在这两个网络之间路由流量; 没有防火墙,没有任何类型的流量控制,没有网络地址转换。

试着这样做:

echo "1" | sudo tee /proc/sys/net/ipv4/ip_forward 

然后确保您的客户端(10.10.10.2)将其默认网关设置为10.10.10.1(您的Linux机箱/路由器)。

一旦你有了这个,你应该能够看到另一个网络(192.168.1.0)。 要测试这一点,请尝试ping该网络上的Linux机箱地址(192.168.1.1)。 你应该得到回复:

 $ ping 192.168.1.1 PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. 64 bytes from 192.168.1.1: icmp_req=1 ttl=64 time=2.30 ms 64 bytes from 192.168.1.1: icmp_req=2 ttl=64 time=1.62 ms 

ip_forward设置告诉Linux内核通过适当的接口转发发往另一个网络的数据包。 默认情况下它已关闭,这意味着内核将丢弃要求转发的数据包。

重新启动系统时,此设置将“重置”自身,使其永久执行此操作:

 echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/60-ip-forward.conf 

这将创建一个配置文件,并在系统引导时加载此设置。

最后,请阅读IP Tables Howto ,其中包含有关如何控制内核允许数据包通过接口的信息,是否进行网络地址转换等信息。 如果您希望Linux系统位于公共网络和私有网络之间(甚至在两个专用网络之间,因为在这种情况下可能并不总是需要转发流量),这一点非常重要。