現在、複数のサービスを実行しているホーム サーバーがありますが、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
Client 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 コンテナーを起動しようとします... 逆の方法で実行しようとすると、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 の起動時にそのアドレスが使用されます。
curl 10.0.5.4:9091
そして、ここのコンテナ内からはcurlの出力です
root@dd0ec0b1cd5a:/# curl ifconfig.me
curl: (6) Could not resolve host: ifconfig.me
なぜこれが機能しないのか理解できません...