У меня дома рабочий стол Ubuntu и ноутбук Mac. Я пытаюсь настроить это так, чтобы я мог SSH на моем компьютере с Ubuntu из-за пределов моей локальной сети.
Вот что я сделал до сих пор:
(1) Я включил SSH на порту 22 на моей машине с Ubuntu. Файл /etc /ssh /sshd_config говорит, что прослушивает порт 22.
(2) Если я смотрю на состояние моего брандмауэра (ufw status
), он говорит:
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
22 (v6) ALLOW Anywhere (v6)
(3) На моем маршрутизаторе Netgear C3700-100NAS я зарезервировал IP-адрес для своего компьютера с Ubuntu, чтобы он не изменился.
(4) Я настроил переадресацию портов с типом службы TCP/UDP, внешним и внутренним портами, установленным на 22, и он указывает на мой внутренний IP-адрес.
(5) Я нашел свой публичный IP-адрес с помощью http://www.myipaddress.com/
Я могу успешно подключиться по ssh к моей машине с Ubuntu из дома, в локальной сети, используя локальный IP-адрес.
Но время удаленного ssh истекло. Я также попробовал онлайн-тестер переадресации портов (https://www.yougetsignal.com/tools/open-ports/), и когда я указываю на мой публичный IP-адрес и порт 22, он сообщает, что порт закрыт.
Когда я пытаюсь удаленно SSH, я получаю следующее:
~ $ ssh -vvv myusername@xx.xxx.xxx.xx
OpenSSH_7.4p1, LibreSSL 2.5.0
debug1: Reading configuration data /etc/ssh/ssh_config
debug2: resolving "xx.xxx.xxx.xx" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to xx.xxx.xxx.xx [xx.xxx.xxx.xx] port 22.
debug1: connect to address xx.xxx.xxx.xx port 22: Operation timed out
ssh: connect to host xx.xxx.xxx.xx port 22: Operation timed out
ОБНОВЛЕНИЕ
Следуя советам, перечисленным ниже, я внес несколько изменений. Я изменил переадресацию портов, чтобы теперь он использовал порт 8022 в качестве внешнего порта, но все равно порт 22 в качестве внутреннего порта. Я также включил опцию в настройках своего роутера, чтобы он отвечал на пинги.
Теперь, если я пингую свой публичный IP, он отвечает. Однако, если я проверяю, открыт ли порт 8022 через веб-сайт yougetsignal, указанный выше, он все равно говорит, что он закрыт.
Если я попытаюсь SSH:
> ssh -vvv username@xx.xxx.xxx.xx -p 8022
OpenSSH_7.4p1, LibreSSL 2.5.0
debug1: Reading configuration data /etc/ssh/ssh_config
debug2: resolving "xx.xxx.xxx.xx" port 8022
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to xx.xxx.xxx.xx [xx.xxx.xxx.xx] port 8022.
debug1: connect to address xx.xxx.xxx.xx port 8022: Operation timed out
ssh: connect to host xx.xxx.xxx.xx port 8022: Operation timed out
Я также позвонил своему интернет-провайдеру, и хотя это был сбивающий с толку разговор, похоже, они не блокировали порты, которые я пытался использовать ...
Следуя предложенному ниже предложению, я запустил sudo nmap --packet-trace --traceroute --reason xx.xxx.xxx.xx
Вот подмножество вывода. Порт 8022 не указан, но я думаю, что это должно быть:
Host is up, received reset ttl 253 (0.0028s latency).
Not shown: 996 filtered ports
Reason: 996 no-responses
PORT STATE SERVICE REASON
135/tcp closed msrpc reset ttl 253
139/tcp closed netbios-ssn reset ttl 253
445/tcp closed microsoft-ds reset ttl 253
1025/tcp closed NFS-or-IIS reset ttl 253
Я не уверен, где проблема ... машина Ubuntu? роутер? Есть идеи, как это выяснить?
Спасибо!