使用绑定的 PC 作为 WAN 网关,同时允许同一台 PC 访问 LAN

使用绑定的 PC 作为 WAN 网关,同时允许同一台 PC 访问 LAN

了解我的问题的一些背景知识:

我家里没有固定的互联网连接。只能通过手机上网。我将手机绑定到任何需要上网的设备,这对我来说很方便。

然而,有些设备需要 LAN 才能正常运行,因此我一直在尝试设置多年来购买的各种路由器,以提供一个在我的手机添加到网络之前无法访问互联网的 WiFi 网络。

如果我需要打开我的 Linux PC 并将其绑定以向 LAN 提供互联网,我不介意,但我需要 LAN 在我的 PC 未打开的情况下运行(尽管没有互联网访问)。

在以下示例中,我的 LAN 应始终具有地址 192.168.1.0/24,而我的路由器(具有 eth LAN 端口和一个 WAN 端口的无线接入点)具有 LAN 地址 192.168.1.1。当我将手机绑定到 PC 时,会自动配置 usb0 接口。

我所做的工作:

场景 A

  • 将Linux PC的eth0连接到路由器的LAN口
  • 使用静态 IP 192.168.1.100 配置 eth0
  • 在路由器上禁用 DHCP,并启用 DHCP 中继到 192.168.1.100
  • 在 Linux PC 上的 eth0 上运行 dnsmasq
  • 在 iptables 中启用转发
iptables -A FORWARD -i eth0 -o usb0 -j ACCEPT
iptables -A FORWARD -i usb0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE

情景 A 的效果

  • PC 关闭:LAN 完全不运行
  • PC 开启,手机未绑定:LAN 在没有互联网访问的情况下正常运行
  • PC 开启,手机绑定:LAN 正常运行,可访问互联网

场景 B

  • 将linux PC的eth0连接到路由器的WAN口
  • WAN 端口配置为使用 DHCP
  • 配置NAT的WAN口已禁用
  • 为路由器的 LAN 启用 DHCP 服务器
  • 将 eth0 和 usb0 桥接在一起

场景B的效果

  • PC 关闭:LAN 正常运行,无需访问互联网
  • PC 开启,手机未连接网络:LAN 在没有互联网访问的情况下正常运行,但 PC 没有 LAN 访问
  • PC 已开启,手机已绑定:LAN 可以访问互联网,但 PC 无法访问 LAN

场景 C

  • 使用 USB 转以太网电缆,将手机连接到路由器 WAN 端口
  • WAN 端口配置为使用 DHCP
  • 配置NAT的WAN口埃纳贝尔德
  • 在路由器 LAN 上启用 DHCP 服务器

方案 A 很好,因为我的 PC 可以访问 LAN,因为我肯定要求问题是,由于我的 PC 运行 DHCP 服务器,因此任何设备都必须打开我的 PC 才能连接到 LAN。

方案 B 很好,因为我的 PC 无需打开,设备即可连接到 LAN,并且当我的 PC 开启并将手机绑定时,LAN 上的所有设备都可以访问互联网。但是,我的 PC 无法访问 LAN。

情景 C 是未经测试- 但考虑到场景 B 的工作方式(WAN 通过手机上的 DHCP 服务器获取 IP),我很确定这是可行的。

我非常希望方案 B 之类的东西能够发挥作用,因为我应该能够配置我的 Linux PC 来做任何事情。我想了解有关使用 Linux 进行路由的更多信息,因此我实际上更愿意花点精力弄清楚如何利用我所拥有的东西来做到这一点。

我的愿景

Phone <-------> [usb0]PC[eth0] <-------> [WAN]Router[LAN] <-------> Devices
   192.168.X.0/24           192.168.100.0/24            192.168.1.0/24

我希望路由器配置尽可能简单(没有特殊路由或其他东西),这样就可以将其替换为任意路由器。PC 可以根据需要进行复杂的路由设置。 我的电脑只有一个网卡。

问题:我如何利用我当前的硬件实现这一点?

我正在运行基于 Debian 的 MXLinux 18.3。

答案1

我相信你的场景 C 会起作用,但由于你更喜欢学习 Linux 配置,所以我认为这是一个好主意。

我的做法是:

  1. 设置你的 Linux PC 以便通过手机访问互联网
  2. 为 Linux PC 设置静态 IP - 例如 192.168.0.1
  3. 将 Linux PC 和所有其他 PC 连接到路由器上的 LAN 端口
  4. 为您的路由器设置静态 IP - 例如 192.168.0.2
  5. 如果可能的话,将路由器设置为网桥或接入点。
  6. 在路由器上启用 DHCP 并将“网关”设置为 192.168.0.1(指向您的 Linux PC)。
  7. 配置你的电脑作为网关(你必须自己弄清楚)

此时,每个通过无线或以太网连接到您的 LAN 的设备都将看到所有其他设备,因为它将从您的路由器获取 IP,并且无论您的 PC 是开启还是关闭 - LAN 都会工作 - 只是没有 Internet(因为作为网关的 PC 已关闭)并且当您的 PC 工作时,它将通过电话访问 Internet 并通过 eth0 访问 LAN。

如果您的电脑被配置为网关,那么当它打开时,其他设备就可以访问它,并且它们将能够与互联网通信。

相关内容