Мне очень жаль, что я новичок в сетевых технологиях, но вот мой вопрос. У меня есть конфигурация SSH для подключения к серверу, которая выглядит так:
Host dev
User me
Hostname IP_ADDRESS
Когда я подключаюсь к серверу и запускаю команду:
hostname -I
Я получаю IP-адрес, отличный от IP_ADDRESS. Как такое возможно и почему? Заранее спасибо.
Это может быть из-за многих причин, но я думаю, в вашем случае. Это потому, что вы получаете доступ к нему через публичный IP-адрес компании.
Представьте, что вы дома. Вот схема вашего подключения
[ваш компьютер] ---> - [ваш маршрутизатор] ---> - [Интернет] ---> - [брандмауэр вашей компании] ---> - [сервер вашей компании]
Ваш компьютер, вероятно, имеет IP-ссылку 192.168.0.X в вашей частной сети.
У вашего маршрутизатора 2 IP - 192.168.0.Y (для связи с вашей домашней сетью) - xxx.xxx.xxx.xxx (фиксированный или динамический общедоступный IP-адрес для связи с остальным миром Wild Web)
Брандмауэр / маршрутизатор вашей компании также имеет почти 2 IP-адреса (может быть, больше) - yyy.yyy.yyy.yyy (общедоступный IP-адрес, вероятно, установлен для связи с остальным миром Wild Web) - 10.0.0.1 (или что-то в этом роде, чтобы общаться в локальной сети вашей компании)
И сервер как почти 1 ip в том же диапазоне - 10.0.0.2 (представим, что это)
Вероятно, администратор сделал NAT. Это правила, говорящие брандмауэру, что каждое соединение, поступающее через определенный порт или общедоступный IP-адрес брандмауэра, должно быть перенаправлено на сервер.
Итак, давайте представим, что общедоступный IP-адрес брандмауэра - 110.12.23.34, а порт 8022 перенаправлен на сервер через его порт 22. Что IP-адрес вашего сервера - 10.0.0.2.
Если вы подключаетесь к 110.12.23.34:8022, вы фактически общаетесь со своим сервером, как если бы вы были подключены локально на 10.0.0.2:22
Итак, однажды на вашем сервере, когда вы сделаете имя хоста -I. Он возвращает его собственный адрес.