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

SSL_ERROR_SYSCALL в контейнере докеров при использовании openconnect vpn

Я разрабатываю бот для телеграмм, но API здесь запрещен (Иран), поэтому мне приходится использовать VPN, иначе я не могу ни разу позвонить в BOT API.
для разработки я использую docker, docker-compose в Ubuntu-18, а мой VPN-клиент - это Cisco VPN с открытым подключением.

когда я устанавливаю VPN-соединение на хосте, хост может без проблем работать с API, но в контейнере я получаю странную ошибку, как описано ниже.

если запустить эту команду в контейнере без VPN:

curl -v https://api.telegram.org/botXXX/getMe

мгновенно получите следующую ошибку (и это ожидается из-за цензуры):

curl: (7) Failed to connect to api.telegram.org port 443: Connection refused

с подключенным VPN выполнение той же команды на хосте просто возвращает нормальный ответ
НО в контейнере он долго висит (~ 1 мин), а затем ответьте следующим

* Trying 149.154.167.220...
* TCP_NODELAY set
* Connected to api.telegram.org (149.154.167.220) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* (304) (OUT), TLS handshake, Client hello (1):
* OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to api.telegram.org:443 
* stopped the pause stream!
* Closing connection 0
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to api.telegram.org:443

Я уверен, что контейнерный трафик проходит через VPN, потому что мой общедоступный IP-адрес изменен на местоположение VPN, и даже если я попытаюсь открыть некоторые другие цензурированные веб-сайты, например (youtube, facebook), я без проблем получаю код состояния 200
я пробовал с обоими --network host и --network my_bridge и не повезло.

Итак, есть идеи о том, откуда эта проблема? Это связано с клиентом openconnect? почему только это происходит с этим API, а не многие другие, которые я пробовал? а может исправить?