请注意:
markk@ip-10-203-82-54:~/work/gl$ uname -a
Linux ip-10-203-82-54 3.2.0-25-virtual #40-Ubuntu SMP Wed May 23 22:20:17 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
markk@ip-10-203-82-54:~/work/gl$ ls -la /etc/authbind/byport/80
-rwxrwx--- 1 markk markk 0 Aug 16 10:00 /etc/authbind/byport/80
markk@ip-10-203-82-54:~/work/gl$ authbind /usr/bin/java -Dcom.shunra.gl.ports=80 -jar server.jar
java.net.SocketException: Permission denied
at sun.nio.ch.Net.bind(Native Method)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:137)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:77)
at org.simpleframework.transport.connect.Acceptor.bind(Acceptor.java:171)
at org.simpleframework.transport.connect.Acceptor.<init>(Acceptor.java:88)
at org.simpleframework.transport.connect.Listener.<init>(Listener.java:78)
at org.simpleframework.transport.connect.ListenerManager.listen(ListenerManager.java:90)
at org.simpleframework.transport.connect.ListenerManager.listen(ListenerManager.java:73)
at org.simpleframework.transport.connect.SocketConnection.connect(SocketConnection.java:106)
at org.restlet.ext.simple.HttpServerHelper.start(HttpServerHelper.java:93)
at org.restlet.Server.start(Server.java:585)
at org.restlet.Component.startServers(Component.java:601)
at org.restlet.Component.start(Component.java:528)
at com.shunra.gl.Main.main(Unknown Source)
^Cmarkk@ip-10-203-82-54:~/work/gl$
该机器位于亚马逊云中。
值得一提的是,当以 root 身份运行时,服务器按预期工作。
有任何想法吗?
谢谢。
聚苯乙烯
添加--deep
authbind 选项或-Djava.net.preferIPv4Stack
java 属性没有区别。
编辑
我已经安装了tomcat6。它在端口 8080 上侦听。我可以在本地获取其索引页面,但不能使用 DNS 提供的机器名称从外部获取。但是,如果我将它的端口从 8080 更改为 11111,那么我就可以从外部访问它。这意味着,在这个问题上,tomcat 服务器的行为与我自己的完全一样。
我有同样的问题,使用 Ubuntu 12.04.3 并尝试使用 authbind 启动 Java 应用程序。添加
-Djava.net.preferIPv4Stack=true
为我解决了这个问题。显然 java 试图打开 IPv6 地址上的端口,authbind 似乎还不支持。
您可以检查堆栈跟踪中所述的权限。很可能 markk 用户无权执行您的操作
Serverfault 可能不是您提出问题的最佳地点,因为我们无法下载您正在编写的程序并自行调试。您可能想在 stackoverflow 上提问。
第一:确认这是一个实际的系统管理员相关问题。您可以通过尝试运行在您尝试的配置中工作的tomcat 来做到这一点。
如果您无法让 Tomcat 工作,那么请询问 - 解决该问题很可能会解决您遇到的问题。
另一方面,如果您能让Tomcat 轻松工作,您就可以花更多时间查看您的应用程序,也许可以尝试在 Stack Overflow 上询问与编程相关的问题。