J'exécute un serveur tomcat sur une ubuntu
machine hébergée dans une instance AWS. Je peux atteindre le serveur via public_ip:8080
mais lorsque je change le port d'écoute server.xml
de 8080
à la 80
connexion est refusée par l'hôte distant.
Le numéro de port 80
est activé AWS firewall
.
J'ai vérifié ufw
via sudo ufw status
mais le résultat estinactive
Le ufw
front-end du mécanisme de pare-feu sous-jacent?
Comment puis - je activer le port 80
sur firewall
?
Merci d'avance.
Sortie de iptables -S
:
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
Sortie de netstat -punta
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 785/mysqld
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 613/sshd
tcp 0 0 172.31.1.56:22 92.45.23.114:3913 ESTABLISHED 5825/sshd: ubuntu [
tcp 0 0 172.31.1.56:22 92.45.23.114:19374 ESTABLISHED 7320/sshd: ubuntu [
tcp 0 0 172.31.1.56:22 92.45.23.114:28051 ESTABLISHED 6901/sshd: ubuntu [
tcp 0 272 172.31.1.56:22 92.45.23.114:9327 ESTABLISHED 7428/sshd: ubuntu [
tcp 0 0 172.31.1.56:22 92.45.23.114:7597 ESTABLISHED 7034/sshd: ubuntu [
tcp 0 0 127.0.0.1:3306 127.0.0.1:45655 ESTABLISHED 785/mysqld
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 7275/java
tcp6 0 0 :::8080 :::* LISTEN 7275/java
tcp6 0 0 :::22 :::* LISTEN 613/sshd
tcp6 0 0 127.0.0.1:45655 127.0.0.1:3306 ESTABLISHED 7275/java
udp 0 0 0.0.0.0:68 0.0.0.0:* 538/dhclient3
Sortie netstat -na |grep \:80
avant de changer de port 80
:
tcp6 0 0 127.0.0.1:8005 :::* LISTEN
tcp6 0 0 :::8080 :::* LISTEN
Sortie netstat -na |grep \:80
après avoir changé de port 80
:
tcp6 0 0 127.0.0.1:8005 :::* LISTEN
Sortie du navigateur sur le port 80
:
ERROR
The requested URL could not be retrieved
The following error was encountered while trying to retrieve the URL: http://54.194.236.229/TransportationAutomation/personnel.xhtml
Connection to 54.194.236.229 failed.
The system returned: (111) Connection refused
The remote host or network may be down. Please try the request again.
Your cache administrator is webmaster.
Generated Fri, 14 Feb 2014 15:01:06 GMT by proxy (squid/2.7.STABLE7)
Définition de port partie de server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
partie de Catalina.out lors du démarrage de tomcat sur port 80
:
Feb 14, 2014 3:04:25 PM org.apache.coyote.AbstractProtocol init
SEVERE: Failed to initialize end point associated with ProtocolHandler ["http-bio-80"]
java.net.BindException: Permission denied <null>:80
at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:391)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:554)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:409)
at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:956)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:815)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.startup.Catalina.load(Catalina.java:594)
at org.apache.catalina.startup.Catalina.load(Catalina.java:619)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:449)
Caused by: java.net.BindException: Permission denied
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
at java.net.ServerSocket.bind(ServerSocket.java:376)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at java.net.ServerSocket.<init>(ServerSocket.java:181)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49)
at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:378)
... 17 more
MISE À JOUR 2:
J'ai installé tomcat via apt-get
c'est donc une version reconditionnée de tomcat. Ici, il est dit que l'exécution de tomcat en tant que root résoudra le problème, mais ici, il Tomcat should not be run under the root user.
est dit qu'il n'y a pas de moyen possible de le gérer avec l'instance tomcat reconditionnée?
MISE À JOUR 3:
apt-get
, je tiens à souligner que le changement de portserver.xml
n'est généralement pas suffisant, car le port 80 est un port privilégié. Avez-vous vérifiécatalina.out
pour voir si vous avez un message d'erreur?Réponses:
Oui, ça l'est. C'est comme une version facile à utiliser d'iptables. Essayez d'écrire, pour voir les règles du pare-feu iptables:
Vous pouvez ouvrir pour le port 80 en utilisant:
Je peux décrire cette ligne pour vous, si vous en avez besoin. Dis-moi :-)
la source
sudo iptables -L
isChain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
Il serait parfait de décrire la ligne qui vise à ouvrir le port 80. Merci d'avance.Cela a fonctionné pour moi:
Exécuter en tant que root:
la source