Netcat - วิธีการฟังพอร์ต TCP โดยใช้ที่อยู่ IPv6


13

ฉันใช้ netcat รุ่นล่าสุด ( v1.10-41.1) ซึ่งดูเหมือนจะไม่มีตัวเลือกสำหรับที่อยู่ IPv6 (เหมือน-6ในรุ่นที่เก่ากว่าnc)

หากฉันพิมพ์nc -lvnp 2222และตรวจสอบพอร์ตการฟังด้วยnetstat -puntaเซิร์ฟเวอร์ดูเหมือนว่าจะฟังบนพอร์ต2222สำหรับที่อยู่ IPv4 เท่านั้น:

tcp        0      0 0.0.0.0:2222            0.0.0.0:*               LISTEN      2839/nc  

tcp6 ไม่ทำงานเช่นเซิร์ฟเวอร์ apache2 ของฉัน:

tcp6       0      0 :::80                   :::*                    LISTEN      -

คำตอบ:


17

มีการใช้งาน netcat อย่างน้อย 3 หรือ 4 ตัวตามที่เห็นใน Debian:

  • netcat ดั้งเดิม 1.10-41 ต้นฉบับซึ่งไม่รองรับ IPv6: อาจเป็นสิ่งที่คุณติดตั้ง
  • netcat6ซึ่งทำเพื่อเสนอ IPv6 (เก่าแก่, ถูกแทนที่)
  • netcat-openbsd 1.130-3 รองรับ IPv6 หรือไม่
  • ncat 7.70 + dfsg1-3 อาจใหม่กว่านี้เล็กน้อยเนื่องจากไม่ใช่ในเดเบียนเสถียรซึ่งจัดทำโดยnmapรองรับ IPv6

ฉันจะไปที่ openbsd แต่ละเวอร์ชันสามารถมีไวยากรณ์ที่แตกต่างกันอย่างละเอียดดังนั้นโปรดดูแล

โดยวิธีการ: socatเป็นเครื่องมือที่ดีกว่ามากที่สามารถทำได้มากกว่า netcat คุณควรลอง!


2
น่ากลัว ขอบคุณที่แนะนำsocatเครื่องมือ เห็นได้ชัดว่ามันมีตัวเลือกมากขึ้นและต่อไปนี้: socat tcp6-listen:2222ได้งาน
bashbin

2
@bashbin แต่ verbose อีกเล็กน้อยในไวยากรณ์ของมัน นั่นคือsocat tcp6-listen:2222,reuseaddr -(หรืออาจจะreuseportแทน) หากคุณต้องการใช้สองครั้งติดต่อกันเมื่อเซิร์ฟเวอร์ (คำสั่ง socat) ยกเลิกการเชื่อมต่อก่อน
AB

4

ฉันเชื่อว่าการทำงานของ ipv4 & ipv6 นั้นเป็นผลมาจากความสับสนว่ามีการใช้งานหลายอย่าง (forks) หรือรุ่นที่แตกต่างกันโดยสิ้นเชิง nc6หากคุณค้นหาคุณจะสะดุดในการกล่าวถึง การใช้งานนี้ดูเหมือนจะอยู่ในความผิดเพี้ยนจากฐาน BSD

ฉันจะลองติดตั้งnc6ใน distro เฉพาะของคุณและเรียกใช้แทนncการสนับสนุน ipv6

การวิจัยต่อไป

ฉันสามารถค้นหาความมุ่งมั่นนี้ลงวันที่ 2018-01-11- เพิ่ม IPv6 patchซึ่งเห็นได้ชัดว่าเป็นการเพิ่มฟังก์ชั่น IPv6 กลับเข้าไปในสิ่งที่คุณกำลังเรียกnetcat รุ่นใหม่

หมายเหตุ:ฉันมีเพียงการเข้าถึง nc 7.50 บนระบบของฉันและตามที่คุณอธิบายรองรับ-4และทั้งสอง-6อย่าง

ฉันสงสัยว่าสิ่งที่คุณคิดว่าเป็นรุ่นที่ใหม่กว่า netcat ในความเป็นจริงเป็นรุ่นเก่ามาก: http://nc110.sourceforge.net/

หากคุณต้องการรายการครบถ้วนสมบูรณ์ของการใช้งานที่แตกต่างกันนี้มีอยู่ในคำถามเกี่ยวกับวิกิพีเดีย Netcat

netcat เวอร์ชันดั้งเดิมเป็นโปรแกรม Unix รุ่นล่าสุด (1.10) วางจำหน่ายในเดือนมีนาคม 1996 1

บน Linux distros ส่วนใหญ่ GNU netcat หรือรุ่น NMAP ดูเหมือนจะเป็นสิ่งที่ใช้กันมากที่สุด:

มีหลายการใช้งานบนมีPOSIXระบบรวมทั้งการปรับเปลี่ยนจากรอยขีดข่วนเช่นGNU netcat [5]หรือOpenBSD netcat, 6หลังซึ่งรองรับ IPv6 และTLS เวอร์ชั่น OpenBSD ได้รับการพอร์ตไปยังFreeBSD base 7และ Windows / Cygwin 8 Mac OS X มาพร้อมกับ netcat ที่ติดตั้งตั้งแต่ OSX 10.13 หรือผู้ใช้สามารถใช้ MacPorts เพื่อติดตั้งชุดตัวเลือก [9] นอกจากนี้ยังมี netcat รุ่น Microsoft Windows ที่มีอยู่ [10]

ตัวอย่างเช่นบน CentOS 7.x:

$ nc --version
Ncat: Version 7.50 ( https://nmap.org/ncat )

$ rpm -qf /bin/nc
nmap-ncat-6.40-13.el7.x86_64
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.