假设我们有一些在 Linux 上运行的系统,具有 2 个以太网(eth0 和 eth1)和一个 WLAN (wlan0) 接口。我想创建桥接接口 br0,并将 eth0 和 eth1 连接到其中,同时在该 br0 接口上为 wlan0 接口创建 SNAT。
我想将互联网访问权限(从我的 ISP 从 eth0)直接共享到 eth1,并通过 SNAT 共享到 wlan0。那么只有我的 eth1 上的 PC 可以直接访问互联网,而其他计算机只能通过 SNAT 和 wlan0 接口访问互联网?
换句话说,我想要:
- eth0 直接连接到我的 ISP 路由器/网桥的 WAN,具有全球互联网地址
- eth1 用于将我的电脑直接连接到互联网
- SNAT 之后的 wlan0,每个人都可以通过 WiFi 访问互联网
是否可以在 Linux 上实现此配置?
答案1
我们有两个声明需要考虑:
-
我的 eth1 电脑可以直接访问互联网,但其他电脑只能通过 SNAT 和 wlan0 接口访问
-
我认为 ISP 只能为我分配 1 个可用 IP 地址。 –
然后你问这在 Linux 上是否可行。
从根本上讲,这对于单个 IP 地址是不可能的,除非您准备好对所有设备进行 NAT/伪装。您无法为您的 PC 提供 Internet 地址并使用它来对其他设备进行 NAT。 (好吧,我想您也许可以使用代理 arp 做一些事情,但是这将如何与 NAT 其他设备所需的连接跟踪进行交互,这是任何人的猜测。)
不过,您可以做的是,在您的主 Linux 路由器系统上运行 NAT/Masquerade,并将传入请求端口转发到您的 PC。大多数家庭/SOHO 路由器都会立即执行此操作,因此此时您可能更愿意节省精力并使用其中一种。