SSH трафик через OpenVPN соединение останавливается, когда я кот файл

13

У меня есть openvpn (версия 2.1_rc15 на обоих концах) настройки соединения между двумя коробками gentoo с использованием общих ключей. это работает отлично по большей части. Я использую mysql, http, ftp, scp через vpn без проблем. Но когда я ssh с клиента на сервер через VPN, происходят странные вещи. Я могу войти, я могу выполнить несколько команд. Но если я попытаюсь запустить приложение ncurses, например top, или попытаться перехватить файл, соединение прервется, и мне придется разорвать сессию ssh.

Я могу, например, выполнить «echo blah; echo.; Echo blah», и он выведет три строки текста в течение сессии ssh. Но если я выполню "cat / etc / motd", сессия остановится, как только я нажму клавишу ввода.

Я скомпилировал openvpn 2.1.1 на моем Mac и скопировал мой каталог конфигурации из моего клиента gentoo. Макинтош подключился и сессии ssh работали нормально без зависания.

Затем я скомпилировал его на моем старом пакете gentoo (ядро 2.6.26), которое я удаляю из-за умирающего жесткого диска, и ssh поверх него также отлично работает.

Почему он не работает на моем новом Gentoo Box? Я попытался скомпилировать три разных ядра на случай, если это так, но кроме этого не должно быть никакой разницы между моим старым и моим новым Gentoo Boxами, о которых я могу думать.

Любые предложения о том, что не так?

Pawz Lion
источник
В моем случае ssh, cat, topи HTTP все работало, но scpне сделал (он будет показывать 100% передается и повесьте там). Снижение MTU до 1380 исправило его.
Роджер Дуек

Ответы:

13

пахнет мту вопрос. Попробуйте опустить его, как описано в официальном руководстве или в этом сообщении в блоге .

PQD
источник
2
Благодарю. Я пытался сбросить MTU интерфейса Ethernet безрезультатно, но добавление «фрагмента 1400» к клиенту и серверу, как и в упомянутом вами посте, работало отлично. Интересно, почему старый Gentoo Box работал нормально, а новый - нет. Ну хорошо, исправлено сейчас. Спасибо
Pawz Lion
Благодарю. Это исправило мою проблему. В офисе у меня точно такая же настройка без каких-либо проблем, но у меня дома есть некоторые зависания в случаях. Если я сверну URL-адрес файла с - в нем, он зависнет. Без - это работает: D, и если я разбиваю длинные строки в файле, это тоже работает. Это не имеет смысла, но спасибо за решение.
Питер
1
Обратите внимание на опцию mtu-test в openvpn, упомянутую в сообщении в блоге, которое приведено выше. Это эмпирически протестирует mtu вашего туннеля openvpn, чтобы вы знали, какие значения использовать при установке фрагмента и mssfix, а не просто гадать. Я видел много постов в интернете с настройкой mtu / фрагмента 1400, 1350, 1200 и т. Д. Но когда я фактически запустил mtu-test, openvpn определил MTU как 1189!
jdhildeb
7

Эта команда решает это для меня:

$ sudo ip link set dev tun0 mtu 1350 && echo ":)"

Вы можете проверить настройки tun0 с помощью

$ ip a s

Ура!

Себастьян А. Ла Спина
источник
1

У меня была проблема с аналогами, когда OpenVPN подключался через 3g с плохим покрытием и потерял потерю пакета. Переключение на TCP вместо UDP устранило все проблемы, которые у меня были после этого. Надеюсь, что это помогает вам.

valentt
источник
Запуск VPN через TCP имеет свои проблемы. Решение проблемы MTU и использование UDP, вероятно, будет работать лучше, чем использование TCP.
Касперд
Для OP изменение только MTU, вероятно, лучше, чем переход с TCP на UDP. Если у вас очень плохо, настолько плохо, что OpenVPN даже не установит стабильное соединение, тогда вам следует попробовать TCP вместо UDP. В очень плохих случаях 3G переход на TCP был единственной вещью, которая работала для меня.
Валентин
1

Да, это все о MTU.

Но в моем случае у меня проблема еще более странная. Дома, используя Windows-клиент OpenVPN, он зависает. Но у меня в офисе все работает нормально.

Я попытался изменить его на моем модеме ADSL, но безуспешно. В моем офисе я использую кабельный модем и другой интернет-провайдер.

После изменения MTU адаптера Windows TAP на 1200 все работает нормально. Нечто высокое, замерзнет для меня.

введите описание изображения здесь

Луис Ваз
источник
0

Я использовал tunnelblick вместо OpenVPN и не смог найти конфигурацию для значения MTU. Вместо этого я нашел интерфейс для VPN в выводе ifconfig(в моем случае это было utun0) и установил MTU для него вручную следующим образом:

ifconfig utun0 mtu 576

После этого моя сессия SSH больше не зависает.

Золтан
источник