ошибки tun0 при запуске сервера vpn?

Я использую простой vpn-сервер со следующими программами:

  • OpenVPN
  • Shadowsocks
  • MTProto Proxy

Конфигурация моего сервера:

  • Ubuntu 18.04 x64
  • 512Ram, 1vCPU
  • Межсетевой экран UFW
  • Мониторинг Netdata
  • Nginx

Прошло всего несколько дней с тех пор, как я начал запускать сервер. Проблема в том, что Netdata продолжает присылать мне эти 3 типа ошибок каждые несколько часов.

  • «сервер требует внимания, ipv4.udperrors (udp), 1 м ipv4 udp принимает ошибки буфера = 12 ошибок»
  • »сервер требует внимания, net_drops. tun0 (tun0), исходящие пакеты drop = 34 пакета "
  • " сервер требует внимания, net_packets.tun0 (tun0), исходящие пакеты коэффициент снижения = 0,33% "

Я подумал, что это не имеет большого значения, поэтому проигнорировал их.

Я не уверен, что это проблема брандмауэра, узкое место в системе или одно из трех упомянутых программ VPN работают не очень хорошо.

Я просмотрел почти все файлы журнала в / var / log , но не смог найти ни одной ошибки или проблемы до того, как сервер стал недоступен. Я не уверен, завис ли сервер , или произошел сбой. причина отсутствия журнала после определенного момента. только после того, как мы принудительно перезагрузили.

0
задан 12 September 2019 в 14:06
1 ответ

Я обнаружил проблему. Это было связано с openvpn. Я просмотрел / var / log / syslog и, по-видимому, у openvpn возникла проблема при установлении связи TLS с клиентом. И он продолжал регистрировать эти ошибки:

TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
TLS handshake failed

Причиной тому был параметр reneg-sec , который имел значения по умолчанию 3600. Вот цитата из официальных документов openvpn:

–reneg-sec n

Повторное согласование ключа канала данных через n секунд (по умолчанию = 3600). При использовании двухфакторная аутентификация, обратите внимание, что это значение по умолчанию может вызвать конечному пользователю будет предлагаться повторная авторизация один раз в час.

Также имейте в виду, что эту опцию можно использовать как на клиенте, так и на сервер, и в зависимости от того, что использует меньшее значение, будет запускаться пересмотр. Распространенной ошибкой является установка более высокого значения -reneg-sec. значение либо на клиенте, либо на сервере, в то время как другая сторона соединение по-прежнему использует значение по умолчанию 3600 секунд, что означает что повторное согласование по-прежнему будет происходить один раз в 3600 секунд. В решение - увеличить –reneg-sec как на клиенте, так и на сервере, или установите его на 0 на одной стороне соединения (чтобы отключить), а на вашем выбранное значение на другой стороне.

Этот параметр гарантирует, что клиент должен повторно согласовывать свой ключ каждый час.

Итак, если вы оставили openvpn на (стороне клиента) на долгое время, и если по какой-либо причине один из рукопожатие не удается. Это приведет к бесконечному количеству неудачных переговоров. Я предполагаю, что это вызвало отброшенные пакеты и прочее.

Не говоря уже о том, что интерфейс "tun0" изначально был создан openvpn, о чем я не знал.

В любом случае решение состоит в изменении интерфейса reneg-sec либо на большее значение, либо просто установите его на ноль и отключите. Я решил просто использовать параметр отключения и поместить reneg-sec 0 в профили server.conf и client .opvn .

Также, если это произойдет чтобы использовать UFW, вы должны отредактировать / etc / default / ufw и изменить DEFAULT_FORWARD_POLICY , чтобы принять.

Если вы по-прежнему получаете ошибки UDP, вам, вероятно, также необходимо изменить настройки сети.

0
ответ дан 5 December 2019 в 00:58

Теги

Похожие вопросы