Mogłeś poczuć kod błędu wskazujący, że te puste uprawnienia 80 zostały odrzucone podczas inicjowania punktu końcowego java.net.bindexception. Okazuje się, że było kilka sposobów na rozwiązanie tego problemu iz pewnością właśnie to zrobimy teraz.
Kupiłem, aby zostawić 6 tomcat (na CentOS) w odniesieniu do portów 81 i 443, ale podczas uruchamiania Tomcata wystąpił ten konkretny błąd:
ASR Pro to najlepsze rozwiązanie dla potrzeb naprawy komputera! Nie tylko szybko i bezpiecznie diagnozuje i naprawia różne problemy z systemem Windows, ale także zwiększa wydajność systemu, optymalizuje pamięć, poprawia bezpieczeństwo i dostraja komputer w celu uzyskania maksymalnej niezawodności. Więc po co czekać? Zacznij już dziś!
SERIOUS: Niepowodzenie na początku Punkt końcowy Java dla .net.BindException: Odrzucono zezwolenie < null>:80 na org.apache. kocur. util .net.JIoEndpoint.init(JIoEndpoint.java:549) w org.apache.tomcat.util.not. JIoEndpoint.start(JIoEndpoint.java:565) na org.apache.coyote.http11.Http11Protocol.start(Http11Protocol.java:203) na org.apache.catalina.connector.Connector.start(Złącze. java:1080) do org.apache.catalina.core.StandardService.start(StandardService.java:531) do org.apache.catalina.core.StandardServer.start(StandardServer.java:710) na org.apache.catalina.startup.Catalina.start(Catalina.java:593) na sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) na sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java :57) w sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) w java.lang.reflect.Method.invoke(Method.java:606) w org.apache. catalina.startup.Bootstrap.start(Bootstrap.java:289) w org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) Wywoływane przez proces: java. net.BindException: Permission denied dla java.net.PlainSocketImpl.socketBind(natywna metoda) dla java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376) dla java.net.ServerSock (ServerSocket.java:376) do java.net.ServerSocket.(ServerSocket.java:237) do java.net.ServerSocket.(ServerSocket.java:181) do org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:50) do org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint. java:538) .. .czternaście więcej
2015-03-04 09:35:46 org.apache.catalina.startup.Catalina start POWAŻNE: Catalina.start: LifecycleException: service." getname(): Katalina”; Joe nie mógł uruchomić programu obsługi protokołu: .net.BindException: Permission denied Org :80 on.apache.catalina.connector.Connector.start(Connector. java:1087) na org.apache.catalina .core.StandardService.start(StandardService.java:531) na org.apache.catalina.core.StandardServer.start(StandardServer.java:710) na org.apache.catalina.startup.Catalina.start (Catalina.java:593) na sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) na sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java :57) na sun.reflect.DelegatingMethod.Accessor invoke(DelegatingMethodAccessorImpl. java:43) na java.lang.reflect.Method.invoke(Method.java:606) na org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) na org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Okazuje się, że wszystkie aplikacje powiązane z podgniazdami 1024 muszą mieć uprawnienia administratora. Jest to zapewnione zgodnie z projektem.
Obejście: nie ustawiaj Tomcata, aby uzyskiwał dostęp do roota (to jest złe), po prostu utwórz zwykły NAT z iptables (lub zaporą sieciową):
1 2
iptables -t nat -A PREROUTING -p tcp > -dport81 -j FORWARD --do portu 8080 iptables -t nat -A PREROUTING -p tcp --dport 443 -b FORWARD --dotyczy portu 8443
< /tr>< /table>
Powiązane treści
Nie znaleziono powiązanych treści
próbować
Powiązałeś ważny port tylko w środowisku Linux i otrzymałeś komunikat o błędzie „Odmowa dostępu”. Zwykle są to wtyczki 80443 lub .
Powód
Porty 768 poniżej są nazywane portami wdzięcznymi i nie powinny być otwierane przez określonego użytkownika innego niż root tylko w Den Linux (i praktycznie w UNIX warianty i systemy typu UNIX). użytkownik nie jest w stanie skonfigurować złośliwej usługi na jednym, bardziej znanym porcie usługi.
Rozdzielczość
7 . Czerwiec 2012 16:58:57 org.apache.coyote.http11.InitFATAL: protokół http11 nie powiódł się jako sposób na zainicjowanie punktuJava final .net.: bindException: uprawnienie 80 odrzucone na org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:549) pod adresem org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:176) pod adresem org.apache.catalina.connector.Connector.initialize(Connector.java:1022) pl on line.apache.catalina.core.StandardService.initialize(StandardService.java:703) Zainicjuj na.apache.catalina.core.StandardServer.initialize(StandardServer.java:838) Pod adresem org.apache.catalina.startup.Catalina.load (Catalina.java:538) Organizacja na.apache.catalina.startup.Catalina.load (Catalina.java:562) więc teraz w sun.reflect.NativeMethodAccessorImpl.(własna metoda invoke0) W sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) In sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) Przechodząc do java.lang.reflect.Method.invoke(Method.java:597). Organizacja pod adresem .apache.catalina.startup.Bootstrap.load (Bootstrap.java:261) pod adresem org.apache.catalina.startup.Bootstrap.main (Bootstrap.java:413)Spowodowane po prostu: java.net.BindException: Odmowa uprawnień Na java.net.PlainSocketImpl.socketBind (metoda natywna) Na Javie znajduje się.net.PlainSocketImpl.bind (PlainSocketImpl.java:383) do java.net.ServerSocket.bind(ServerSocket.java:328) do java.net.ServerSocket.(ServerSocket.java:194) java do faktycznie .net.ServerSocket.(ServerSocket.java:150) Instalacja organizacyjna za pomocą.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:50) Organizacja pod adresem.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:538) …9 więcej7 czerwca 4:58:57 2012 Org pm.apache.catalina.core.Initialize StandardServiceKRYTYCZNY: Nie udało się zainicjować [łącznika [HTTP/1. 1-80]]lifecycleexception: Podpisywanie inicjalizacji Drejera nie powiodło się: protokół java.net.BindException: Uprawnienie odrzucone : 80 od faktycznie pochodzi org.apache.catalina.connector.Connector.initialize(Connector.java:1024) Worldwide-web pod adresem.apache.catalina.core.StandardService.initialize(StandardService.java:703) Organizacja pod adresem.apache.catalina.core.StandardServer.initialize(StandardServer.java:838) Pod adresem org.apache.catalina.startup.Catalina.load (Catalina.java:538) Organizacja na.apache.catalina.startup.Catalina.load (Catalina.java:562) at sun.reflect.NativeMethodAccessorImpl.(metoda natywna invoke0) W sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) In sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) w java.lang.reflect.Method.invoke(Method.java:597) W org.apache.catalina.startup.Bootstrap.load (Bootstrap.java:261) Znaleziono na org.apache.catalina.startup.Bootstrap.main (Bootstrap.java:413).
Zainstaluj, aby skonfigurować Apache lub może nginx jako zwrotny serwer proxy, który może nawet pozostać uruchomiony jako root, aby otworzyć port, a ponadto podobny i następnie obniż go. uprawnienia do normalnego użytkownika.
Ustaw firewall na poziomie sieci z iptables lub alternatywą, tak aby niższy numer portu był stale przekazywany, aby pomóc ci wyższy numer portu odziedziczony z Confluence.
Użyj jsvc, który może faktycznie otwierać prts jako root, a następnie ogranicz uprawnienia.
Użyj authbind to Z pewnością ustawisz dla nich uprawnienia, w końcu, aby użytkownicy niebędący rootami mogli otworzyć wygodny port.
jeśli używasz Linuksa 2.6.24 lub nowszego, możesz skonfigurować funkcję pliku w całym pliku wykonywalnym Java, aby przyznać rozszerzony odczyt zapisu tylko do otwierania uprzywilejowane porty i niewiele więcej uprawnień administratora:< br >