लिनक्स पर लोकलहोस्ट के लिए पोर्ट कैसे खोलें?


2

मैं Ubuntu 12.04 पर पोर्ट खोलने के बारे में पिछले एक घंटे से पढ़ रहा हूं और मुझे काम करने के लिए कुछ भी नहीं मिल रहा है। मैं एक आरपीसी सर्वर के साथ एक प्रोग्राम चला रहा हूं जो लोकलहोस्ट (127.0.0.1) पर स्थानीय कनेक्शन को स्वीकार करता है जिसने आईपी रेंज की अनुमति दी है192.168.*.*

मैंने आने वाले कनेक्शनों को अनुमति देने के लिए iptables को संपादित करने की कोशिश की है, लेकिन कर्ल अभी भी आरपीसी सर्वर से कनेक्ट नहीं हो सकता है, चाहे मैं कुछ भी करूं।

$ sudo iptables -A INPUT -i eth0 -p tcp --dport 18332 -j ACCEPT
$ nmap -v -sT localhost

Starting Nmap 5.21 ( http://nmap.org ) at 2013-07-13 05:54 UTC
Initiating Ping Scan at 05:54
Scanning localhost (127.0.0.1) [2 ports]
Completed Ping Scan at 05:54, 0.00s elapsed (1 total hosts)
Initiating Connect Scan at 05:54
Scanning localhost (127.0.0.1) [1000 ports]
Discovered open port 22/tcp on 127.0.0.1
Discovered open port 80/tcp on 127.0.0.1
Discovered open port 21/tcp on 127.0.0.1
Discovered open port 3389/tcp on 127.0.0.1
Discovered open port 3306/tcp on 127.0.0.1
Completed Connect Scan at 05:54, 0.05s elapsed (1000 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00060s latency).
Not shown: 995 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
80/tcp   open  http
3306/tcp open  mysql
3389/tcp open  ms-term-serv

Read data files from: /usr/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds
$ sudo iptables -A INPUT -i eth0 -p tcp --dport 18332 -m state --state NEW,ESTABLISHED -j ACCEPT
$ sudo iptables -A OUTPUT -o eth0 -p tcp --sport 18332 -m state --state ESTABLISHED -j ACCEPT
$ !nmap
nmap -v -sT localhost

Starting Nmap 5.21 ( http://nmap.org ) at 2013-07-13 05:57 UTC
Initiating Ping Scan at 05:57
Scanning localhost (127.0.0.1) [2 ports]
Completed Ping Scan at 05:57, 0.00s elapsed (1 total hosts)
Initiating Connect Scan at 05:57
Scanning localhost (127.0.0.1) [1000 ports]
Discovered open port 21/tcp on 127.0.0.1
Discovered open port 3306/tcp on 127.0.0.1
Discovered open port 22/tcp on 127.0.0.1
Discovered open port 3389/tcp on 127.0.0.1
Discovered open port 80/tcp on 127.0.0.1
Completed Connect Scan at 05:57, 0.05s elapsed (1000 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00072s latency).
Not shown: 995 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
80/tcp   open  http
3306/tcp open  mysql
3389/tcp open  ms-term-serv

Read data files from: /usr/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds

यहाँ कर्ल से आउटपुट है:

$ curl --user uname:upass --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getinfo", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:18332/
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (7) couldn't connect to host

जवाबों:


1

समस्या को दूर करने के लिए आपको अपने iptables फ़ायरवॉल नियमों की एक प्रति प्रदान करने की आवश्यकता है - कुछ इस तरह से / sbin / iptables -vnL पर्याप्त होगा।

मुझे संदेह है कि आपके पास एक फ़ायरवॉल है जहां अंतिम नियम "सब कुछ छोड़ दें" है। आपके द्वारा जोड़े गए नियम इस नियम के बाद तालिका के अंत में संलग्न किए गए थे और इस प्रकार निष्पादित नहीं किए गए थे। "Sudo iptables-A" शुरू करने के अपने नियमों को लिखने के बजाय शीर्ष पर नियमों को सम्मिलित करने के लिए "sudo iptables -I" आज़माएं।

यदि आप लोकलहोस्ट से कनेक्ट करने का प्रयास कर रहे हैं, तो भी, आपका कमांड सुडो "iptables-INPUT -i eth0 -p tcp --dport 18332 -j ACCEPT" त्रुटिपूर्ण है। आपने एक "-i eth0" निर्दिष्ट किया है, जो एक ईथरनेट उपकरण का अर्थ है। लोकलहोस्ट एक विशेष "लो" डिवाइस का उपयोग करता है। आप "-i eth0" पैरामीटर को छोड़ने से बेहतर हो सकते हैं, इसलिए यह सभी इंटरफेस पर काम करता है।

इसी तरह के कारणों के लिए आपका बयान "(127.0.0.1) जिसने आईपी रेंज 192.168 की अनुमति दी है " त्रुटिपूर्ण है, 192.68 के रूप में। 127.0.0.1 के लिए एक मार्ग से मेल नहीं खाना चाहिए, क्योंकि स्रोत आईपी पता "लो" इंटरफ़ेस होगा जो 127.0.0.1 के लिए बाध्य है।


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

iptables -I INPUT -i lo -j ACCEPT काम करेगा (LOcal इंटरफ़ेस से सभी ट्रैफ़िक को अनुमति देकर)। वैकल्पिक रूप से iptables -I INPUT -s 127.0.0.1 -j ACCEPT आपको उस IP पते को खोलने की अनुमति देगा। इन दोनों उदाहरणों से सभी ट्रैफ़िक के लिए पता खुल जाता है, लेकिन यह एक बड़ा सुरक्षा जोखिम नहीं है।
दाविदगो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.