У меня есть соединение openvpn (версия 2.1_rc15 на обоих концах) между двумя ящиками gentoo с использованием общих ключей. по большей части он работает нормально. Я без проблем использую mysql, http, ftp, scp через vpn. Но когда я отправляю ssh с клиента на сервер через vpn, происходят странные вещи. Я могу войти в систему, могу выполнить некоторые команды. Но если я попытаюсь запустить приложение ncurses, например top, или попытаюсь перехватить файл, соединение остановится, и мне придется прервать сеанс ssh.
Я могу, например, выполнить «echo blah; echo.; Echo blah», и он выдаст три строки текста в течение сеанса ssh нормально. Но если я выполню «cat / etc / motd», сеанс остановится в тот момент, когда я нажму Enter.
Я скомпилировал openvpn 2.1.1 на своем Mac и скопировал каталог конфигурации из моего клиента gentoo. Mac подключился и сеансы ssh работали нормально без зависаний.
Затем я скомпилировал его на своем старом компьютере Gentoo (ядро 2.6.26), который я ухожу из-за умирающего жесткого диска, и ssh поверх него также отлично работает.
Почему он не работает на моем новом Gentoo Box? Я пробовал скомпилировать три разных ядра на случай, если это было так, но кроме этого не должно быть никакой разницы между моими старыми и новыми ящиками Gentoo, о которых я могу думать.
Есть предложения о том, что не так?
пахнет mtu issue. попробуйте снизить его, как описано в официальное руководство или в этом блог Почта.
Эта команда решает это за меня:
$ sudo ip link set dev tun0 mtu 1350 && echo ":)"
Вы можете проверить настройки tun0 с помощью
$ ip a s
Ура!
Ага, все дело в MTU.
Но в моем случае у меня проблема еще более странная. Дома при использовании Windows-клиента OpenVPN зависает. Но у меня в офисе работает нормально.
Я безуспешно пытался поменять его на своем ADSL-модеме. В моем офисе я использую кабельный модем и другого провайдера.
После изменения MTU адаптера Windows TAP на 1200 все работает нормально. Что-то большее, чем это, замерзло бы для меня.
У меня была аналогичная проблема, когда OpenVPN подключался через 3g с плохим покрытием и потерей пакетов. Переход на TCP вместо UDP устранил все проблемы, которые у меня возникли после этого. Надеюсь, что это помогает вам.
Я использовал tunnelblick вместо OpenVPN, и мне не удалось найти конфигурацию для значения MTU. Вместо этого я нашел интерфейс для VPN в выходных данных ifconfig
(в моем случае это было utun0
) и установите для него MTU вручную следующим образом:
ifconfig utun0 mtu 576
После этого мой сеанс ssh больше не зависает.