Как устранить ошибки «Отказано в соединении» в соединении SSH?


97

У меня дома установлен Ubuntu Server 10.10 32-bit. Я делаю SSH-соединения с ПК через Putty.

Проблема в том, что иногда я могу войти без проблем. Тем не менее, иногда это дает мне такую ​​ошибку:Network error: Connection refused.

Затем я ничего не меняю, попробуйте войти еще несколько раз, подождите немного и попробуйте снова. Иногда я могу войти, иногда я не могу. Это кажется довольно случайным для меня.

Что я могу сделать, чтобы решить эту проблему?

Редактировать:

И иногда, Putty выдает Network error: Software caused connection abortошибку после отображения login as:текста.

Вот вывод ping -t:

Pinging 192.168.2.254 with 32 bytes of data:
Reply from 192.168.2.254: bytes=32 time=6ms TTL=64
Reply from 192.168.2.254: bytes=32 time=65ms TTL=6
Reply from 192.168.2.254: bytes=32 time=88ms TTL=6
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=3ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64
Reply from 192.168.2.254: bytes=32 time=1ms TTL=64

Я отключил межсетевой экран маршрутизатора, и теперь все работает. За исключением этого, я все еще не могу зайти на свой веб-сервер, набрав внешний IP с моего компьютера.


в следующий раз это будет так; снова запустить пинг, все еще работает? сколько людей сш к этой машине?
myusuf3

Только я ssh этот сервер.
Frbry

Точно та же самая проблема здесь, также получая смесь успешных соединений (которые затем работают в течение нескольких часов), «соединение отказано» и «программное обеспечение вызвало прерывание соединения» после ввода логина или пароля. Чтобы предоставить некоторые дополнительные сведения: в моем случае это 64-разрядная виртуальная машина (под управлением Ubuntu Server 10.10) на хосте Microsoft Hyper-V, использующая эмуляцию «старой сетевой карты».
hheimbuerger

SSH установлен на вашем сервере?
Виллиан Соареш

Ответы:


82

Вы должны установить openssh-сервер в Linux, прежде чем это сработает. Получите внутренний IP-адрес Ubuntu и используйте этот IP-адрес для настройки переадресации портов на разделе порта 22 (SSH) вашего маршрутизатора. Хотя если вы не собираетесь использовать SSH вне вашей сети, это не обязательно.

Вот как установить openssh-сервер:

sudo apt-get install openssh-server openssh-client
[ENTER PASSWORD]

10
Непосредственно не отвечает на вопрос, но это полезно, поскольку Ubuntu не поставляется с SSH-сервером.
Остати

Я недавно получил новый ноутбук и совершенно забыл, что он не установлен по умолчанию = D
Izkata

40

Конфликт IP-адресов оказался основной причиной, когда я видел это сообщение об ошибке SSH.

Прочитав ответы выше, я заподозрил конфликт IP-адресов, но мне нужно было доказать, что конфликт адресов был или не был проблемой.

В этой замечательной статье рассказывалось, как использовать arp-scan для проверки того, что два устройства используют один и тот же IP-адрес.

В моем случае сервер имел статический IP-адрес 192.168.1.42, я использовал arp-scan, чтобы проверить этот адрес:

$ sudo apt-get install arp-scan
$ arp-scan -I eth0 -l | grep 192.168.1.42
  192.168.1.42 d4:eb:9a:f2:11:a1 (Unknown)
  192.168.1.42 f4:23:a4:38:b5:76 (Unknown) (DUP: 2)

Конечно же, произошел конфликт, как показано выше. Затем я запустил arp-scan без grep, обнаружил, что .43 доступен, пошел, отредактировал /etc/network/interfacesи изменил статический ip с .42 на .43


На самом деле выполнение этой команды показало только одну строку на моем ящике, за исключением того, что имя было именем другого устройства.
assylias

Большое вам спасибо за правильное направление конфликта IP-адресов. Была похожая проблема! +1
DominikAngerer

Просто сэкономил мне столько времени ... слава ...
Крис Барлоу

Иногда мой маршрутизатор просто необходимо перезагрузить, чтобы решить эту проблему.
Габриэль Стейплс

14

Используйте arpingна IP-адрес, который имеет проблемы с подключением. Это покажет MAC-адрес для каждого ответа на пинг, и, надеюсь, разоблачит мошеннический MAC-адрес.

arping 192.168.2.254

Вы должны проверить пул IP-адресов DHCP на сервере DHCP, убедиться, что никакие устройства не имеют статических IP-адресов, которые конфликтуют с пулом DHCP.

Эти ключи указывают на дублирование IP:

  • ping ttl и время туда и обратно выглядит как 2 разных сервера
  • прерывистое отключение без перезагрузки

Отлично, указал мне прямо на правильный путь! Был в состоянии отследить его по второму MAC-адресу, к которому он был подключен, и изменить IP-адрес принтера
канадец Люк

1
Мне нужно было добавить -I wlan0 (wlan0 - мое wifi-устройство)
Гухур

6

У меня была такая же проблема, хотя у меня был статический IP-адрес. Оказывается, другому серверу в моей сети был назначен тот же (статический) IP-адрес. (Duh.) Так что кажется, что проблема вызвана конфликтами IP-адресов, но возможны различные способы их возникновения. Если вы установили статический режим, но проблема не устранена, попробуйте выключить компьютер и проверить связь с адресом. Если вы получили какие-либо ответы, начните искать, что еще может иметь тот же адрес.


1
Я испытал те же симптомы и отследил его до компьютера с тем же IP-адресом, что и у сервера.
SabreWolfy

5

откройте файл конфигурации ssh:

sudo nano /etc/ssh/ssh_config

найти порт

#port 22

убери резкую опцию порта

затем сохраните файл ctrl + xи перезапустите службу

sudo service ssh restart

4

Что вы получите, если сделаете это?

grep 192.168.2.25 /etc/hosts.deny

Если это что-то возвращает, вам нужно удалить его.


10
Это одно из печально известных «бесполезных применений cat» - вы можете простоgrep 192.168.2.25 /etc/hosts.deny
Тобиас Кинцлер

@TobiasKienzler Исправлено
wjandrea

3

Это выглядит больше проблемой вашего сетевого оборудования, чем сам сервер.

Проверьте / var / log / messages на наличие или отсутствие соединений Ethernet (или wlan в случае беспроводной связи). Если это так, попробуйте заменить кабели.


Да, я попытался установить ssh-соединение за пределами моей сети (где находится мой сервер и мой компьютер). Кажется, работает хорошо. Мой сервер также является веб-сервером. Когда я пытаюсь подключиться через порт 80 с моего компьютера, я вижу страницу входа в мой модем ADSL. Но когда я пытаюсь сделать то же самое с другого компьютера, который находится за пределами моей сети, я вижу страницу Apache «Это работает».
Frbry

Какой у вас ip ПК, ip вашего сервера и ip внутреннего маршрутизатора adsl?
forcefsck

ПК: 192.168.2.2 (получено от DHCP) Сервер: 192.168.2.254 (статический, вне диапазона DHCP) Маршрутизатор ADSL: 192.168.2.1
frbry

Я немного запутался, когда вы подключаетесь с 192.168.2.2 к 192.168.2.254 порту 80, вы получаете логин модема adsl?
forcefsck

1
Если вы не настроили какой-либо веб-прокси на своем сервере, то, очевидно, ваш модем adsl отвечает на запросы, сделанные к 192.168.2.254, и, вероятно, это тот случай, когда вы получаете сообщение об Connection refusedошибке с ssh. Таким образом, вы должны перепроверить настройки вашего adsl модема.
forcefsck

3

Я могу подтвердить эту точную проблему: это не простая проблема с подключением. Канал Ethernet не меняет состояние; сервер доступен через пинг; Иногда ssh безупречно подключается, а затем, по-видимому, случайно не подключается или существующие сеансы ssh удаляются Это происходит в Ubuntu 10.04 и 11.04. Следуя предложению hheimbuerger, я дал серверу статический IP-адрес, это, похоже, исправило это.

Обходной путь: Измените адаптер с DHCP на статический.


1

У меня была точно такая же проблема, и в моем случае это был конфликт IP-адресов. У моей Ubuntu VM был динамический адрес, но другой машине (в данном случае телефону) был назначен статический IP-адрес, о котором DHCP-сервер не знал.

Простое изменение IP-адреса, назначенного сервером DHCP для виртуальной машины Ubuntu, устранило все проблемы с подключением.


1

Это в основном из-за одной из следующих причин:

  1. Слишком много пользователей в сети пытаются получить доступ к серверу
  2. Несколько компьютеров в сети имеют одинаковый IP-адрес с сервером, что вызывает конфликт IP-адресов
  3. Неверное имя пользователя или ваши учетные данные были отменены

0

Вы можете проверить свои iptablesправила на своем сервере. Похоже, у вас есть правило для ограничения новых соединений SSH.

Следующее правило разрешает 5 новых подключений в минуту, если вы превысите этот лимит, ваши новые подключения будут отклонены через некоторое время:

-A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m limit --limit 5/min -j ACCEPT

Смотрите документацию по IPTables / Netfilter , прокрутите немного до limit.


0

arp-scan показывает два дублирующих устройства, но когда я запускаю Advanced IP scanner на Win8, все они выглядят нормально. Так что они не всегда соглашаются.

Я установил, чтобы маршрутизатор отзывал все договоры аренды, указав, чтобы они выдавали только 1 час аренды. Даст ему время посмотреть, прояснится ли.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.