1

Я пытаюсь подключить свой ноутбук к серверу на другом континенте, и кажется, что ссылка очень ненадежная (примерно 58% потери пакетов при пинге).

При использовании VPN через настройку секретного ключа OpenVPN по умолчанию (которая использует UDP), ping в VPN сообщает о 57% -ой потере пакетов (это беспокоит меня такими способами, как медленное установление SSH).

Есть ли эффективный способ уменьшить частоту потери пакетов в этой ситуации? У меня есть административный контроль как на моем ноутбуке, так и на сервере.


Вот часть результата трассировки с моего ноутбука на сервер:

 8  221.176.27.254 (221.176.27.254)  16.870 ms
 9  * * *
10  221.183.30.246 (221.183.30.246)  197.288 ms
11  223.118.10.30 (223.118.10.30)  201.422 ms

2 ответа2

0

Вы можете переключить OpenVPN на TCP в настройках (как на клиенте, так и на сервере, и, возможно, убедитесь, что ваш TCP OpenVPN защищен до или если вы отключите службу UDP). Это обеспечит в конечном итоге прохождение всех пакетов. Это все еще будет медленным, но это по крайней мере стоит эксперимента. С openvpn.net:

Если вы хотите, чтобы ваш сервер OpenVPN прослушивал порт TCP вместо порта UDP, используйте proto tcp вместо proto udp (если вы хотите, чтобы OpenVPN прослушивал порты UDP и TCP, вы должны запустить два отдельных экземпляра OpenVPN).


Что касается потери пакетов, вы можете только зафиксировать путь, по которому идут пакеты. Используйте traceroute с обоих концов, чтобы найти оскорбительную часть ссылки и узнать, как ее обойти или сделать более надежной.

Вместо TCP, попробуйте посмотреть, можете ли вы арендовать инфраструктурное время в непосредственной близости от страдающего канала для туннелирования TCP через слабое соединение с пунктом назначения. Это позволило бы UDP-пакетам лететь как можно дальше без необходимости TCP-подтверждения или повторной передачи по всей длине туннеля, только в плохой его части.

Если слабое звено находится на середине пути, вы можете воспользоваться арендой инфраструктуры на обоих концах слабого звена, а не только на одной стороне, но если мы говорим об Антарктике, возможно, это будет сложно.

Если вы решили протестировать этот маршрут, я рекомендую udptunnel как одно из возможных решений. (udptunnel - это собственный пакет в Ubuntu, но другие опции, такие как socat или creative netcat, будут работать.)

0

Используйте UDPspeeder. Он обменивает накладные расходы полосы пропускания на устойчивость к потере пакетов.

На стороне сервера начните

speederv2_amd64 -s -l 0.0.0.0:1193 -r 127.0.0.1:1194

На стороне клиента, начать

speederv2_amd64 -c -l 127.0.0.1:1194 -r your_server_ip:1993

Затем укажите клиенту OpenVPN UDP 127.0.0.1:1194.

Используйте параметр --fec для настройки количества избыточности.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .