我有两个网络接口:eth0 (10.0.0.0) 和 usb0 (umts usb-modem)
me@ThinkCentre-A50:~$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.41.250.0 0.0.0.0 255.255.255.128 U 1 0 0 eth0
192.168.42.0 0.0.0.0 255.255.255.0 U 1 0 0 usb0
我怎样才能同时使用两个网络。通过usb0上网(www),并通过eth0连接到本地网络?
答案1
你其实可以!您所要做的就是确保使用 USB 调制解调器作为默认网关,并让它 NAT(实际上这是 PAT)您的本地地址到其全局路由地址。网关可以设置为
route add default gw 192.168.42.X
其中 X 是 USB 调制解调器的本地 IP 地址。本地 10.41.250.1-126 地址将通过 eth0 传输,其余地址将通过默认网关传输。
我无法告诉您如何配置 umts-modem,因为我对此一无所知。
也许您需要一个与其绑定的附加守护程序 (pppd),然后它将处理连接和地址的设置。一旦 USB 端口上有 ip 连接,您就可以使用“iptables”或类似的“伪装”本地地址。
答案2
首先,机器通过其接口访问网络。人们经常说“机器的IP地址是......”,但这是不正确的,IP地址属于一个接口。甚至可以将多个IP地址分配给同一个网卡。由于大多数机器只有一个接口和一个 IP 地址,因此通常不会造成混乱,但当涉及多个接口/地址时,事情会变得复杂。最好不要这样做。
如果通过USB接口设置默认网关,全部不进入直接连接到其他接口的网络的流量将通过它。除非你走严重地不妨碍您,您无权决定使用哪个接口。
如果你想让10.0.0.0(内部)网络上的其他机器能够访问外网,你必须将这台机器设置为路由器,并顺便通过外网NAT(真正的PAT)内部地址。阅读有关在 Ubuntu 中设置防火墙的信息。可能有 GUI 应用程序可以执行此操作,因为我从未使用过 Ubuntu(而且我对 GUI 过敏),所以我无能为力。大概你的“外部”192.168.42.0 地址是由 DHCP 配置的,我也从未在这种情况下设置过防火墙,抱歉。
答案3
- 删除默认路由
route del 0/0
- 添加 LAN 路由以经过 eth0
route add net 10.41.250.0/25 gw 10.41.250.1 eth0
- 添加默认路由以经过 usb0
route add default 192.168.42.1 usb0
假设您的 LAN 网关的 IP 地址为 10.41.250.1,而 WAN 网关的 IP 地址为 192.168.42.1。