SSH, якщо вихід команди більше 5 рядків


11

Мені порадили задати це питання тут: Мене вражає таке питання, яке я зараз переживаю.
У мене Debian 5.0 Linux-сервер, підключений через Ethernet-кабель до маршрутизатора DSL. Мій ноутбук працює під управлінням Windows 7 і підключений бездротово (802.11b / g) до того ж DSL-маршрутизатора. Якщо я SSH на сервер використовую Putty і намагаюся виконати команду, в результаті якої декілька рядків виводу, моє сеанс SSH заморожується. Вих.

ls -al /             // Freezes
ls -al / > ~/boo.txt // OK
vi ~/boo.txt         // OK
top                  // Freezes

Усі вищезазначені команди працюють, якщо я виконую їх безпосередньо на сервері або якщо я змінюю підключення ноутбука до дротового з'єднання. Що дає? Ця проблема насправді мене бентежить! Дякую


Можливо, хочете запитати це в StackOverflow, але це здається, що це може бути проблема зі спеціальними символами (можливо, кольором), оскільки vi не робить жодного забарвлення (якщо це насправді не vim).
Topher Fangio

Він навіть запитати його на StackOverflow, але, ймовірно , буде краще перенести його в ServerFault ... і я з Айдан: мій перший підозрюваний мережу MTU.
dmckee --- колишнє кошеня модератора

А-ха-ха, так, ServerFault, а не StackOverflow ... це понеділок = P
Topher Fangio

Відповіді:


9

звучить як провідний випуск MTU. трохи ...

чи можливо, у вас активовані jumboframes? певно, ні. все одно - спробуйте встановити нижчу mtu на debian і подивіться, чи допомагає вона.


Відряджений; це звучить як проблема MTU. Я б запропонував спробувати більші та більші пакети (це легко зробити за допомогою ping), поки не з’являться помилки / падіння пакетів. Або просто перевіряйте налаштування MTU скрізь :)
MikeyB

Дякую людям! Нижня MTU на ноутбуці зробила свою справу. Чи застосовується MTU до відправника / одержувача / обох? Я міг би пінг-сервер з ноутбука з більшим розміром даних. Зворотний не був правдою. Linux сервер: ~ # ping -S 5000 athlon64-laptop.lan PING athlon64-laptop.lan 56 (84) байт даних 64 байт з xxxx: icmp_seq = 1 ttl = 128 раз = 2,71 мс На ноутбуці Windows> ping -l 2048 athlon64x2-server.lan Pinging athlon64x2-server.lan з 2048 байтами даних: запит вичерпано. > ping -l 1048 athlon64x2-server.lan Pinging athlon64x2-server.lan з 1048 байтами даних: Відповідь з xxxx: байти = 1048 часу = 3ms TTL = 64

@leftbrainlogic - проблеми з mtu свідчать про те, що у вашій мережі є щось рибне. можливо, точка доступу не передає найбільші дозволені кадри [1500B] для швидкої Ethernet? ви налаштували сервер вручну для використання jumboframes?
pQd

@pQd - Ні, сервер просто запускає ванільну установку Debian 5.0. Я прийняв усі параметри за замовчуванням, крім розбиття диска та імені хоста. Вихід з ifconfig -a тут: pastebin.com/f78fcbf3d

@leftbrainlogic - добре; спробуйте знизити mtu, як описано в моєму посиланні. ваш 1500B - це стандартна довжина, я думаю, це вказує на певну проблему з комутатором, точкою доступу або мережевою карткою Wi-Fi.
pQd

3

Напевно, існує проблема з MTU вашого мережевого підключення - коли сервер Linux намагається надсилати занадто багато байтів даних в одному мережевому пакеті, можливо, маршрутизатор відмовляється пересилати його у вікно вікна, оскільки він вважає, що розмір пакета є занадто великий, щоб надсилати по бездротовій мережі. Ви повинні мати можливість зменшити MTU для інтерфейсу Ethernet на вікні linux, і це, ймовірно, вирішить вашу проблему.

Для діагностування спробуйте ping -s <packetsize> <windows-ip> скористатись вікном linux до IP вашої машини Windows та ping <linux-ip> <packetsize>від вікна Windows до linux з різними значеннями параметра packetize, і подивіться, чи не відрізняється максимальний розмір в будь-якому напрямку.

Також: man pingна Linux буде корисно зрозуміти, що відбувається.


0

Перше, що потрібно зробити - це включити режим налагодження як на клієнті, так і на сервері.

PuTTY має вбудовану налагодження, яка доступна в розділі Сесія -> Ведення журналів . Зауважте, що вам потрібно завантажити сеанс, який ви будете використовувати, перш ніж встановити параметри журналу. Налаштування журналу є частиною конфігурації сеансу.

На сервері ви можете залишити LogLevel на INFO (in /etc/ssh/sshd_config) та змінити його на DEBUG, лише якщо ви не бачите нічого, пов’язаного зі своєю проблемою. Не забудьте вийти та перезапустити ssh-сервер, щоб застосувати зміни ( /etc/init.d/ssh restart). Якщо DEBUG не надає корисної інформації, спробуйте DEBUG3, відповідно до інструкції man sshd_config.

Будь ласка, оновіть своє запитання своїми висновками!

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