-3

Я чувствую, что мне не хватает хорошего понимания, это сетевые / интернет-протоколы. Так что, возможно, мой вопрос тупой.

Если я правильно понимаю, порты TCP/UDP являются "локальными" для программного обеспечения сервера и клиента и относятся только к устройствам, поддерживающим соединение; и порты, привязанные к внешним IP-адресам с двоеточием, являются "локальными" для маршрутизатора в том смысле, что они имеют отношение только к маршрутизатору и в интересах поиска устройства без уникального внешнего адреса.


Итак, если я прав, я просто хочу убедиться, что у вас есть определенная функция:

TCPserver.listen(string ip, int port)

Тогда я мог бы сделать (в зависимости от реализации, конечно):

TCPserver.listen("123.456.789:18735", 1337)

И два порта не будут иметь ничего общего друг с другом и никогда не смогут мешать друг другу?


Если я не прав, что я делаю не так?

1 ответ1

0

Слушатель находится на локальной машине. IP-адрес, указанный для прослушивателя, сообщает ему, какой аппаратный (сетевой) интерфейс следует отслеживать, очевидно, на указанном порту.

Если прослушиватель настроен на внешний адрес (внешний по отношению к машине, например, не localhost), то входящий запрос может быть получен от других машин в сети.

В большинстве случаев, как представляется в вашем случае, между подключением к Интернету и компьютером будет установлен маршрутизатор.

Работа маршрутизатора состоит в том, чтобы направлять трафик на соответствующую машину. Чтобы сделать вашу службу доступной из Интернета, вам необходимо сообщить маршрутизатору, что запрос общедоступного IP-адреса (WAN/Internet) должен быть перенаправлен на правильный сервер.

Это делается путем включения переадресации портов в конфигурации маршрутизатора, выбора общедоступного порта и частного IP-адреса и порта назначения.

Вот простой пример настройки веб-сервера, который обходит блокировку ISP входящих запросов порта 80:

WAN/public IP: 1.2.3.4
LAN: 192.168.0.0/24 (router's IP would typically be 192.168.0.1)
web server: 192.168.0.10:80

Поскольку порт 80 заблокирован провайдером, вместо этого мы будем использовать порт 8080, поэтому наша ссылка будет http://1.2.3.4:8080 . В маршрутизаторе мы перенаправили бы порт 8080 на 192.168.0.10:80 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .