ОС: Ubuntu Budgie Remix 16.04
uname -a: Linux midgard 4.8.0-54-generic #57~16.04.1-Ubuntu SMP Ср Май 24 16:22:28 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Это кажется довольно простым, но я перепробовал кучу всего, и это не работает. Вот подробности.
Ситуация: Я запускаю sshd на порту 3791 на моем домашнем подключении (чтобы избежать простого сканирования сети, пытаясь найти очевидные демоны ssh)
sudo /usr/sbin/sshd -D -p 3791
Проблема: Нет подключения
albion@midgard:~$ ssh {myIPv4OrIPv6} -p 3791 -v
OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g 1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to {myIPv4OrIPv6} port 3791.
debug1: connect to address {myIPv4OrIPv6} port 3791: Connection timed out
ssh: connect to host {myIPv4OrIPv6} port 3791: Connection timed out
Что я проверил:
- Я выполнил nmap локального хоста и вижу открытый порт
- Я подключился по ssh к localhost и смог успешно войти.
- Проверил iptables ('sudo iptables -L') на наличие правил, но ничего нет.
- Также на всякий случай отключил UFW командой «sudo systemctl stop ufw».
- Мой маршрутизатор настроен на переадресацию порта 3791 на мой адрес локальной сети (192.168.0.2) на том же порту.
- Я отключил параметры брандмауэра на уровне маршрутизатора.
- Позвонил своему интернет-провайдеру, просто чтобы узнать, есть ли у них какие-нибудь идеи, и, конечно же, они их не предоставили.
Может кто-нибудь придумать что-нибудь стоящее проверки? Любопытно, что я могу пинговать и получать ответ, когда пингую свой IPv4, но не получаю никаких ответов, когда пингую свой IPv6. Это может быть не связано, но я подумал, что стоит упомянуть.
решение1
Выделю ответ @steeldriver, так как считаю его правильным.
Видимо, проблема в том, что мои маршрутизаторы не поддерживают NAT Loopback: https://en.wikipedia.org/wiki/Перевод_сетевого_адреса#NAT_loopback
Похоже, это связано с тем, что я МОГУ подключиться к своему компьютеру с других компьютеров в сети, если они используют внутренний IP-адрес локальной сети (например, 192.168.0.2).а такжевнешне, если они используют мой IPv6.
Итак, решение:
1) При подключении из той же сети используйте IP-адрес локальной сети (или локальный хост, если это одно и то же устройство). 2) При подключении извне используйте адрес IPv6 (если его вам предоставил ваш интернет-провайдер) или IPv4 (при условии, что вы настроили правила переадресации портов).
Спасибо @steeldriver!