У меня есть старый ПК, который я разобрал и загрузил на него Ubuntu, так как я хочу, чтобы он функционировал как тестовый сервер для запуска концепций для некоторых личных проектов. Когда он запущен, я могу сделать hostname -I
и вернуться 192.168.1.1
, но я считаю, что это частный IP-адрес, ссылающийся на машину в локальной сети ниже уровня маршрутизатора. Посещение таких сайтов, какhttps://whatismyipaddress.com/даст результат 70.108.1.98
, и я хотел бы иметь возможность открыть браузер и перейти, например https://70.108.1.98:4321
, к приложению, работающему на этом порту, ожидающему трафик.
В настоящее время, если я хочу подключиться к серверу, работающему на другом устройстве, я могу открыть браузер на одной машине и зайти на частный IP этой машины 4321
и подключиться без проблем. Это имеет смысл, так как это локальная сеть, а маскировка подсети позволяет этим IP находить друг друга под маршрутизатором.
По моим первоначальным оценкам, мне нужно будет сделать следующее:
- Настройте маршрутизатор, чтобы разрешить трафик на брандмауэре на
4321
- Перенаправить весь трафик на
4321
определенный192.168.xxx.xxx
IP-адрес, указывающий конкретную машину в сети. - Настройте веб-сервер, работающий на машине, для приема трафика
4321
Думаю, единственный другой вопрос, который у меня есть, это то, представляет ли IP, предоставленный данной ссылкой, представляющий мой публичный IP, сам маршрутизатор или машину, с которой я зашел на сайт? Другими словами, если я зайду на этот сайт со своего телефона, подключенного к моему WiFi, будет ли IP тем же самым, что будет означать, что все устройства на моем маршрутизаторе имеют этот публичный IP, и маршрутизатор, ну, направляет трафик на частный IP устройства?
Будем очень признательны за любые указания!
решение1
Похоже, есть два сценария/вопроса, на которые вы ищете ответ (поправьте меня, если я ошибаюсь).
Вы хотели бы разместить службу на порту 4321 и сделать ее доступной из публичного Интернета (используя ваш публичный IP) и вашей частной сети (используя ваш публичный IP или ваш частный IP). Для этого вам нужно перенаправить порт вашего маршрутизатора, чтобы порт 4321 на вашем маршрутизаторе был перенаправлен на порт 4321 на вашем компьютере Ubuntu. Первый шаг — определить частный IP-адрес вашего сервера Ubuntu (его можно найти с помощью команды
ip a
). Второй шаг — выполнить соответствующие шаги для перенаправления порта вашего маршрутизатора (этот сайт представляет собой сборник руководств по перенаправлению портов для большого количества моделей маршрутизаторов:https://portforward.com/router.htm). После завершения этих шагов и запуска службы на порту 4321 вашего сервера Ubuntu вы сможете получить к ней доступ, используя свой публичный IP-адрес.Со вторым вопросом вы, кажется, на правильном пути. Ваш маршрутизатор создал сеть Network Address Translation (NAT) для управления маршрутизацией между публичной и частной сетями. Это разница между IP-адресом, который выдает ваш сервер Ubuntu, и IP-адресом, который выдают внешние сайты. Любое устройство, подключенное к Интернету через ваш маршрутизатор, будет частью частной сети NAT, а публичный IP-адрес будет одинаковым для всех этих устройств (поэтому устройство на вашем Wi-Fi будет иметь тот же публичный IP-адрес, что и ваш сервер Ubuntu).
решение2
Думаю, единственный другой вопрос, который у меня есть, это то, представляет ли IP, предоставленный данной ссылкой, представляющий мой публичный IP, сам маршрутизатор или машину, с которой я зашел на сайт? Другими словами, если я зайду на этот сайт со своего телефона, подключенного к моему WiFi, будет ли IP тем же самым, что будет означать, что все устройства на моем маршрутизаторе имеют этот публичный IP, и маршрутизатор, ну, направляет трафик на частный IP устройства?
В таких ситуациях IP-адрес обычно принадлежит самому маршрутизатору. Он никогда не является фактическимобщиймежду машинами, имеющими частные адреса; они в большинстве случаев не знают об этом.
Ваши устройства инициируют соединения со своего частного IP-адреса в качестве источника, который маршрутизатор прозрачно транслирует в свой собственный публичный адрес через SNAT.
Получив пакеты обратно из Интернета, маршрутизатор сначала проверяет, соответствуют ли они известному переводу. Если это так, их назначение преобразуется обратно в частный IP-адрес хоста. Если нет, то маршрутизатор сам принимает пакеты в качестве хоста назначения.
Это не просто «маршрутизация» — трансляция (NAT) является дополнительной функцией.на вершинемаршрутизация. Все маршрутизаторы ISP, расположенные далее по пути, только пересылают пакеты, не выполняя никакой дополнительной трансляции. (То же самое мог бы сделать и ваш маршрутизатор, если бы в вашей сети были публичные IP-адреса для всех хостов, как это имеет место в большинстве сетей с поддержкой IPv6.)
Аналогично, когда вы настраиваете правило «пересылать весь трафик на <IP>» на маршрутизаторе, вы на самом деле настраиваете правило NAT (трансляции). Машина никогда не узнает, что к ней обращались с использованием публичного IP-адреса; все пакеты, которые она получает, имеют только частный адрес.