Ubuntu AWS पर पोर्ट 80 खोलना


11

मैं ubuntuएक एडब्ल्यूएस उदाहरण में होस्ट की गई मशीन पर एक टॉमकैट सर्वर चला रहा हूं । मैं सर्वर के माध्यम से पहुंच सकता हूं public_ip:8080लेकिन जब मैं सुनने के पोर्ट को कनेक्शन server.xmlसे बदल देता हूं तो दूरस्थ होस्ट द्वारा मना कर दिया जाता है।808080

पोर्ट नंबर 80पर सक्षम है AWS firewall

मैं के ufwमाध्यम से जाँच की , sudo ufw statusलेकिन परिणाम हैinactive

है ufwअंतर्निहित फ़ायरवॉल तंत्र के सामने के अंत?

मैं पोर्ट 80को कैसे सक्षम कर सकता हूं firewall?

अग्रिम धन्यवाद।

का ओपट्ट iptables -S:

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT

का आउटपुट 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

netstat -na |grep \:80पोर्ट बदलने से पहले का आउटपुट 80:

tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN
tcp6       0      0 :::8080                 :::*                    LISTEN

netstat -na |grep \:80पोर्ट बदलने के बाद का आउटपुट 80:

tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN

पोर्ट पर ब्राउज़र का आउटपुट 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)

पोर्ट परिभाषा का हिस्सा server.xml

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           URIEncoding="UTF-8"
           redirectPort="8443" />

Catalina.out का हिस्सा जब टॉमकट शुरू कर रहा है 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 

अद्यतन 2:

मैंने टॉमकैट स्थापित किया है apt-getइसलिए यह टॉमकैट का एक रीपैकेड संस्करण है। यहाँ यह कहता है कि टॉमकैट को रूट के रूप में चलाने से समस्या का समाधान हो जाएगा, लेकिन यहाँ पर यह कहा गया Tomcat should not be run under the root user.है कि इस तरह के रेकेटेड टोमैट उदाहरण के साथ इसे संभालने का कोई संभावित तरीका नहीं है?

अद्यतन 3:

मुझे लगता है कि यह मेरे सवाल का जवाब है


कृपया अपने server.xml के प्रासंगिक अनुभागों, iptables -S के आउटपुट, और आदर्श रूप से प्रासंगिक आउटपुट को शामिल करें, जिसमें शामिल है netcat -punta से चल रहा है।
डैनियल विड्रिक

यदि आपने टॉमकैट का उपयोग करके स्थापित किया है apt-get, तो मैं केवल यह बताना चाहता हूं कि पोर्ट को बदलना server.xmlआमतौर पर पर्याप्त नहीं है, क्योंकि पोर्ट 80 एक विशेषाधिकार प्राप्त पोर्ट है। क्या आपने यह देखने के catalina.outलिए कि क्या आपके पास कोई त्रुटि संदेश है?
डेविड लेवेस्क

इससे पहले कि आप server.xml में पोर्ट बदलें, netstat -na | grep \: 80 का आउटपुट क्या है ? उसके बाद जब आप server.xml में पोर्ट बदलते हैं और जेट्टी को फिर से शुरू करते हैं, तो netstat -na | grep \: 80 का आउटपुट क्या है ? यह एक फ़ायरवॉल समस्या नहीं लगती है।
19

मैं डेबियन मट्ठा चला रहा हूं और मुझे पता चला है कि मुझे /etc/init.d/tomcat7
Ruut

जवाबों:


11

हाँ यही है। यह iptables के एक आसान-से-उपयोग संस्करण की तरह है। Iptables फ़ायरवॉल नियम देखने के लिए लिखने का प्रयास करें:

$ sudo iptables -L

आप पोर्ट 80 का उपयोग करके खोल सकते हैं:

$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

मैं इस लाइन का वर्णन आपके लिए कर सकता हूँ, अगर आपको इसकी आवश्यकता है। बस मुझे बताओ :-)


के उत्पादन में sudo iptables -Lहै Chain 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 यह लाइन है कि उद्देश्य बंदरगाह 80 advence धन्यवाद खोलने के लिए वर्णन करने के लिए उचित होगा।
गेस

मैं आपकी कमांड चलाता हूं और पोर्ट 80 खुला है, और मैं अपनी वेबसाइट तक पहुंच सकता हूं। फिर रिबूट होने के बाद, पोर्ट फिर से बंद हो गया है, मुझे हर बार इसे फिर से खोलना होगा। क्या इसे स्थायी रूप से खोलने का कोई तरीका है? मैं एक VPS पर Ubuntu 14.04 LTS चला रहा हूं
KoKo

AWS सर्वर EC2 (Ubuntu) पर एक नया व्यक्ति होने के नाते कई चीजों पर बहुत समय बिताया। मैंने एक अनुकूलित पोर्ट खोलने के लिए आपकी कमांड का उपयोग किया और यह काम किया। हालाँकि मैंने पहले ही उस कस्टमाइज़्ड पोर्ट को सिक्योरिटी ग्रुप, इनबाउंड सेक्शन में जोड़ दिया है लेकिन फिर भी एक्सेस नहीं कर पाया। आपके आदेश को चलाने के बाद मेरी वेबसाइट अनुकूलित पोर्ट पर मेरे ऐप के आवश्यक सर्वर पर चल रही है। वास्तव में सहायक है।
हम्माद हसन

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.