У меня есть openvpn (версия 2.1_rc15 на обоих концах) соединение, установленное между двумя gentoo боксами с использованием общих ключей. оно работает нормально по большей части. Я использую mysql, http, ftp, scp через vpn без проблем. Но когда я ssh с клиента на сервер через vpn, происходят странные вещи. Я могу войти в систему, могу выполнять некоторые команды. Но если я пытаюсь запустить приложение ncurses, например top, или пытаюсь открыть файл cat, соединение прерывается, и мне приходится разрывать сессию ssh.
Я могу, например, выполнить "echo blah; echo .; echo blah", и это выведет три строки текста через ssh-сессию. Но если я выполню "cat /etc/motd", сессия зависнет, как только я нажму клавишу Enter.
Я скомпилировал openvpn 2.1.1 на моем mac и скопировал каталог config из моего клиента gentoo. Mac подключился и сеансы ssh работали нормально без зависания.
Затем я скомпилировал его на моем старом gentoo box (ядро 2.6.26), который я отправляю на пенсию из-за умирающего жесткого диска, и ssh через него также работает отлично.
Почему он не работает на моей новой коробке gentoo? Я попробовал скомпилировать три разных ядра на случай, если дело в этом, но кроме этого не должно быть никакой разницы между моими старыми и новыми коробками gentoo, о которой я могу думать.
Любые предложения о том, что не так?
Я использовал tunnelblick вместо OpenVPN, и мне не удалось найти конфигурацию для значения MTU. Вместо этого я нашел интерфейс для VPN в выводе ifconfig
(в моем случае это был utun0
) и вручную установил для него MTU, например:
ifconfig utun0 mtu 576
После этого, мой сеанс ssh больше не зависает.
Да, все дело в MTU.
Но в моем случае у меня проблема еще более странная. Дома при использовании Windows-клиента OpenVPN зависает. Но в моем офисе он работает нормально.
Я безуспешно пытался поменять его на своем ADSL-модеме. В моем офисе я использую кабельный модем и другого провайдера.
После изменения MTU адаптера Windows TAP на 1200 он работает нормально. Что-то большее, чем это, могло бы у меня замерзнуть.