Назад | Перейти на главную страницу

authbind + java + ubuntu по-прежнему не работает - почему?

Обратите внимание:

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 сервер работает должным образом.

Любые идеи?

Спасибо.

P.S.

Добавление --deep параметр authbind или -Djava.net.preferIPv4Stack Свойство java не имеет значения.

РЕДАКТИРОВАТЬ

Я установил tomcat6. Он прослушивает порт 8080. Я могу получить его индексную страницу локально, но не извне, используя предоставленное DNS имя машины. Однако, если я изменю его порт с 8080 на 11111, то смогу добраться до него извне. Это означает, что сервер Tomcat в отношении этой проблемы ведет себя точно так же, как мой собственный.

У меня была такая же проблема, когда я использовал Ubuntu 12.04.3 и пытался запустить Java-приложение с помощью authbind. Добавление -Djava.net.preferIPv4Stack=true решил проблему для меня.

Очевидно, java пыталась открыть порт на IPv6-адресе, который authbind, похоже, еще не поддерживает.

Вы можете проверить разрешение, указанное в stacktrace. Скорее всего, у пользователя markk нет прав на ваши действия

Serverfault может быть не лучшим местом для ответа на ваш вопрос, поскольку мы не можем загрузить программу, которую вы пишете, и отладить ее самостоятельно. Вы можете задать свой вопрос о stackoverflow.

Во-первых: убедитесь, что это реальная проблема, связанная с системным администратором. Вы можете сделать это, попытавшись запустить tomcat, который делает работать в той конфигурации, которую вы пытаетесь.

Если вы не можете заставить Tomcat работать, спросите об этом - велики шансы, что решение этой проблемы решит ту, которая у вас есть.

С другой стороны, если вы жестяная банка Чтобы Tomcat работал легко, вы можете больше времени уделять изучению своего приложения и, возможно, попытаться задать вопрос, связанный с программированием, в Stack Overflow.