我有一个基于 docker 镜像 linuxserver/wireguard 运行的 Wireguard 安装。它在 Ubuntu 20.04 主机上运行。
速度不错,我的客户端既可以从本地 LAN 连接,也可以从 Internet 连接,在两种情况下都可以访问本地 LAN 和 Internet。到目前为止一切顺利。
现在我想添加第二类客户端。这些客户端应该仅有的连接到 VPN 时可以访问互联网。必须在服务器上配置限制。我还希望客户端使用我的 LAN 的 DNS 服务器 (pihole)。我意识到客户端将能够执行 LAN DNS 查找并在 LAN 上公开服务的 LAN IP。现在这样就没问题了。重要的是流量不能路由到 LAN 主机和服务。
Network range 192.168.X.0 - 192.168.X.255
My router IP: 192.168.X.1
Pihole IP: 192.168.X.Y
wg0.conf(由 linuxserver/wireguard 映像生成)
[Interface]
Address = 10.13.13.1
ListenPort = 51820
PrivateKey = XXXXX
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = XXXXX
AllowedIPs = 10.13.13.2/32
[Peer]
PublicKey = XXXXX
AllowedIPs = 10.13.13.3/32
答案1
将“仅限互联网”容器附加到macvlan 网络。
一旦创建了 macvlan 并且容器运行,您基本上就有一台新机器(具有自己的 MAC 地址)通过您的物理主机接口发送数据包。
macvlan 可以在 vlan 接口上创建如果需要的话。从那时起,您可以根据需要将容器与网络的其余部分隔离,就像您对常规主机所做的那样。
[编辑](可能可以在您自己在主机上设置的 vlan 接口上创建 docker 默认桥接网络,但使用 macvlan 可以省去最后一项任务)。