Почему 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.

Другие вопросы по тегам