Мне посоветовали спросить этот вопрос здесь: меня сбивает с толку следующая проблема, с которой я сейчас сталкиваюсь.
У меня есть сервер Debian 5.0 Linux, подключенный через Ethernet-кабель к моему DSL-маршрутизатору. Мой ноутбук работает под управлением Windows 7 и подключен по беспроводной сети (802.11b / g) к тому же маршрутизатору DSL. Если я подключаюсь по SSH к серверу с помощью Putty и пытаюсь выполнить команду, которая приводит к появлению нескольких строк вывода, мой сеанс SSH зависает. Ex.
ls -al / // Freezes
ls -al / > ~/boo.txt // OK
vi ~/boo.txt // OK
top // Freezes
Все вышеперечисленные команды работают, если я выполняю их непосредственно на сервере или меняю подключение ноутбука на проводное. Что дает? Эта проблема меня действительно сбивает с толку! Спасибо
звучит как проблема с проводным MTU. слегка ...
Возможно ли, что у вас включены jumboframes? возможно нет. в любом случае - попробуйте установка нижнего mtu на debian и посмотрите, поможет ли это.
Вероятно, есть проблема с MTU вашего сетевого подключения - когда сервер Linux пытается отправить слишком много байтов данных в одном сетевом пакете, вероятно, маршрутизатор отказывается пересылать его в окно Windows, потому что он думает, что размер пакета слишком большой для отправки по беспроводной сети. Вы должны иметь возможность уменьшить MTU для интерфейса Ethernet в Linux-боксе, и это, вероятно, решит вашу проблему.
Чтобы поставить диагноз, попробуйте ping -s <packetsize> <windows-ip>
из окна Linux на IP-адрес вашего компьютера с Windows и ping <linux-ip> <packetsize>
из окна Windows в Linux с разными значениями параметра packetsize и посмотрите, отличается ли максимальный размер в любом направлении.
Также: man ping
на linux поможет понять, что происходит.
Первое, что нужно сделать, - включить режим отладки как на клиенте, так и на сервере.
PuTTY имеет встроенную отладку, которая доступна в Сессия -> Ведение журнала. Обратите внимание, что вам необходимо загрузить сеанс, который вы собираетесь использовать, до настройки параметров ведения журнала. Параметры ведения журнала являются частью конфигурации сеанса.
На сервере вы можете оставить LogLevel на INFO (в /etc/ssh/sshd_config
) и измените его на DEBUG, только если вы не видите ничего, связанного с вашей проблемой. Не забудьте выйти из системы и перезапустить ssh-сервер, чтобы изменения вступили в силу (/etc/init.d/ssh restart
). Если DEBUG не дает полезной информации, попробуйте DEBUG3, согласно man sshd_config
.
Пожалуйста, дополните свой вопрос своими выводами!