เวอร์ชันของ netcat


8

ฉันได้ลอง netcat สองเวอร์ชันหลัก: GNU และ BSD (ของฉันคือเวอร์ชั่น BSD)

ในเวอร์ชัน GNU คำสั่ง $ nc -l -p 12345 ทำงานได้ดี แต่ด้วย BSD ตัวเลือก -l (ฟัง) ไม่สามารถใช้ร่วมกับ -p (พอร์ตท้องถิ่น)

ฉันไม่เข้าใจว่าทำไมจึงมีความแตกต่างเช่นนี้ระหว่างสองเวอร์ชันนี้ ในรุ่น BSD เมื่อฉันใช้ตัวเลือก -p มันจะเรียกโดยอัตโนมัติ -l (ฟัง)?

ขอบคุณ ;-)

ป.ล. : https://bugs.launchpad.net/ubuntu/+source/netcat-openbsd/+bug/590925/comments/3 -p จะแตกต่างกันระหว่างทั้งสอง รุ่น OpenBSD ใช้เพื่อตั้งค่าพอร์ตต้นทางสำหรับการเชื่อมต่อระยะไกลในขณะที่ nc ดั้งเดิมใช้เพื่อระบุพอร์ตท้องถิ่นที่จะรับฟังเมื่ออยู่ในโหมดฟัง


3
ในเวอร์ชัน BSD -lใช้พอร์ตเพื่อฟังดังนั้นจึง-pไม่จำเป็นเลย ผมไม่แน่ใจว่าสิ่งที่ไม่ได้โดยไม่ต้อง-p -lฉันไม่รู้ว่าทำไมถึงมีความแตกต่าง

1
ลอง ncat (ใน nmap distro)
William Pursell

1
ลองใช้ socat ซึ่งเป็นไวยากรณ์ที่แตกต่างกันโดยสิ้นเชิง
Marcin

@icktoofay ถ้าคุณย้ายคุณกำลังแสดงความคิดเห็นที่จะตอบฉันจะ upvote แล้วออกเสียงลงคะแนนให้กับแท็กใกล้ ... เพียงแค่ฉันในการโพสต์เพื่อให้ฉันเห็นมัน
RobotHumans

แพ็คเกจ Ubuntu netcat-traditionalสำหรับ GNU netcat-openbsdและnetcatสำหรับ BSD
Ciro Santilli 冠状病毒审查六四事件法轮功

คำตอบ:


4

ในเวอร์ชัน BSD, -l ใช้พอร์ตเพื่อฟังดังนั้นไม่จำเป็นต้องใช้ -p เลย ฉันไม่แน่ใจว่า -p ทำอะไรหากไม่มี -l ฉันไม่รู้ว่าทำไมถึงมีความแตกต่าง - icktoofay <- เครดิตสำหรับการแก้ปัญหาไปที่ชายคนนั้น ... แต่ฉันไม่คิดว่าเขามีบัญชีใน SU เพียงแค่นั้น

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