为什么IntelliJ想要接受传入的网络连接?

➠IntelliJ中的哪些function充当接受传入连接的服务器?

首次运行IntelliJ 2017.1.1时,我收到一个对话框,询问传入网络连接的权限。

您是否希望应用程序“java”接受传入的网络连接?

单击“拒绝”可能会限制应用程序的行为。 可以在“安全和隐私”首选项的“防火墙”面板中更改此设置。

[否认允许]

请求权限接受传入网络连接的对话框的屏幕截图

单击Maven选项卡时,在New Project向导中全新安装IntelliJ 2017.2 Ultimate Edition时出现的对话框示例。

在“新建项目”向导的Maven选项卡中询问“您希望应用程序java接受传入的网络连接”的Apple macOS防火墙消息的屏幕截图

为什么IntelliJ会导致此提示? 运行NetBeans时我没有遇到这样的事件。

拒绝或接受的影响究竟是什么? 我担心让Java进程接受外部网络连接,因为这样做会带来严重的安全风险。

可能与以下内容有关:

  • 问题: 如何将IntelliJ IDEA随机开放端口仅绑定到localhost?
  • 问题IDEA-175889:IDE在某些配置中打开通配符接口上的随机端口

这个问题不是关于消息的来源。 源是Apple macOS 应用级防火墙 。 您可以允许或阻止应用程序侦听传入的网络连接。 允许这是一个安全风险

IntelliJ要求添加到允许侦听传入消息的应用程序列表中。 我的问题是,“为什么IntelliJ需要接受传入的网络连接?”。

系统偏好设置>安全和隐私>防火墙”>

可能它与下面的内容有关。

如果单击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 

以及与jps相关的java进程(如上所示)

这样做是一个严重的安全风险。

它不是,除非您不信任特定产品。 如果您不信任某个产品,为什么还要使用它?

IntelliJ需要偶尔检查一下它的许可证,连接到更新服务器,maven存储库,插件存储库,你可能想要连接的外部应用程序服务器,与数据库服务器同上。

Netbeans需要相同,你无疑只是忘了你在某些时候给了它许可,或者它使用了你在某个时候允许的外部JVM。