у меня дома есть рабочий стол 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-адрес.
но пульт СШ тайм-аут. Я тоже старался онлайн-тестер переадресации портов (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? роутер?
Есть идеи, как это выяснить?
спасибо!