使用 MacOS 作为互联网网关

使用 MacOS 作为互联网网关

目前这是我的设置

Internet <-- router <--  Mac Pro (Wifi). shared over Ethernet <-- PC (Ethernet)

Mac 的默认网络共享非常有限。我可以通过以太网共享我的 Mac Wifi 并连接到互联网。但是这会绕过 Mac 中的所有 VPN 路由/VPN 设置,我相信 MacOS 将网络共享视为独立连接。

除了典型的 en0 到 en4 之外,ifconfig 中还有其他网络接口

bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=63<RXCSUM,TXCSUM,TSO4,TSO6>
    ether 82:cb:7c:65:a0:01
    Configuration:
        id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
        maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
        root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
        ipfilter disabled flags 0x0
    member: en1 flags=3<LEARNING,DISCOVER>
            ifmaxaddr 0 port 9 priority 0 path cost 0
    member: en2 flags=3<LEARNING,DISCOVER>
            ifmaxaddr 0 port 10 priority 0 path cost 0
    member: en3 flags=3<LEARNING,DISCOVER>
            ifmaxaddr 0 port 11 priority 0 path cost 0
    member: en4 flags=3<LEARNING,DISCOVER>
            ifmaxaddr 0 port 12 priority 0 path cost 0
    media: <unknown type>
    status: inactive
utun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380
    inet6 fe80::de2e:1a51:57e:a90a%utun1 prefixlen 64 scopeid 0xf
    nd6 options=201<PERFORMNUD,DAD>
utun2: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 2000
    inet6 fe80::1e70:3ce6:794:e31%utun2 prefixlen 64 scopeid 0x10
    nd6 options=201<PERFORMNUD,DAD>
utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1400
utun3: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1300
    inet 10.64.0.1 --> 10.64.0.1 netmask 0xffff0000
    inet6 fe80::aede:48ff:fe00:1122%utun3 prefixlen 64 scopeid 0x12
    inet6 fc00::6440:1 prefixlen 64
    nd6 options=201<PERFORMNUD,DAD>
en7: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
    options=6467<RXCSUM,TXCSUM,VLAN_MTU,TSO4,TSO6,CHANNEL_IO,PARTIAL_CSUM,ZEROINVERT_CSUM>
    ether 34:29:8f:70:d9:30
    inet6 fe80::10a0:370:490a:41bb%en7 prefixlen 64 secured scopeid 0x13
    inet 192.168.3.1 netmask 0xffffffff broadcast 192.168.3.1
    nd6 options=201<PERFORMNUD,DAD>
    media: autoselect (1000baseT <full-duplex>)
    status: active
bridge100: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=63<RXCSUM,TXCSUM,TSO4,TSO6>
    ether 5e:52:30:b9:c1:64
    inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255
    inet6 fe80::1460:d7c1:2487:e0d4%bridge100 prefixlen 64 secured scopeid 0x14
    Configuration:
        id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
        maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
        root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
        ipfilter disabled flags 0x0
    member: en7 flags=3<LEARNING,DISCOVER>
            ifmaxaddr 0 port 19 priority 0 path cost 0
    nd6 options=201<PERFORMNUD,DAD>
    media: autoselect
    status: active

如果我通过以太网连接 PC,则会添加两个网络接口 `en7(USB 以太网)、bridge100(通过 USB 以太网共享互联网)

如何将 Mac 设置为互联网网关,或者如何将所有来自 PC 的请求路由,就好像它们源自 Mac 一样(通过 VPN 路由)。

PC 运行的是 Linux(Ubuntu)。

答案1

根据您的 VPN 配置方式,您只需选择您的 VPN 网络作为要共享的网络共享您的连接

在此处输入图片描述

图片和更多细节这里。只有某些 VPN 协议(例如 L2TP/PPTP)才允许这样做。


您可以尝试的另一个相对简单的选项是手动桥接您的以太网和 VPN 接口。互联网共享工具的行为方式类似,但可能不适用于您的 VPN 提供商/类型。

这也是排除Mac 连接到桥接网络,因为来自 VPN 接口的所有流量都直接进入以太网端口并输出

  1. 系统偏好设置 > 网络 > 操作 > 管理虚拟接口 > 添加 > 新桥
  2. 包括您的 VPN 和以太网接口
  3. 创建 > 完成

但是,当您的 vpn 断开连接或未运行时,情况可能会变得非常奇怪。可能需要先将其删除,然后您的 Mac 才能正常重新连接一切。


其他选项实际上取决于你正在使用哪种类型的 VPN、它是否允许多个客户端连接以及你想要的复杂程度。如果你不确定自己在做什么,这些都是糟糕的建议:

  • 您可以手动编辑路由表条目,以便将流量从 Linux 计算机发送到 VPN 之外,反之亦然。您至少需要熟悉路由概念,因为添加错误的路由将你与互联网完全隔离。
  • 如果您的 VPN 要求客户端位于同一个 IP 子网,那么除了设置路由之外,您还可以设置一些不稳定的 IP 寻址,甚至为您的以太网客户端配置 NAT。
  • 如果您只需要一项特定服务从您的 Linux 机器通过 vpn(如 SSH),那么您可以为其配置端口转发。

相关内容