我正在尝试使用 SBT 运行我的 Scala 代码,但出现以下错误。使用命令行的 SBT 和 IntelliJ Idea 都会发生这种情况。
[error] (run-main) org.jboss.netty.channel.ChannelException:
Failed to bind to: /127.0.0.1:80
org.jboss.netty.channel.ChannelException: Failed to bind to: /127.0.0.1:80
....
....
Caused by: java.net.SocketException: Permission denied
我应该配置什么来允许端口访问。当我尝试在本地 Mac 和远程 Ubuntu 服务器上运行时,都会发生这种情况。
使用“sudo sbt”运行 sbt 可以解决问题,但这不是解决方案。我在哪里可以设置允许我的 Scala 应用程序访问端口 80 的权限。
最佳答案
这个问题的解决方案将取决于操作系统,而不是 SBT、Scala 或 Java 可能做的任何事情。
例如,Debian 建议 three different solutions ,所有这些都可以在其他 Linux 发行版上使用——其中两个是作为 root 运行的变体,第三个使用 iptables 来伪造端口 80 上的监听。
在 FreeBSD 上,可以完全禁用低端口限制,而 Solaris 可以按端口和用户这样做,如所述(两者都适用)here .
关于scala - 通过 SBT 运行 Scala 应用程序时拒绝绑定(bind)到端口的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9157001/