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

Добрый день всем! 

У меня возникла проблема: **не могу подключиться по SSH к своему домашнему серверу через внешний статический IP-адрес.** Сервер находится в моей локальной сети. 

Я приобрел у Ростелекома услугу "Статичный IP-адрес" и попросил их открыть необходимые порты. Мои друзья могут подключаться к серверу по моему внешнему статическому IP, а у меня это не получается - подключение возможно только через локальный IP **192.168.0.106**. Все мои попытки подключиться по внешнему IP завершаются ошибкой: *connect to host **77.##.###.149** port 22: Connection refused*.

У меня два роутера: первый - Zyxel FiberHome, а второй - D-Link (по причине большого размера дома мне нужен второй роутер). От Zyxel идет провод к D-Link. На роутере D-Link настроены виртуальные серверы и включен NAT-Loopback, однако на основном роутере Zyxel FiberHome ничего не настраивалось. Мне кажется, что в этом и есть проблема, но я не знаю, какие настройки нужно сделать.

Я создал схемы для лучшего понимания проблемы. 

Пожалуйста, помогите разобраться – я не являюсь профессионалом в этом деле. Спасибо!
  • 12 марта 2025 г. 9:45
Ответы на вопрос 3
Добрый день!

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

Вот несколько шагов, которые могут помочь вам решить проблему:

1. **Проверьте настройки портов на Zyxel (первом роутере):**
   - Убедитесь, что на Zyxel открыты все необходимые порты для связи с D-Link. Для этого может потребоваться добавить правило перенаправления порта (port forwarding) для порта 22 на IP-адрес D-Link.

2. **Проверьте NAT-Loopback на D-Link:**
   - NAT-Loopback должен быть включен на D-Link, чтобы вы могли подключиться к своему серверу через внешний IP-адрес из вашей локальной сети. Убедитесь, что настройки верны.

3. **Проверка маршрутизации:**
   - Попробуйте подключиться к серверу по внутреннему IP-адресу (192.168.0.106), а затем воспользуйтесь командой `traceroute <ваш внешний IP>` в терминале, чтобы узнать, куда идет запрос. Это может помочь понять, где может быть проблема с маршрутизацией.

4. **Проверка правил брандмауэра:**
   - Убедитесь, что брандмауэр на вашем сервере разрешает входящие соединения на порту 22. Это может быть как встроенный брандмауэр вашего дистрибутива Linux, так и сторонние решения.

5. **Настройки на роутере D-Link:**
   - Если вы используете перенаправление портов на D-Link, убедитесь, что оно настроено правильно. Например, правило должно перенаправлять порт 22 на локальный IP-адрес вашего сервера.

6. **Тестирование из внешней сети:**
   - Попросите кого-то из внешней сети (например, друга) подключиться к вашему серверу, чтобы исключить возможность проблем со стороны вашего интернет-провайдера или локального соединения.

7. **Логи SSH:**
   - На вашем сервере проверьте логи SSH (`/var/log/auth.log` или `/var/log/secure` в зависимости от вашей системы), чтобы увидеть, не возникает ли никаких ошибок при попытках подключения.

8. **Обновление прошивки:**
   - Убедитесь, что у вас установлена последняя версия прошивки на обоих роутерах, так как проблемы могут возникать из-за устаревшего ПО.

Если после выполнения всех этих шагов проблема не решится, рассмотрите возможность сброса настроек роутеров и повторной настройки с нуля. Также полезно иметь под рукой документацию к вашим роутерам для конкретных вопросов настройки.

Надеюсь, эти рекомендации помогут! Если вам нужна более подробная информация по какому-то шагу, дайте знать.
У вас проброшены порты снаружи на ваш сервер, а не изнутри. 
Роутер (УСЛОВНО) проверяет откуда пришел запрос, если запрос пришел на внешний интерфейс на 77.##.###.149, то пробросить запрос на ваш внутренний сервер, если нет, то и пробрасывать трафик не будет.
Вам вообще зачем из вашей локалки подключаться к вашему серверу по белому IP?
У микротика есть такая штука, назывется hairpin nat. Как реализуется на ваших устройствах я могу лишь предполагать, тк давно не работаю с устройствами подобного класса. Но вам советую не заниматься ерундой и подключаться к своему серверу напрямую по серому адресу, а белый нужен для всех кто снаружи.
Подключаться по внешнему IP надо из внешней сети,а не из локальной. 
Для локальной сети обычно необходимо настраиваь и поддерживать "обратный nat"

Раз внешние пользователи могут подключиться к серверу по внешнему IP, значит проброс портов натсроен верно и делать что либо на Zyxel по идее не нужно
Похожие вопросы