Назад | Перейти на главную страницу

Невозможно использовать порт 80 дважды с разными IP-адресами?

У меня сейчас интересная проблема. На Windows Server 2012 R2 у меня есть два IP-адреса, например 192.0.2.1 и 192.0.2.2. По одному адресу, например 192.0.2.1 веб-сервер работает на порту 80, который реализован на C # с использованием HttpListener. По другому адресу, например 192.0.2.2 Я пытаюсь открыть порт 80 используя программу Go и http.server{}. Программа Go получает сообщение об ошибке, что порт не открывается. Программа C # запускается первой. Запускаю программу Go с правами администратора.

Когда я использую netstat чтобы проверить, какие порты на каких адресах используются, второй адрес 192.0.2.2 полностью не используется. Порт 80 открывается только программой C # по первому адресу, т.е. 192.0.2.1.

В этом нет никакого смысла. Я что-то упускаю?

Две недели назад у меня был похожий сценарий с Ubuntu и двумя программами Go, обе использовали порт 443 на разных IP-адресах. Это не было проблемой и сразу же побежало.

Веб-сервер необходимо настроить для привязки только к предполагаемому IP-адресу. Если он настроен для привязки к любому адресу, вы не можете использовать тот же порт с любым другим адресом.

Простой netstat только отображает связано Розетки. Вам нужно использовать -a для отображения прослушивающих, возможно, неподключенных портов. Любой порт, выделенный для прослушивания, нельзя использовать по-другому. С помощью -ao также удобен, поскольку он отображает PID рядом с портом.