通过SBT运行Scala应用程序时,权限被拒绝绑定到端口

Jac*_*ack 6 scala sbt netty

我正在尝试使用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
Run Code Online (Sandbox Code Playgroud)

我配置什么来允许端口访问.当我尝试在我的本地Mac和远程Ubuntu服务器上运行时,会发生这种情况.

使用"sudo sbt"运行sbt可以解决问题,但这不是解决方案.我在哪里可以设置允许我的Scala应用访问端口80的权限.

Dan*_*ral 4

这个问题的解决方案将取决于操作系统,而不是 SBT、Scala 或 Java 可能做的任何事情。

例如,Debian 提出了三种不同的解决方案,所有这些都可以在其他 Linux 发行版上使用——其中两个是以 root 身份运行的变体,第三个使用 iptables 来伪造监听端口 80。

在 FreeBSD 上,可以完全禁用低端口限制,而 Solaris 可以针对每个端口和用户执行此操作,如此处所述(针对两者