3

我目前有一台运行多种服务的家庭服务器,但我只想将少数几个路由到 VPN。我在 VPS 上设置了 Wireguard,可以通过我的 Mac 和主机(Ubuntu 18.04)成功连接到它,但无法隔离容器。这是我取得的进展。

服务器配置

[Interface]
Address = 10.66.66.1/24,fd42:42:42::1/64
ListenPort = 49161
PrivateKey = xxx
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0  -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = xxxx
PresharedKey = xxxx
AllowedIPs = 10.66.66.2/32,10.0.5.0/24,fd42:42:42::2/128

客户端配置

[Interface]
PrivateKey = xxxx
Address = 10.66.66.2/24
DNS = 176.103.130.130,176.103.130.131

[Peer]
PublicKey = xxxx
PresharedKey = xxxx
Endpoint = xxxx:49161
AllowedIPs = 10.0.5.0/24

客户端 Wireguard 引导输出 这里有些奇怪的是,当我将 AllowedIPs 设置为 0.0.0.0/0 时,它缺少一些运行的命令。也许这是一个暗示?

~$ sudo wg-quick up wg0
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.66.66.2/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a tun.wg0 -m 0 -x
[#] ip -4 route add 10.0.5.0/24 dev wg0

wg 现在开始的输出。它正在握手!

~$ sudo wg
interface: wg0
  public key: xxxx
  private key: (hidden)
  listening port: 40518

peer: xxxx
  preshared key: (hidden)
  endpoint: xxxx:49161
  allowed ips: 10.0.5.0/24
  latest handshake: 23 seconds ago
  transfer: 92 B received, 1.08 KiB sent

Docker 设置 我总是先启动 WG,然后尝试启动 docker 容器... 这是来自我的 docker-compose 的相关信息

networks:
  wireguard-vpn:
    ipam:
      config:
        - subnet: 10.0.5.0/24

services:
  transmission:
    ...
    networks:
        wireguard-vpn:
            ipv4_address: 10.0.5.4

如果我正确地考虑它,它将在启动 wg 时创建子网,然后在启动 docker 时使用该地址。但是现在当我尝试访问本地 docker 容器时,我什么也没得到,它通常会响应一些 html

curl 10.0.5.4:9091

从容器内部这里是卷曲的输出

root@dd0ec0b1cd5a:/# curl ifconfig.me
curl: (6) Could not resolve host: ifconfig.me

我不明白为什么这不起作用...

4

0 回答 0