Я обнаружил, что привязка к порту с помощью Java-программы не позволяет другим приложениям использовать данный порт. Однако, если приложение уже использует порт, Java-программа не может быть использована для этого. Если права администратора недоступны, как можно заблокировать трафик на таком порту?

2 ответа2

1

Вы можете попробовать что-то вроде использования команды netstat -o или любой другой альтернативы, доступной на вашей платформе, чтобы определить процесс, использующий порт, который вы хотите заблокировать (при условии, что вы еще не знаете процесс-нарушитель). Если у вас есть достаточный доступ (обычно это означает «если это программа, выполняемая в вашей учетной записи пользователя»), вы можете затем завершить этот процесс (или, возможно, принудительно закрыть сокет с помощью API отладки, но это сложно и зависит от платформы) и открыть сокет себя, не разрешая общий доступ, таким образом блокируя другие процессы от его использования.

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

Следует отметить, что вы не можете помешать администратору разблокировать порт, если он попытается. Они могут убить ваш процесс, который держит порт открытым. Возможно, они вообще могут помешать вам открыть порт, используя что-то вроде AppArmor или расширенный брандмауэр Windows. Они также могут просто создать процесс, который запускается при запуске системы (даже до того, как вы войдете в систему) и резервировать этот порт через процесс, который не администраторы не могут уничтожить.

0

Порты 1024 и ниже считаются «привилегированными» портами, и, следовательно, только пользователи с доступом к корневому уровню могут запускать службы на этих портах. Порты 1025 и выше не считаются привилегированными портами, поэтому любой пользователь может запускать службы на них. См. Http://www.w3.org/Daemon/User/Installation/PrivilegedPorts.html для получения дополнительной информации.

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