Я настроил переадресацию портов у своего VPN-провайдера, например:
VPN_EXT_IP:60000 --> VPN_INT_CLIENT_IP:60000
У меня есть docker-compose, который выглядит примерно так:
версия: "3.5"
сети:
доб:
имя: доб.
Сервисы:
openvpn-клиент:
изображение: ghcr.io/wfg/openvpn-client
имя_контейнера: openvpn-клиент
cap_add:
- NET_ADMIN
устройства:
- /dev/net/тун
тома:
...
сети:
- доб.
руторрент:
изображение: crazymax/rtorrent-rutorrent:3.10-0.9.8-0.13.8
имя_контейнера: rutorrent
перезапуск: "если не остановлен"
stop_grace_period: 10 м
среда:
- TZ=Европа/Берлин
- ПУИД=1000
- PGID=1000
- RT_INC_PORT=60000
- RT_DHT_PORT=60001
зависит от:
- openvpn-клиент
network_mode: "сервис: openvpn-клиент"
тома:
...
Входящий порт 60000 вроде закрыт.
Я заподозрил свой OpenWrt-роутер (docker-контейнеры работают за NAT) и установил kmod-nf-nathelper-extra, но это не помогло.
Само VPN соединение работает, но входящие соединения (которые НЕ УСТАНОВЛЕНЫ) не работают.
Я немного потерян и на пределе своих знаний о сети.
Я ожидаю, что все будет работать, так как VPN-клиент устанавливает соединение с VPN-сервером на OPENWRT_PUB_IP:NAT_PORT (NAT, таким образом, NAT_PORT является случайным);
Openwrt отслеживает подключение к VPN_SERVER:VPN_SERVER_PORT, и все через это отслеживаемое соединение может проходить через брандмауэр.
Но это, по-видимому, справедливо только для соединения, установленного из VPN_CLIENT (в туннеле), а не наоборот.