![Linux 路由器在 eth2 和 eth3 之间共享互联网](https://linux22.com/image/639274/Linux%20%E8%B7%AF%E7%94%B1%E5%99%A8%E5%9C%A8%20eth2%20%E5%92%8C%20eth3%20%E4%B9%8B%E9%97%B4%E5%85%B1%E4%BA%AB%E4%BA%92%E8%81%94%E7%BD%91%20.png)
我不是一个擅长网络的人,所以提前致歉。
我有一个带有 2 个以太网端口的小型 Linux(Ubuntu)盒子。
- eth2连接到有线调制解调器,该调制解调器为其提供 192.168.1.x 地址 + 互联网连接
- eth3我直接插入,能够安装 isc-dhcp-server 并对其进行配置(配置如下)。我能够插入 Windows 笔记本电脑并获取配置的 10.0.0.x 范围内的 IP。
我到底是怎么了eth3看到互联网(比如eth2已经这样做了?我希望能够将 Windows 笔记本电脑或接入点插入eth3并让其自动连接互联网。
我尝试从 eth3 和 eth2 ping 到 google.com,结果如下:
ping -I **eth3** google.com => destination host unreachable
ping -I **eth2** google.com => works!
这是我的配置:
nano -w /etc/dhcp/dhcpd.conf
ddns-updates off;
option domain-name "example.local";
option domain-name-servers 8.8.8.8;
authoritative;
subnet 10.0.0.0 netmask 255.255.255.0 {
interface eth3;
default-lease-time 6000;
max-lease-time 7200;
range 10.0.0.100 10.0.0.200;
option subnet-mask 255.255.255.0;
option routers 10.0.0.254;
option broadcast-address 10.0.0.255;
option domain-name-servers 8.8.8.8;
}
nano -w /etc/default/isc-dhcp-server
INTERFACES="eth3"
nano -w /etc/网络/接口
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto eth3
iface eth3 inet static
address 10.0.0.200
gateway 10.0.0.1
netmask 255.255.255.0
dns-nameservers 8.8.8.8
我努力了转发端口:
sudo sysctl net/ipv4/ip_forward=1
也尝试过桥接,但是当我按下回车键时,它就将我踢出框:
brctl addbr br0
brctl addif br0 eth2 eth3
任何建议或帮助都将不胜感激。我花了整整 8 个小时摸索着做这件事,感觉自己像个白痴!
谢谢!
答案1
您需要通过指定默认路由(即,在显然也充当路由器的电缆调制解调器上)告诉 eth2 所连接的网络上的默认网关 10.0.0.0/24 位于该路由器后面,或者在 eth2 上的出站流量上使用源 NAT。
不建议使用双重 NAT,因此如果您这样做,您应该找到某种方法在路由器面向互联网的接口 eth2 上获取可路由互联网的 IP。
问题在于返回路径已损坏;返回 10.0.0.0/24 的流量无法路由,因为 10.0.0.0/24 无法从带有电缆调制解调器的网段进行路由。
这里你不需要桥。桥是第 2 层的东西。