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

Предотвращают ли исходящие TCP-соединения привязку порта для прослушивания?

Я запускаю приложение, которое пытается прослушивать порт 34002. Когда он пытается это сделать, он получает ошибку:

Address already in use

Когда я использую lsof чтобы найти виновника, я обнаружил, что это исходящее TCP-соединение:

sudo lsof -i | grep "some-process"
some-command 53344  some-process    7u  IPv4 344298      0t0  TCP <my-local-ip-redacted>:34002-><remote-ip-redacted>:https (ESTABLISHED)

Мне это кажется странным. Исходящие сеансы TCP запускаются на случайно выбранных портах. Действительно ли ОС предотвращает привязку к этому случайно выбранному порту? Или я это неправильно интерпретирую? Похоже, есть какая-то логика для переноса сеанса на другой порт. Не могу представить, чтобы это было редкостью.

Действительно ли ОС предотвращает привязку к этому случайно выбранному порту?

Если порт используется, значит, он уже используется. Не имеет значения, был ли он назначен случайным образом или явно выбран, важно только то, что он используется. Рекомендуется не привязывать службы к портам из временного диапазона портов, потому что тогда именно это может произойти.