Назад | Перейти на главную страницу

Dockerized Wireguard с Killswitch не разрешает локальный доступ сервису, разделяющему сеть

У меня есть два контейнера linuxserver / wireguard и X на Ubuntu (server) 20.04.

X имеет WebUI на порту q, к которому я хотел бы получить доступ через мою локальную сеть (192.168.178.0/24 - fritzbox).

Они настроены так, что X использует ту же «сеть», что и linuxserver / wireguard (через docker --net = container: wireguard). Кроме того, порт q, используемый X, указывается через -p q: q на linuxserver / wireguard.

Так

Дополнительно я поставляю sysctls net.ipv4.conf.all.src_valid_mark = 1 и net.ipv6.conf.all.disable_ipv6 = 0.

Клиентский файл wg0.conf Wireguard не настроен следующим образом:

[Interface]
PrivateKey = [...]
Address = [...]
DNS = [...]

PostUp =  iptables -I OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT && ip6tables -I OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT
PreDown = iptables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT && ip6tables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT

[Peer]
PublicKey = [...]
AllowedIPs = 0.0.0.0/0,::0/0
Endpoint = [...]

Запустив оба контейнера, я надеялся получить доступ к WebUI, но, к сожалению, этого не произошло. Поскольку я не уверен, связана ли это с докером или защитой проводов, надеюсь, вы можете здесь помочь.

Я дополнительно попробовал добавить правила

ip route add 192.168.178.0/24 via $(ip route show default | awk '/default/ {print $3}')

(как дополнительная команда) и

! -d 192.168.178.0/24

(внутри команды iptables), но не получил никаких результатов. В логах linuxserver / wireguard нахожу только sysctl: setting key "net.ipv4.conf.all.src_valid_mark": Read-only file system как разный выход.