Трафік 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", сеанс заморозиться в момент натискання клавіші enter.

Я скомпілював openvpn 2.1.1 на своєму mac і скопіював через свій конфігураційний каталог з мого клієнта gentoo. Підключення до Mac і ssh-сеанси спрацювали нормально, не заморожуючи.

Потім я скомпілював це на моїй старшій коробці gentoo (ядро 2.6.26), яку я виходжу з-за вимираючого жорсткого диска, і ssh над ним також чудово працює.

Чому він не працює на моїй новій коробці gentoo? Я спробував скласти три різних ядра на випадок того, що це було, але крім цього не повинно бути різниці між моїми старшими та новими ящиками для gentoo, про які я можу придумати.

Будь-які пропозиції щодо того, що не так?


У моєму випадку ssh, cat, topі HTTP все працювало, але scpне зробив (він буде показувати 100% передається і повісьте там). Опустивши MTU до 1380, це виправлено.
Роджер Дуек

Відповіді:


14

пахне проблемою mtu. спробуйте знизити його, як описано в офіційному посібнику або в цій публікації блогу .


2
Дякую. Я намагався скинути MTU інтерфейсу ethernet безрезультатно, але додав "фрагмент 1400" клієнту та серверу, як у публікації, про яку ви згадали, працював чудово. Цікаво, чому старіший коробку gentoo працював нормально, але новіший - ні. Ну добре, виправлено зараз. Спасибі
Pawz Lion

Дякую. Це вирішило мою проблему. В офісі я маю абсолютно таку ж установку без жодних питань, але в мене вдома є кілька висівок. Якщо я згортаю URL-адресу файлу з а - у ньому він висить. Без - це працює: D, і якщо я розбиваю довгі рядки у файлі, він також працює. Немає сенсу, але дякую за рішення.
Пітер

1
Зверніть увагу на параметр mtu-test openvpn, згаданий у вищезазначеній публікації блогу. Це емпірично перевірить mtu вашого тунелю openvpn, щоб ви знали, які значення слід використовувати під час встановлення фрагмента та mssfix, а не просто здогадки. Я бачив багато публікацій в Інтернеті з налаштуванням mtu / fragment на 1400, 1350, 1200 і т. Д. Але коли я насправді запустив mtu-test, openvpn визначив MTU 1189!
jdhildeb

7

Ця команда для мене вирішує:

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

Ви можете перевірити налаштування tun0 за допомогою

$ ip a s

Ура!


2

Так, це все про MTU.

Але в моєму випадку у мене проблема ще дивніша. Вдома за допомогою клієнта OpenVPN Windows він заморожується. Але в моєму кабінеті це працює чудово.

Я намагався змінити його на моєму ADSL модемі без успіху. У своєму офісі я використовую кабельний модем та інший провайдер.

Після зміни MTU адаптера TAP Windows на 1200 він працює чудово. Щось високе, ніж це, морозило б для мене.

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


1

У мене виникли подібні проблеми, коли OpenVPN підключався понад 3 г із поганим покриттям та втратою пакетної втрати. Перехід на TCP замість UDP виправив усі проблеми, які виникли після цього. Сподіваюсь, це допоможе тобі.


Запуск VPN через TCP має власний набір проблем. Виправлення проблеми MTU та перебування з UDP, швидше за все, працюватимуть краще, ніж використання TCP.
kasperd

Що стосується зміни ОП, то тільки MTU є, мабуть, кращою пропозицією, ніж перехід від TCP до UDP. Якщо у вас дуже погано, настільки погано, що OpenVPN навіть не встановить стабільне з'єднання, тоді слід спробувати TCP замість UDP. У надзвичайно поганих випадках 3G перехід на TCP був єдиним, що працювало для мене.
валент

0

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

ifconfig utun0 mtu 576

Після цього моя сесія ssh більше не замерзала.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.