Почему IntelliJ хочет принимать входящие сетевые подключения?

➠ Какая функция в IntelliJ действует как сервер для приема входящих соединений?

При первом запуске IntelliJ 2017.1.1 я получаю диалоговое окно с запросом разрешения на входящие сетевые подключения.

Вы хотите, чтобы приложение "java" принимало входящие сетевые подключения?

При нажатии кнопки "Запретить" можно ограничить поведение приложений. Этот параметр можно изменить на панели брандмауэра настроек безопасности и конфиденциальности.

[Отклонить] [Разрешить]

снимок экрана диалогового окна с просьбой разрешить принимать входящие сетевые подключения

Пример диалога, появляющегося при новой установке IntelliJ 2017.2 Ultimate edition, в мастере создания проекта, при нажатии на вкладку Maven.

Снимок экрана с сообщением о брандмауэре Apple macOS с запросом

Почему IntelliJ вызывает это приглашение? У меня не было такого события при запуске NetBeans.

Что именно означает отрицание или принятие? Я заинтересован в том, чтобы позволить Java-процессу принимать внешние сетевые подключения, так как это серьезный риск для безопасности.

Возможно, связано с:


Этот вопрос касается не источника сообщения. Источником является Apple macOS брандмауэр уровня приложения. Вы можете разрешить или заблокировать приложение для прослушивания входящих сетевых подключений. Разрешение на риск.

IntelliJ просит добавить в список приложений, разрешенных для прослушивания входящих сообщений. Мой вопрос: "Почему IntelliJ должен принимать входящие сетевые подключения?".

безопасность и конфиденциальность > Брандмауэр" >

Ответ 1

Проще говоря, он связан с приведенным ниже.

Если вы нажмете http://localhost:63342/, вы сможете получить доступ к встроенный сервер. Который по умолчанию должен прослушивать только локальный интерфейс.

Встроенный сервер IntelliJ

Открытый порт в диапазоне 6942-6992, похоже, связан с SocketLock.java

myServer = BuiltInServer.startNioOrOio(workerCount, 6942, 50, false, handler);

Примечание. Порты 6953, 6969, 6970 исключаются из этого диапазона. См. BuiltInServer.java

private static final int[] FORBIDDEN_PORTS = {6953, 6969, 6970};

Другой открытый порт связан с процессом org.jetbrains.idea.maven.server.RemoteMavenServer

jps -l | grep jetbrains
24628 org.jetbrains.idea.maven.server.RemoteMavenServer

Вы можете узнать открытый порт с помощью netstat

on Linux: `netstat -ltupne`
on OSX (something like): nettop -np java

и связанные с ним процессы java с jps (как показано выше)

Ответ 2

так как это серьезный риск для безопасности.

Это не так, если вы не доверяете конкретному продукту. И если вы не доверяете продукту, почему вы используете его вообще?

IntelliJ необходимо периодически проверять свою лицензию, подключаться к серверам обновлений, репозиториям maven, репозиториям плагинов, серверам внешних приложений, к которым вы можете подключиться, а также к серверам баз данных.

Netbeans нуждается в том же, вы, без сомнения, просто забыли, что вы дали ему разрешение в какой-то момент, или он использует внешнюю JVM, которую вы дали в какой-то момент.