У меня есть два контейнера 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
как разный выход.