Коли я ssh просто використовую IP-адресу, він пересилає порт безпосередньо на певний комп'ютер


-2

ну, у мене є 5 комп’ютерів, і сьогодні я встановив ssh. Я використовував переадресацію портів, щоб привести до свого 192.168.1.10 xbuntu. У мене в мережі є ще 4 комп’ютери

Однак якщо я просто сш на свій загальнодоступний IP, який був наданий від мого провайдера, скажімо, ip 98.222.222.38, це переходить безпосередньо до мого 192.168.1.10. Звідки це знати, щоб прямувати туди? Я не розумію, оскільки у мене 5 комп’ютерів на 98.222.222.38, як це знати, щоб перейти на 192.168.1.10 замість того, щоб сказати 192.168.1.3?


3
Саме це робить переадресація портів. Він з'єднує один порт у вашому маршрутизаторі до порту з певного IP у вашій підмережі.
Марсело

Відповіді:


2

Підключившись безпосередньо до 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 для імені користувача.

Я не думаю, що ти розумієш питання.
user2805313

Гаразд, я думаю, що люди нерозуміють це питання. Якщо я просто введіть ssh 98.222.222.5 в командному рядку, який є моїм загальнодоступним IP-адресою, який надає мені провайдер, то як це знати, щоб перейти до 192.168.1.10, якщо до цього ж 98.222.222.5 IP підключено 5 інших комп'ютерів? Зазвичай ви вводите willc86@98.222.222.5, і це знає, але все, що я набираю,
user2805313

0

Комп'ютер може дозволити лише одній програмі слухати певний порт у будь-який час. У цьому випадку ssh знаходиться на порту 22, тому sshd - це той, який приймає з'єднання.

Ви можете думати про маршрутизатор як сурогатний комп'ютер для інших в мережі. У цьому випадку це був би комп'ютер, а не програма, яка прослуховує певний порт. На маршрутизаторі є лише один порт 22, тому його можна пересилати лише на один комп'ютер. Якби не було правил переадресації портів, сам маршрутизатор прийняв би з'єднання (а деякі маршрутизатори мають ssh-доступ).

Однак ви можете вибрати інший порт на маршрутизаторі та переслати на порт 22 іншого комп'ютера, щоб мати доступ до них. Для стандартів використовуйте номер порту> 1024, оскільки все <1024 зарезервовано для інших служб (наприклад, 20-21 - для FTP, 23 - telnet). Так, наприклад, 98.222.222.38:22100 можна перенести порт до 192.168.1.3:22

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.