ส่งข้อมูลข้ามเครือข่ายคอมพิวเตอร์ด้วย Netcat โดยใช้ Command Line

Netcat เป็นเครื่องมือบรรทัดคำสั่งที่มีประสิทธิภาพซึ่งสามารถอ่านและเขียนข้อมูลผ่านการเชื่อมต่อเครือข่ายโดยใช้ TCP / IP ซึ่งโดยปกติจะใช้สำหรับรีเลย์การถ่ายโอนไฟล์การสแกนพอร์ตและอื่น ๆ แม้ว่า netcat มาจากโลก UNIX และ Linux แต่ netcat ยังมีอยู่ใน Mac OS X และเราจะใช้ยูทิลิตี nc เป็นวิธีที่ง่ายในการส่งข้อมูลและข้อความอื่น ๆ ผ่านคอมพิวเตอร์สองเครื่องในเครือข่าย

การใช้ netcat เพื่อส่งข้อมูลด้วยไคลเอ็นต์และเซิร์ฟเวอร์ที่ค่อนข้างง่ายจะมีทางเลือกที่รวดเร็วกว่าในการแชร์ไฟล์แบบเดิมเมื่อผู้ใช้ต้องการอยู่ในบรรทัดคำสั่งในขณะที่ส่งและรับข้อมูลและการเชื่อมต่อผ่าน SSH หรือ SFTP isn ' t practical

โปรดทราบว่า netcat ไม่จำเป็นต้องล็อกอินหรือการรับรองความถูกต้องข้อกำหนดเพียงอย่างเดียวคือไคลเอ็นต์จะทราบถึงที่อยู่ IP ของเซิร์ฟเวอร์และหมายเลขพอร์ตการฟัง การใช้เน็ตคาร์เพื่อส่งข้อมูลและข้อความโดยทั่วไปจะเหมาะสำหรับผู้ใช้ขั้นสูงหรือเพื่อการใช้งานเฉพาะหลังเครือข่ายท้องถิ่นที่ได้รับการป้องกันซึ่งมีความเสี่ยงน้อย สถานการณ์ที่การรักษาความปลอดภัยเป็นสิ่งสำคัญที่จะเน้นจะดีกว่าการใช้ SSH

เพื่อความสะดวกเราจะอ้างอิงถึงคอมพิวเตอร์ 1 ที่กำลังฟังอยู่ด้วย netcat ในชื่อ "Server" และเราจะอ้างอิงถึงคอมพิวเตอร์ 2 ส่งข้อมูลไปยังคอมพิวเตอร์ 1 เป็น "client"

ตั้งค่า Netcat ให้ฟังในเซิร์ฟเวอร์ (Computer 1) & Port

เราจะเปิดตัว netcat และฟังในพอร์ต 2999 จากนั้นเปลี่ยนเส้นทางข้อมูลที่ได้รับไปยังไฟล์ชื่อ "received.txt" ด้วยสตริงคำสั่งต่อไปนี้:

nc -l 2999 > received.txt

ก่อนที่จะโทรไปที่การย้ายไปยังไคลเอ็นต์คุณจะต้องมีที่อยู่ IP ของ Macs ในเครือข่ายท้องถิ่น คุณสามารถรับได้จากแผงควบคุมของเครือข่ายหรือตั้งแต่คุณอยู่ที่ Terminal โดยผ่านทางบรรทัดคำสั่งที่มีไวยากรณ์ต่อไปนี้:

ipconfig getifaddr en0

เครื่องแม่ข่ายสมัยใหม่ที่มี Wi-Fi เท่านั้นจะใช้ en0 Macs กับ ethernet และ wifi อาจใช้ en1 ถ้าไม่มีอะไรเกิดขึ้นลองใช้อินเทอร์เฟซอื่นเพื่อรับ LAN IP สมมติว่า Mac เครื่องนี้มีรายงานว่า "192.168.1.101" แน่นอนว่าคุณน่าจะแตกต่างกันไป คุณจะต้องใช้คอมพิวเตอร์ไคลเอ็นต์เพื่อส่งข้อมูลซึ่งเราจะกล่าวถึงต่อไป

ข้อมูลท่อจากไคลเอ็นต์ (คอมพิวเตอร์ 2) ไปยังเซิร์ฟเวอร์การฟัง

ขณะนี้ลูกค้าที่คุณต้องการส่งข้อมูลจากคุณสามารถใช้คำสั่งดังต่อไปนี้ เราจะใช้แมวเพื่อถ่ายโอนแฟ้มข้อความผ่านเครือข่ายไปยังเซิร์ฟเวอร์ netcat ที่ฟัง แต่คุณสามารถวางท่อเพียงแค่สิ่งที่คุณต้องการ:

cat sendthisdataover.txt | nc 192.168.1.101 2999

เพื่อให้สามารถทำงานได้อย่างถูกต้องโปรดกรอกที่อยู่ IP ของคุณเองจากเซิร์ฟเวอร์และใส่ไฟล์หรือข้อความที่คุณต้องการส่ง

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

ดังที่ได้กล่าวมาแล้วคุณสามารถส่งผ่านข้อมูลเพียงแค่ข้อมูลใด ๆ ไม่ว่าจะเป็นผลลัพธ์จากแอปพลิเคชันหางหางแมวหรือแม้แต่การทิ้งโดยตรงจากคลิปบอร์ดด้วย pbcopy และ pbpaste ก็จะโอนผ่าน netcat

ควรสังเกตว่ามีวิธีที่สะดวกในการแชร์คลิปบอร์ดระหว่าง Mac หรือระหว่างเครื่อง Mac และ Linux หรือ Windows และในสถานการณ์เหล่านี้คุณควรใช้เครื่องมือฟรีเช่น Teleport สำหรับการแบ่งปันข้อมูล Mac-to-Mac หรือ ยูทิลิตี้ Synergy ฟรีถ้าคุณจะข้ามแพลตฟอร์มระหว่าง Macs กับพีซี ทั้งอนุญาตให้ผู้ใช้แชร์ข้อมูลคลิปบอร์ดรวมทั้งอุปกรณ์อินพุทเช่นเมาส์และคีย์บอร์ด

สำหรับการบันทึกในขณะที่การสาธิตนี้แสดงบนเครื่อง Mac สองเครื่องที่มี OS X ไม่มีเหตุผลที่คุณจะไม่สามารถใช้ netcat เพื่อส่งข้อมูลระหว่างเครื่อง Mac และ Linux หรือในทางกลับกันได้

มีตันที่ใช้ที่ดีอื่น ๆ สำหรับ netcat ออกมีถ้าคุณมีรายการโปรดใด ๆ แจ้งให้เราทราบในความคิดเห็น!