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.