У меня есть маршрутизатор / модем Netgear C6300 (версия микропрограммы 2.01.14), и я изо всех сил пытаюсь внешне подключиться к моему малиновому пи. Вот мои настройки переадресации портов:
Я могу использовать ssh для внутреннего использования ssh 192.168.0.84
, но внешне на canyouseeme.com я получаю сообщение «Ошибка: не удалось увидеть ваш сервис на порте (22). У моего sshd_config есть строка, Port 22
а ListenAddress
строки закомментированы. Другими словами, я не касался этого файл. Что здесь происходит?
networking
router
ssh
ocket8888
источник
источник
Ответы:
Несколько вещей приходят на ум.
Переадресация на вашем скриншоте выглядит хорошо. Вы можете попытаться установить его
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
даст вам список правил. Искать строки какВ этом случае разрешить весь входящий трафик с либо
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
Например2001:a61::35:2
, если вам дали адрес IPv6, это может быть индикатором. Также, возможно, ваш C6300 покажет информацию об этом. (Я использую AVM Fritz! Box 7360, и он явно выдает «Fritz! Box использует туннель DS-Lite»).Чтобы быть на 100% уверенным, позвоните своему провайдеру.
Редактировать:
В случае, если вы находитесь за туннелем DS-Lite, вам, тем не менее, приходят на ум следующие варианты подключения домой с удаленного компьютера:
autossh
чтобы ваш домашний компьютер подключался к другому хосту, например, на работе (предварительно спросите своего работодателя), вашему веб-серверу, вашему VPS. Настройтеautossh
таким образом, чтобы он создавал обратный туннель, напримерssh -R 10000:localhost:22 user@yourvps.com
. Затем вы можете ssh на yourvps.com и ssh оттуда домой черезssh -p 10000 user@localhost
.Редактировать:
Netgear C6300 специфичный
Похоже, что в микропрограммах есть ошибки до или до версии микропрограммы 2.01.14, из-за которой открытые порты будут видны только в том случае, если в «Расширенные настройки»> «Настройка WAN» включена опция «Ответить на эхо-запрос на порт WAN в Интернете».
источник
iptables -S
вывод просто-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
, поэтому я запустил,iptables -I INPUT -p tcp --dport 22 -j ACCEPT
как вы предложили, и в то время какcurl
команда выводила адрес IPv6, использование не имело никакого значения. Я установил протокол в моей переадресации портов на TCP, но ping.eu/port-chk все еще говорит мне, что порт закрыт.-P
) уже были установленыACCEPT
, разницы не было. Еслиcurl
выводит адрес IPv6, то, скорее всего, вы используете стек DS-Lite. Или лучше ваш провайдер. Пожалуйста, посмотрите на их веб-страницу, форумы клиентов или позвоните им, чтобы быть на 100% уверенными. В этом случае может быть трудно получить соединение с удаленного на дом. Вы можете арендовать VPS с общедоступным IP-адресом и использоватьautossh
Raspberry, чтобы вы могли перейти с VPS на Raspberry дома.