Ubuntu + Jetty: требуется разрешение для обслуживания через порт выше 1024?

360
BluE

Я пытаюсь запустить Jetty в качестве службы на Ubuntu 16.04 на порту 8010. Сбой с SocketException: Разрешение отклонено.

Насколько я знаю, порты выше 1024 можно использовать бесплатно, поэтому мне интересно, почему я получаю эту ошибку и как ее исправить. Я пробовал порт 8080 раньше, который выдал ту же ошибку и еще одну: java.net.BindException: Адрес уже используется: bind. Вот почему я изменил его на порт 8010, который не используется.

Я знаю, что порты <1024 требуют корневого доступа, но, насколько я знаю, порты выше 1024 должны быть разрешены для использования без этого. Итак, как я могу предоставить своему сервису право связываться с портом?

Это выписка из журнала пристани:

2017-09-28 06:24:57.287:INFO:oejs.AbstractConnector:main: Started ServerConnector@48b22fd4 java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.eclipse.jetty.start.Main.invokeMain(Main.java:215) at org.eclipse.jetty.start.Main.start(Main.java:458) at org.eclipse.jetty.start.Main.main(Main.java:76)  Caused by: java.net.SocketException: Keine Berechtigung at sun.nio.ch.Net.bind0(Native Method) at sun.nio.ch.Net.bind(Net.java:433) at sun.nio.ch.Net.bind(Net.java:425) at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) 
0

1 ответ на вопрос

0
BluE

Оказалось, что Jetty пытается привязать к 2 портам: 8010 и 443, хотя в журнале он показывает только 8010 с ошибкой.

Изменение порта ssl на значение выше 1024 решило проблему.

Я пытался предоставить службе полный root-доступ, но это все равно не позволяло службе работать на порте ниже 1024.

Может быть проблема `SELinux``: это может помешать привязке причала к порту. user996142 7 лет назад 0

Похожие вопросы