Я написал сценарий оболочки для сканирования портов системы с помощью nmap.
Я ищу номер порта, например 515, который используется службой печати Line Printer Daemon, и если он там есть, я могу сказать, что это принтер, поскольку у принтера есть только этот демон.
Я не знаю, может ли этот порт использоваться каким-либо другим процессом. Если да, то любезно расскажите мне об этом, возможно ли использовать известный порт нашим собственным процессом.
Если да, то я не могу сказать, что это принтер, поскольку пользователь порта не всегда является принтером.
Thnaks
Вы можете использовать этот порт, если на нем больше ничего не работает. Также вам потребуются более высокие привилегии при запуске процесса, чтобы иметь возможность требовать этот порт.
Для любого порта официальное использование номера порта не обязательно означает, что там действительно работает.
100% гарантий нет. Всегда возможно, что кто-то решил поставить что-то еще на этот порт. В некоторых случаях «официальное» использование порта уже указывает на то, что существует более одной возможности.
Вот почему у nmap есть опция -sV: это пытается проверить, что на самом деле работает на порту.
С учетом всего вышесказанного: вероятность того, что кто-то злоупотребит одним из наиболее распространенных портов (например, 515) для чего-то другого, кроме предполагаемого нормального использования, очень мала.
Это такой угловой случай, что я обычно даже не стал бы беспокоиться о nmap -sV, если только я не подозреваю, что кто-то намеренно возится.
Я не совсем понимаю, о чем вы спрашиваете:
Вы спрашиваете, могут ли "зарезервированные" порты использоваться только связанным приложением, так что если вы видите, что порт 25 используется, например, то все, что на нем запущено должен быть SMTP-сервером, потому что это порт SMTP? Если да, то ответ - «Нет». По сути, это «первым пришел - первым обслужен» для привязки к порту.
ИЛИ
Вы спрашиваете, можете ли вы взять порт, который обычно используется одним процессом, и использовать его для другого процесса? Если да, то ответ «да» - см. Первую часть моего ответа. Вам просто нужно остановить другой процесс, захватывающий порт, а затем вы можете выполнить привязку к нему самостоятельно.