Підключившись безпосередньо до IP-адреси за допомогою SSH, ви спробуєте підключитись до порту 22. Ваш маршрутизатор знаходиться за списком трансляції мережевих адрес (NAT), що дозволяє використовувати декілька комп'ютерів за однією загальнодоступною IP-адресою. Ваш маршрутизатор повинен мати правило переадресації портів для переадресації з'єднань до порту 22 на вашому IP-адресі WAN до порту 22 192.168.1.10.
Вам потрібно буде мати окреме правило, яке пересилає інший порт WAN на порт 192.168.1.3 22, щоб дістати ssh на інший внутрішній комп'ютер.
Це пояснює, як ви підключаєтесь до хоста .10 під час спроби підключитися до своєї загальнодоступної IP-адреси.
Однак, з вашого уточнення в коментарях під цим питанням: ssh передбачає те ж ім’я користувача на віддаленій системі, як і на локальному хості, якщо не вказано ім'я користувача. Таким чином, якщо ви використовуєте ssh 98.222.222.38
замість ssh will86@98.222.222.38
і можете успішно підключитися, ваше ім'я користувача на вашій клієнтській машині повинно бути "will86".
Ось весь процес, по суті (деталі про те, як працює мережевий стек на вашому маршрутизаторі, можуть бути точно не відображені): коли ви просто запускаєте ssh 98.222.222.38
:
- Ваша клієнтська машина надсилає пакет TCP SYN на IP 98.222.222.38, порт 22
- Ваш маршрутизатор отримує пакет, перенаправляє пакет до 98.222.222.38
- Ваш маршрутизатор отримує пакет на адаптері WAN на порту 98.222.222.38
- Ваш маршрутизатор перевіряє правила переадресації NAT-портів, щоб визначити, як маршрутизувати вхідний пакет. У більшості ситуацій він перекине пакет тут, але ваш маршрутизатор повинен мати правило переадресації для порту 22 до IP 192.168.1.10
- Ваш маршрутизатор відправляє пакет на 192.168.1.10, порт 22
- 192.168.1.10 приймає пакет і відповідає, продовжуючи через рукостискання з'єднання TCP, щоб встановити з'єднання
- Десь у протоколі програми ssh (який відбуватиметься через встановлене TCP-з'єднання) потрібне ім’я користувача. Оскільки в командному рядку не вказано, клієнт використовує ім'я користувача, який увійшов до системи, який запустив ssh-клієнтську програму. Якщо ви вказали
ssh vt_antik@98.222.222.38
, він замість цього намагатиметься використовувати vt_antik для імені користувача.