Назад | Перейти на главную страницу

(обратное) ssh-соединение «тайм-аут при обмене баннерами»

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

Удаленная машина, открывающая туннель, подключается к сети через (пока неизвестный) 3G-маршрутизатор, который, вероятно, имеет только GPRS, в лучшем случае EDGE-соединение.

Зайдя на свою машину, я вижу входящие ssh подключение к порту 1234:

me@machine:~$ sudo nmap -sS -p 1234 --open localhost

Starting Nmap 5.21 ( http://nmap.org ) at 2014-11-27 15:27 CET
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000070s latency).
Hostname localhost resolves to 2 IPs. Only scanned 127.0.0.1
PORT     STATE SERVICE
1234/tcp open  unknown

Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds
me@machine:~$

Теперь, пытаясь открыть ssh-соединение, я получаю Connection timed out ошибка:

me@machine:~$ ssh -vp 1234 localhost
OpenSSH_5.9p1 Debian-5ubuntu1.4, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to localhost [::1] port 1234.
debug1: fd 3 clearing O_NONBLOCK
debug1: Connection established.
debug1: identity file /home/cts/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-4096
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-4096
debug1: identity file /home/cts/.ssh/id_rsa-cert type -1
debug1: identity file /home/cts/.ssh/id_dsa type -1
debug1: identity file /home/cts/.ssh/id_dsa-cert type -1
debug1: identity file /home/cts/.ssh/id_ecdsa type -1
debug1: identity file /home/cts/.ssh/id_ecdsa-cert type -1
Connection timed out during banner exchange
me@machine:~$

Другие порты работают нормально, как и этот, когда он был (проверен) подключен к сети 3G.

Я пробовал кое-что, что иногда помогает при использовании спутниковой связи - ssh -o "ConnectTimeout 99" -o "ServerAliveCountMax 5" -vp 1234 localhost но это тоже не помогло.

Я полагаю, это как-то связано с
а) провайдер беспроводной связи фильтрует что-то в своей сети GPRS, чего он не делает в своей сети 3G
или
б) плохая задержка GPRS-соединения в моем туннеле.

Кто-нибудь знает, как справиться с этой ситуацией или лучше понять, что здесь происходит (или, скорее, не происходит)? Добавление еще vs к команде больше не выводит отладочную информацию, кстати.

В Время ожидания подключения истекло во время обмена баннерами сообщение об ошибке может указывать на проблемы с сетью. Если вы видите, что сокет установлен с помощью netstat как на сервере, так и на клиенте, возможно, существует брандмауэр или устройство проверки пакетов, которое препятствует установлению SSH-соединения. Мы видели эту проблему в системе, которая находилась за защищенной сетью, и правила брандмауэра не были настроены должным образом. Брандмауэр также разрывает любое соединение, которое пытается инициировать запрос HTTP / 1.1, что было подтверждено с помощью netcat для имитации веб-сервера и подключитесь к нему с помощью netcat. Когда мы изменили ответ на HTTP / 1.2, он пропустил ответ, показывая, что что-то на сетевом уровне проверяет запросы и применяет к ним правила фильтрации.

Другие проблемы с сетью низкого уровня, такие как проблемы с MTU / Jumbo-кадрами или высокая потеря пакетов, также могут быть причиной проблемы.

Если ваш брандмауэр (например, на хосте перехода) использует удары просто попробуйте увеличить Cmd Timeout: https://linux.die.net/man/1/knockd