Почему X11 ломается внутри контейнера Docker, когда контейнер подключается к VPN?
На моем хост-компьютере установлена Windows 10. Моя цель — создать докер-контейнеры, которые подключаются к VPN внутри контейнера. Я делаю это для того, чтобы мне не приходилось подключать весь мой компьютер к VPN.
Я использую докер-контейнеры Ubuntu, которые с помощью openconnect подключаются к протоколу Anyconnect; У меня есть два разных контейнера, которые подключаются к VPN двух разных организаций.
Оба контейнера работают с X11 на моем vcxsrv, например, я вижу xeyes и даже vscode. Однако после подключения к VPN будет работать только один.
Контейнер по-прежнему может подключаться к веб-сайтам, пинговать Google и т. д. Но я попытался установить для переменной DISPLAY новый частный VPN-адрес IPv4, но безуспешно. xeyes не появляется. xeyes работает до тех пор, пока я не нажму Ctrl+C, но xeyes не появляется на vcxsrv
Как я могу заставить X11 работать внутри контейнера докеров при подключении к VPN? Мой хост НЕ подключен к VPN. Только внутри контейнеров есть VPN.
1 ответ
Решение состоит в том, чтобы использоватьvpn-slice
внутри докер-контейнера при подключении к VPN:
openconnect -b -v --protocol=anyconnect \
# some cert files, key files, etc... whatever you normally use
vpn.myorganization.com \
-s 'vpn-slice --prevent-idle-timeout mymachine.myorganization.com'
таким образом, только запросы и соединения, предназначенные дляmymachine.myorganization.com
ставятся через VPN. Чтобы использовать это, необходимо установить vpn-slice с помощью pip.