首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过SBT运行Scala应用程序时,绑定到端口的权限被拒绝

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

Stack Overflow用户
提问于 2012-02-06 15:44:18
回答 3查看 5.5K关注 0票数 6

我试图用SBT运行我的Scala代码,但是得到了下面的错误。这既发生在使用命令行的SBT中,也发生在IntelliJ Idea中。

代码语言:javascript
运行
复制
    [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的权限。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-06 22:34:02

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

例如,Debian提出了three different solutions,所有这些都可以在其他Linux发行版上使用--其中两个是以根用户身份运行的变体,第三个是使用iptables在端口80上进行假监听。

在FreeBSD上,可以完全禁用低端口限制,并且可以针对每个端口和用户执行此操作,正如(针对两个) here所述。

票数 4
EN

Stack Overflow用户

发布于 2012-02-06 15:47:27

运行sbt和"sudo sbt“的

可以解决这个问题,但这不是解决方案。我可以在哪里设置允许我的Scala应用程序访问端口80的权限。

不过,我认为这是你唯一的解决方案。只有特权应用程序才能绑定到1024以下的端口。

也许您更喜欢在端口80上运行http代理(仅将代理作为根),或者使用一些ipfilter规则将传入端口80重新路由到端口8080?另请参见this answer

票数 4
EN

Stack Overflow用户

发布于 2012-02-06 16:33:24

您可能希望了解commons-daemon 1及其jsvc二进制文件。这允许您以root用户身份启动,并在执行某些任务后删除权限。这里的任务可以是绑定端口。

1

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9157001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档