ทำไม“ nc -l xxxx” ไม่เปิดพอร์ต


15

ฉันพยายามทำให้ netcat ฟังบนพอร์ต 4444 แต่ดูเหมือนจะไม่ทำงาน ฉันกำลังตรวจสอบเพื่อดูว่าพอร์ตเปิดอยู่โดยใช้ nmap หรือไม่ แต่ไม่สามารถรับได้และฉันไม่สามารถหาสาเหตุได้ ฉันได้ลองพอร์ตต่าง ๆ โดยไม่มีความสุข

นี่คือสำเนาเทอร์มินัลของฉันเพื่อให้คุณสามารถเห็นสิ่งที่ฉันทำและสิ่งที่ฉันได้ลอง:

#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


# nmap localhost -p 4444

Starting Nmap 5.61TEST4 ( http://nmap.org ) at 2012-07-31 16:37 BST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00019s latency).
Other addresses for localhost (not scanned): 127.0.0.1
PORT     STATE  SERVICE
4444/tcp closed krb524

Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds


# nc -l 4444 &
[1] 1951


# nmap  localhost -p 1-65535

Starting Nmap 5.61TEST4 ( http://nmap.org ) at 2012-07-31 16:42 BST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000070s latency).
Other addresses for localhost (not scanned): 127.0.0.1
Not shown: 65532 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
7337/tcp  open  unknown
33507/tcp open  unknown

Nmap done: 1 IP address (1 host up) scanned in 1.37 seconds


# ps -e | grep nc
   12 ?        00:00:00 sync_supers
 1156 tty1     00:00:00 ck-launch-sessi
 1232 tty1     00:00:00 dbus-launch
 1274 ?        00:00:00 klauncher
 1951 pts/2    00:00:00 nc

คำตอบ:


18

ฉันวิ่งโหมด verbose -vและได้เบาะแสกลับมา:

4444: inverse host lookup failed: Unknown server error : Connection timed out`
listening on [any] 41579 ...`

ดังนั้นฉันจึงพยายามระบุพอร์ตด้วย-pเช่นนี้nc -lvp 4444และใช้งานได้:

listening on [any] 4444 ...

เห็นได้ชัดว่าฉันต้องใช้-pกับ-lnc รุ่นนี้

ฉันจะรักถ้าใครสามารถบอกฉันได้ว่าทำไมถึงมีความแตกต่างนี้ ฉันใช้เวอร์ชั่นเก่าหรือไม่? ( -hรายงานv1.10-38)


5
Netcat (NC) มีเวอร์ชันต่าง ๆ มากมาย -lpไวยากรณ์จากรุ่นเดิมของฮอบบิทผมเชื่อว่า รุ่นที่ได้มาจาก BSD ห้ามใช้กับ-p หลายคนไม่สนับสนุน-l -eตรวจสอบ man page ของการติดตั้งหรือ-hเอาต์พุตตัวเลือกเสมอ
bonsaiviking

1
เพียงตอบคำถามของคุณว่าคุณใช้เวอร์ชั่นเก่าหรือไม่ฉันก็ตอบว่าใช่ 1.89-3 หุ้นที่นี่
เทา

1
ขอบคุณเพื่อน. ที่อธิบายถึงความไม่สอดคล้องกันระหว่าง Linux nc ของฉัน (รุ่น hobbit / debian) และ OS X nc ของฉัน (รุ่น BSD)
Grezzo

คุณอาจติดตั้งไว้netcat-traditionalแทนnetcatหรือnetcat-openbsd
SeMeKh

ในการติดตั้งเดเบียน 8.6 สด -p เป็นสิ่งจำเป็นสำหรับพอร์ตและฉันสามารถยืนยันได้ว่า netcat ดั้งเดิมติดตั้งโดยค่าเริ่มต้น (ตรวจสอบโดย apt)
George Vasiliou
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.