Реклама подобрана на основе следующей информации:
สารบัญ:
- ไวยากรณ์ Netcat
- สแกนพอร์ต
- การส่งไฟล์ผ่าน Netcat
- การสร้าง Simple Chat Server
- ดำเนินการตามคำขอ HTTP
- ข้อสรุป
Netcat (หรือ nc) เป็นโปรแกรมอรรถประโยชน์บรรทัดคำสั่งที่อ่านและเขียนข้อมูลผ่านการเชื่อมต่อเครือข่ายโดยใช้โปรโตคอล TCP หรือ UDP มันเป็นหนึ่งในเครื่องมือที่ทรงพลังที่สุดในเครือข่ายและผู้ดูแลระบบคลังแสงและถือว่าเป็นเครื่องมือมีดของเครือข่ายกองทัพสวิส
Netcat เป็นแบบข้ามแพลตฟอร์มและพร้อมใช้งานสำหรับ Linux, macOS, Windows และ BSD คุณสามารถใช้ Netcat เพื่อตรวจแก้จุดบกพร่องและตรวจสอบการเชื่อมต่อเครือข่ายสแกนหาพอร์ตที่เปิดถ่ายโอนข้อมูลเป็นพร็อกซีและอีกมากมาย แพ็คเกจ Netcat ติดตั้งไว้แล้วใน macOS และ Linux ดิสทริบิวชันยอดนิยมอย่าง Ubuntu
ไวยากรณ์ Netcat
ไวยากรณ์พื้นฐานที่สุดของยูทิลิตี้ Netcat ใช้แบบฟอร์มต่อไปนี้:
nc host port
บน Ubuntu คุณสามารถใช้
netcat
หรือ
nc
ทั้งคู่มีการเชื่อมโยงไปยัง Netcat เวอร์ชัน openBSD
โดยค่าเริ่มต้น Netcat จะพยายามเริ่มการเชื่อมต่อ TCP ไปยังโฮสต์และพอร์ตที่ระบุ หากคุณต้องการสร้างการเชื่อมต่อ UDP ให้ใช้ตัวเลือก
-u
:
สแกนพอร์ต
การสแกนพอร์ตเป็นหนึ่งในการใช้งานทั่วไปสำหรับ Netcat คุณสามารถสแกนพอร์ตเดียวหรือช่วงพอร์ต
ตัวอย่างเช่นการสแกนหาพอร์ตที่เปิดอยู่ในช่วง 20-80 คุณจะต้องใช้คำสั่งต่อไปนี้:
nc -z -v 10.10.8.8 20-80
ตัวเลือก
-z
จะบอก
nc
ให้สแกนหาพอร์ตที่เปิดอยู่เท่านั้นโดยไม่ต้องส่งข้อมูลใด ๆ ไปยังพวกเขาและตัวเลือก
-v
เพื่อให้ข้อมูล verbose เพิ่มเติม
ผลลัพธ์จะมีลักษณะดังนี้:
nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused Connection to 10.10.8.8 22 port succeeded! nc: connect to 10.10.8.8 port 23 (tcp) failed: Connection refused… nc: connect to 10.10.8.8 port 79 (tcp) failed: Connection refused Connection to 10.10.8.8 80 port succeeded!
nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
Connection to 10.10.8.8 22 port succeeded! Connection to 10.10.8.8 80 port succeeded!
คุณสามารถใช้ Netcat เพื่อค้นหาซอฟต์แวร์เซิร์ฟเวอร์และรุ่นของมัน ตัวอย่างเช่นหากคุณส่งคำสั่ง“ EXIT” ไปยังเซิร์ฟเวอร์บนพอร์ต SSH เริ่มต้นที่ 22:
echo "EXIT" | nc 10.10.8.8 22
ผลลัพธ์จะมีลักษณะดังนี้:
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4 Protocol mismatch.
ในการสแกนหาพอร์ต UDP เพียงเพิ่มตัวเลือก
-u
ในคำสั่งดังที่แสดงด้านล่าง:
nc -z -v -u 10.10.8.8 20-80
ในสถานการณ์ส่วนใหญ่ Nmap เป็นเครื่องมือที่ดีกว่า Netcat สำหรับการสแกนพอร์ตที่ซับซ้อน
การส่งไฟล์ผ่าน Netcat
Netcat สามารถใช้เพื่อถ่ายโอนข้อมูลจากโฮสต์หนึ่งไปยังอีกโฮสต์หนึ่งโดยสร้างโมเดลไคลเอ็นต์ / เซิร์ฟเวอร์พื้นฐาน
สิ่งนี้ทำงานได้โดยการตั้งค่า Netcat ให้ฟังพอร์ตเฉพาะ (ใช้ตัวเลือก
-l
) บนโฮสต์ที่รับแล้วสร้างการเชื่อมต่อ TCP ปกติจากโฮสต์อื่นและส่งไฟล์ทับ
ในการรับเรียกใช้คำสั่งต่อไปนี้ซึ่งจะเปิดพอร์ต 5555 สำหรับการเชื่อมต่อขาเข้าและเปลี่ยนเส้นทางผลลัพธ์ไปยังไฟล์:
nc -l 5555 > file_name
จากโฮสต์ที่ส่งเชื่อมต่อกับโฮสต์ที่รับและส่งไฟล์:
nc receiving.host.com 5555 < file_name
ในการถ่ายโอนไดเรกทอรีคุณสามารถใช้ tar เพื่อเก็บถาวรไดเรกทอรีบนโฮสต์ต้นทางและเพื่อแยกเก็บถาวรบนโฮสต์ปลายทาง
บนโฮสต์ที่รับตั้งค่าเครื่องมือ Netcat เพื่อฟังการเชื่อมต่อขาเข้าบนพอร์ต 5555 ข้อมูลที่เข้ามาจะถูกไพพ์ไปยังคำสั่ง tar ซึ่งจะแยกไฟล์เก็บถาวร:
nc -l 5555 | tar xzvf -
ในโฮสต์ส่งแพ็คไดเรกทอรีและส่งข้อมูลโดยเชื่อมต่อกับกระบวนการฟัง
nc
บนโฮสต์ที่ได้รับ:
tar czvf - /path/to/dir | nc receiving.host.com 5555
คุณสามารถดูความคืบหน้าการโอนทั้งสองด้านได้ เมื่อเสร็จแล้วให้พิมพ์
CTRL+C
เพื่อปิดการเชื่อมต่อ
การสร้าง Simple Chat Server
ขั้นตอนการสร้างการแชทออนไลน์ระหว่างโฮสต์สองคนขึ้นไปนั้นเหมือนกับเมื่อทำการถ่ายโอนไฟล์
ในโฮสต์แรกให้เริ่มกระบวนการ Netcat เพื่อฟังบนพอร์ต 5555:
nc -l 5555
จากโฮสต์ที่สองให้รันคำสั่งต่อไปนี้เพื่อเชื่อมต่อกับพอร์ตฟัง:
nc first.host.com 5555
ตอนนี้ถ้าคุณพิมพ์ข้อความและกด
ENTER
มันจะปรากฏขึ้นบนโฮสต์ทั้งสอง
หากต้องการปิดการเชื่อมต่อให้พิมพ์
CTRL+C
ดำเนินการตามคำขอ HTTP
แม้ว่าจะมีเครื่องมือที่ดีกว่ามากสำหรับคำขอ HTTP เช่น curl คุณสามารถใช้ Netcat เพื่อส่งคำขอต่าง ๆ ไปยังเซิร์ฟเวอร์ระยะไกล
ตัวอย่างเช่นในการเรียกค้นหน้าคน Netcat จากเว็บไซต์ OpenBSD คุณต้องพิมพ์:
printf "GET /nc.1 HTTP/1.1\r\nHost: man.openbsd.org\r\n\r\n" | nc man.openbsd.org 80
การตอบสนองแบบเต็มรวมถึงส่วนหัว HTTP และรหัส HTML จะถูกพิมพ์ในเครื่อง
ข้อสรุป
ในบทช่วยสอนนี้คุณได้เรียนรู้วิธีใช้ยูทิลิตี้ Netcat เพื่อสร้างและทดสอบการเชื่อมต่อ TCP และ UDP
สำหรับข้อมูลเพิ่มเติมโปรดเยี่ยมชมหน้า man Netcat และอ่านเกี่ยวกับตัวเลือกอันทรงพลังอื่น ๆ ของคำสั่ง Netcat
เทอร์มินัล netcatคำสั่ง Echo ใน linux พร้อมตัวอย่าง

คำสั่ง echo เป็นหนึ่งในคำสั่งพื้นฐานและใช้บ่อยที่สุดใน Linux อาร์กิวเมนต์ที่ส่งผ่านไปยัง echo จะถูกพิมพ์ไปยังเอาต์พุตมาตรฐาน
คำสั่ง Curl ใน linux พร้อมตัวอย่าง

Curl เป็นโปรแกรมอรรถประโยชน์บรรทัดคำสั่งสำหรับถ่ายโอนข้อมูลจากหรือไปยังเซิร์ฟเวอร์ที่ออกแบบมาเพื่อทำงานโดยไม่ต้องมีการโต้ตอบกับผู้ใช้ ในบทช่วยสอนนี้เราจะแสดงวิธีใช้เครื่องมือ curl ผ่านตัวอย่างการใช้งานจริงและคำอธิบายโดยละเอียดเกี่ยวกับตัวเลือก curl ทั่วไป
คำสั่ง Linux พร้อมตัวอย่าง

คำสั่ง tee อ่านจากอินพุตมาตรฐานและเขียนไปยังทั้งเอาต์พุตมาตรฐานและหนึ่งไฟล์ขึ้นไปในเวลาเดียวกัน Tee ใช้กันมากที่สุดเมื่อใช้ร่วมกับคำสั่งอื่นผ่านการวางท่อ