ส่งข้อมูลข้ามเครือข่ายคอมพิวเตอร์ด้วย Netcat โดยใช้ Command Line
Netcat เป็นเครื่องมือบรรทัดคำสั่งที่ทรงพลังที่สามารถอ่านและเขียนข้อมูลผ่านการเชื่อมต่อเครือข่ายโดยใช้ TCP/IP โดยทั่วไปจะใช้สำหรับการส่งต่อ การถ่ายโอนไฟล์ การสแกนพอร์ต เหนือสิ่งอื่นใด แม้ว่าต้นกำเนิดของ netcat จะมาจากโลกของยูนิกซ์และลินุกซ์ แต่ netcat ก็ถูกสร้างขึ้นมาใน Mac OS X และเราจะใช้ยูทิลิตี้ nc เป็นวิธีที่ง่ายในการส่งข้อมูลและข้อความอื่นๆ ผ่านคอมพิวเตอร์สองเครื่องในเครือข่ายด้วยการใช้ netcat เพื่อส่งข้อมูลด้วยความสัมพันธ์ระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ที่ค่อนข้างง่าย จึงเสนอทางเลือกที่เป็นไปได้เร็วกว่าการแชร์ไฟล์แบบเดิม เมื่อผู้ใช้ต้องการอยู่ในบรรทัดคำสั่งขณะส่งและรับข้อมูล และเมื่อการเชื่อมต่อผ่าน SSH หรือ SFTP ไม่ใช่ ใช้ได้จริง
โปรดทราบว่า netcat ไม่ต้องการการเข้าสู่ระบบหรือการรับรองความถูกต้อง ข้อกำหนดเพียงอย่างเดียวคือไคลเอนต์ต้องรับรู้ที่อยู่ IP ของเซิร์ฟเวอร์และหมายเลขพอร์ตการฟัง เห็นได้ชัดว่ามีความเป็นไปได้ในการใช้ความปลอดภัยในทางที่ผิด ดังนั้นการใช้ netcat เพื่อส่งข้อมูลและข้อความจึงมักสงวนไว้สำหรับผู้ใช้ขั้นสูง หรือใช้เฉพาะหลังเครือข่ายท้องถิ่นที่มีการป้องกันซึ่งมีความเสี่ยงน้อย สถานการณ์ที่ความปลอดภัยเป็นสิ่งสำคัญที่ต้องเน้นจะดีกว่าหากใช้ SSH
เพื่อความสะดวก เราจะเรียกคอมพิวเตอร์ 1 ที่ฟังด้วย netcat ว่า “เซิร์ฟเวอร์” และเราจะเรียกคอมพิวเตอร์ 2 ที่ส่งข้อมูลไปยังคอมพิวเตอร์ 1 ว่า “ไคลเอนต์”
ตั้งค่า Netcat เพื่อฟังบนเซิร์ฟเวอร์ (คอมพิวเตอร์ 1) & พอร์ต
เราจะเปิดใช้ netcat และให้มันฟังที่พอร์ต 2999 จากนั้นเปลี่ยนเส้นทางข้อมูลใด ๆ ที่ได้รับไปยังไฟล์ชื่อ “received.txt” ด้วยสตริงคำสั่งต่อไปนี้:
nc -l 2999 > gets.txt
ก่อนที่จะโทรหาไคลเอนต์ คุณจะต้องการมีที่อยู่ IP ของ Macs บนเครือข่ายท้องถิ่น คุณจะได้รับจากแผงควบคุมเครือข่าย หรือเนื่องจากคุณอยู่ที่เทอร์มินัลแล้ว ผ่านทางบรรทัดคำสั่งที่มีไวยากรณ์ต่อไปนี้:
ipconfig getifaddr en0
Mac สมัยใหม่ที่มี Wi-Fi จะใช้ en0 เท่านั้น Mac ที่มีอีเธอร์เน็ตและ wifi อาจใช้ en1 หากไม่มีอะไรเกิดขึ้น ให้ลองใช้อินเทอร์เฟซอื่นเพื่อรับ LAN IP สมมติว่า Macs IP นี้รายงานเป็น “192.168.1.101” แน่นอนว่าของคุณน่าจะแตกต่างกันไป คุณจะต้องใช้ข้อมูลนี้ในคอมพิวเตอร์ไคลเอ็นต์เพื่อส่งข้อมูล ซึ่งเราจะกล่าวถึงต่อไป
ท่อข้อมูลจากไคลเอ็นต์ (คอมพิวเตอร์ 2) ไปยังเซิร์ฟเวอร์ที่รับฟัง
ตอนนี้บนไคลเอนต์ที่คุณต้องการส่งข้อมูล คุณสามารถใช้คำสั่งดังต่อไปนี้ เราจะใช้ cat เพื่อถ่ายโอนไฟล์ข้อความผ่านเครือข่ายไปยังเซิร์ฟเวอร์ netcat ที่รับฟัง แต่คุณสามารถไพพ์อะไรก็ได้ที่คุณต้องการ:
cat sendthisdataover.txt | nc 192.168.1.101 2999
เพื่อให้ทำงานได้อย่างถูกต้อง อย่าลืมกรอกที่อยู่ IP ของคุณเองจากเซิร์ฟเวอร์ และใส่ไฟล์หรือข้อความที่เหมาะสมที่คุณต้องการส่งไป
สมมติว่าเครือข่ายท้องถิ่นมีความเร็วเพียงเล็กน้อย ข้อมูลควรมาถึงค่อนข้างเร็วหากไม่มาในทันที เมื่อการถ่ายโอนข้อมูลเสร็จสิ้น การเชื่อมต่อทั้งสองด้านจะหยุดลงและเซิร์ฟเวอร์จะหยุดฟัง จากนั้นจึงปิดพอร์ต สิ่งนี้ทำให้มีประสิทธิภาพสำหรับการส่งข้อมูลแบบครั้งเดียว เช่น ไฟล์บันทึกหรือเอกสารข้อความขนาดใหญ่ แต่ไม่จำเป็นต้องนำไปใช้จริงในการย้ายไฟล์จำนวนมาก
ดังที่ได้กล่าวไปแล้ว คุณสามารถไพพ์ข้อมูลใดๆ ก็ได้ ดังนั้นไม่ว่าจะเป็นเอาต์พุตของแอปอื่น tail, cat หรือแม้แต่ดัมพ์โดยตรงจากคลิปบอร์ดด้วย pbcopy และ pbpaste ข้อมูลก็จะถ่ายโอนผ่าน netcat.
ควรสังเกตว่ามีวิธีที่สะดวกกว่าในการแชร์คลิปบอร์ดระหว่าง Mac หรือระหว่าง Mac กับ Linux หรือเครื่อง Windows และในสถานการณ์เหล่านั้น คุณควรใช้เครื่องมือฟรีเช่น Teleport สำหรับ Mac- การแชร์อินพุตกับ Mac หรือยูทิลิตี Synergy ฟรี หากคุณกำลังจะข้ามแพลตฟอร์มระหว่าง Mac และพีซี ทั้งคู่อนุญาตให้ผู้ใช้แชร์ข้อมูลคลิปบอร์ดรวมถึงอุปกรณ์อินพุต เช่น เมาส์และคีย์บอร์ด
สำหรับบันทึก ในขณะที่การสาธิตนี้แสดงบน Mac สองเครื่องที่มี OS X ไม่มีเหตุผลใดที่คุณไม่สามารถใช้ netcat เพื่อส่งข้อมูลระหว่างเครื่อง Mac และ Linux หรือในทางกลับกัน
มีประโยชน์มากมายสำหรับ netcat หากคุณมีรายการโปรดแจ้งให้เราทราบในความคิดเห็น!