В настоящее время у меня есть домашний сервер, на котором запущено несколько служб, но я хочу, чтобы только несколько из них были направлены в VPN. Я настроил Wireguard на VPS и могу успешно подключиться к нему через мой Ma c и хост (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 setup Я всегда сначала загружаю 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 он наберет su bnet, а затем использует этот адрес при запуске. docker .. Но теперь я ничего не получаю, когда пытаюсь поразить мой локальный контейнер docker, который обычно отвечает некоторым html
curl 10.0.5.4:9091
И из контейнера здесь выводится curl
root@dd0ec0b1cd5a:/# curl ifconfig.me
curl: (6) Could not resolve host: ifconfig.me
Я не могу понять, почему это не сработает ...