3

У меня есть маршрутизатор / модем Netgear C6300 (версия микропрограммы 2.01.14), и я изо всех сил пытаюсь внешне подключиться по ssh к моему малиновому пи. Вот мои настройки переадресации портов:

Я могу ssh внутренне, используя ssh 192.168.0.84 , но внешне на canyouseeme.com я получаю «Ошибка: не удалось увидеть ваш сервис на порту (22). У моего sshd_config есть строка Port 22 а строки ListenAddress закомментированы. Другими словами, я не трогал этот файл. Что здесь происходит?

1 ответ1

2

Несколько вещей приходят мне на ум.

Переадресация на вашем скриншоте выглядит хорошо. Вы можете попробовать установить его на TCP вместо TCP/UDP , потому что ssh - это протокол TCP.

DynDNS

Вы уверены, что используете правильное динамически обновляемое имя хоста или правильный публичный IP-адрес? Чтобы найти ваш общедоступный IP-адрес, откройте консоль на Raspberry или SSH (внутри) и используйте curl icanhazip.com .

sshd_config

Убедитесь, что в /etc/ssh/sshd_config sshd прослушивает правильный интерфейс, если у вас их несколько. Закомментируйте строку ListenAddress a.b.c.d с помощью # и перезапустите службу (/etc/init.d/sshd restart или systemctl restart sshd , в зависимости от вашего дистрибутива). Изменить: извините, вы уже сказали это.

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

маршрутизация

Если вы не можете получить информацию от curl icanhazip.com , скорее всего, ваша Raspberry не знает, как попасть в Интернет. Поэтому он не может ответить на вашу попытку подключения извне. Добавьте маршрут, например, с помощью ip route add default via <your modem's IP address> и повторите попытку.

Iptables

Убедитесь, что ваш внутренний брандмауэр Raspberry разрешает SSH с внешних адресов. iptables -S предоставит вам список правил. Искать строки как

-A INPUT -s 192.168.0.0/24 -p tcp -m tcp --dport 22 -j ACCEPT
# SSH only allowed from the internal network, if iptables policy INPUT is DROP

В этом случае разрешите весь входящий трафик с помощью iptables -P INPUT ACCEPT или iptables -I INPUT -p tcp --dport 22 -j ACCEPT .

DS-Lite (Двойной стек Lite)

Внутри вашей домашней сети вы используете IPv4-адреса. В вашем примере 192.168.0.x. Однако ваш интернет-провайдер может использовать IPv6 в своей сети. Маршрутизатор преобразует ваши адреса IPv4 в IPv6. Обычно это приводит к невозможности подключения к домашней сети с удаленного компьютера.

Если curl icanhazip.com дал вам IPv6-адрес, например, 2001:a61::35:2 , это может быть индикатором. Также, возможно, ваш C6300 покажет информацию об этом. (Я использую AVM Fritz!Коробка 7360, и она явно выводит «Фриц!Коробка использует туннель DS-Lite »).

Чтобы быть на 100% уверенным, позвоните своему провайдеру.

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

В случае, если вы находитесь за туннелем DS-Lite, вам, тем не менее, приходят на ум следующие варианты подключения домой с удаленного компьютера:

  • попросите вашего провайдера / интернет-провайдера переключить вашу линию на не-DS-Lite
  • используйте autossh чтобы ваш домашний компьютер подключался к другому хосту, например, на работе ( предварительно спросите своего работодателя), вашему веб-серверу, вашему VPS. Настройте autossh таким образом, чтобы он создавал обратный туннель, например ssh -R 10000:localhost:22 user@yourvps.com . Затем вы можете зайти по ssh на yourvps.com и обратно через ssh -p 10000 user@localhost .

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

Netgear C6300 специфичный

Похоже, что в микропрограммах есть ошибки до или до версии микропрограммы 2.01.14, из-за которой открытые порты будут видны только в том случае, если в "Расширенные настройки"> "Настройка WAN" включена опция «Отвечать на эхо-запрос на порт WAN в Интернете».

Настройка Netgear C6300 WAN

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .