SSH-соединения, отбрасывающие после двух или около того строк

4

У меня действительно немного странная проблема. Я запускаю Ubuntu Server 12.04 с минимальным набором пакетов: базовая система, sshd и IRC-сервер. Я должен разрешить кому-то другому настроить сервер для подключения к их сети IRC. Однако они, кажется, падают после двух строк ls или cat.

Odder, это происходит только на этом сервере, и я не смог воспроизвести его вообще с помощью PuTTY или ssh-клиента. Где я должен искать, чтобы диагностировать это? auth.log показывает обычное соединение и аутентификацию и не дает никаких подробностей о снижении. fail2ban не имеет нарушений с исходным IP-адресом.

Это виртуальная машина с переадресованным портом (это мостовой режим и имеет обычное сетевое подключение). Я могу подключаться локально, по локальной сети и удаленно с помощью PuTTY без каких-либо проблем. Другой человек может подключиться, используя ssh в Linux, но сталкивается с отказом подключения.

Журналы с клиента .

Журналы на стороне сервера не показывают ничего необычного.

    
задан hexafraction 07.06.2013 в 22:41
источник

4 ответа

1

Прежде чем начать, убедитесь, что системное время с обоих концов синхронизировано. Это помогает при сравнении позже.

Запустите tcpdump с обоих концов, отфильтрован для TCP-порта 22. Вы упомянули, что клиент использует PuTTY, поэтому я предполагаю Windows. Вы можете получить wirehark для Windows, и у него есть возможность захвата, которую вы можете использовать вместо tcpdump .

Используя tcpdump , вы сделали бы это с чем-то вроде: tcpdump -w/tmp/ssh.pcap -s0 -ieth0 port 22 . С помощью wirehark в Windows вы можете настроить захват, отфильтрованный для порта 22 с помощью графического интерфейса пользователя, а затем сохранить захват на диск.

Теперь откройте оба захвата с помощью wirehark. Найдите точку разъединения. Вы должны уметь видеть, какой конец инициировал выключение соединения (откуда сначала происходит соединение FIN или RST?)

Вы также можете проверить, вмешивается ли соединение третьей стороны (например, маршрутизатор или интернет-провайдер). Вы определите это, если вы заметите, что пакет, который никогда не отправлялся с другой стороны, например. Если это происходит, вероятно, это пакет RST.

    
ответ дан Robie Basak 20.06.2013 в 17:49
0

Я испытал странные тайм-ауты ssh, и я решил это, используя следующее:

sudo sysctl -w net.ipv4.tcp_keepalive_time=50 \
 net.ipv4.tcp_keepalive_intvl=10 \
 net.ipv4.tcp_keepalive_probes=5 

Не уверен, что это поможет, но, возможно, стоит попробовать.

    
ответ дан Colin Ian King 17.06.2013 в 21:36
0

Трудно сказать без лучшего описания проблемы (что означает «dropping» mean? TCP teardown? TCP RST? Stalled connection?), но одна возможная интерпретация вашего описания заключается в том, что может возникнуть проблема с обнаружением MTU пути ...

Часто задаваемые вопросы по SSH: мой сеанс SSH зависает частично через вход в систему, когда я генерирую много вывод из моей оболочки ...

Обнаружение PMTU (Path MTU)

    
ответ дан Steven Kath 18.06.2013 в 01:54
0

У меня была эта точная проблема с подключением старого сервера 12.04 от LTS14.04 (ранее обновленного с 12.04)

Я обнаружил, что проблема связана с MTU, поскольку после запуска

sudo ip li set mtu 1480 dev eth0

Проблема уходит ..... и возвращается, когда вы установите его на 1500

(предполагается, что вы подключены к проводному соединению eth0)

    
ответ дан user118917 26.10.2014 в 20:59