ฉันต้องการสร้างแพ็กเก็ต UDP เพื่อทดสอบโปรแกรมสิ่งที่เทียบเท่ากับการใช้ telnet เพื่อทดสอบพอร์ต TCP (Telnet สามารถสร้างแพ็กเก็ต UDP ได้หรือไม่)
ฉันจะทำสิ่งนี้ได้อย่างไร
ฉันต้องการสร้างแพ็กเก็ต UDP เพื่อทดสอบโปรแกรมสิ่งที่เทียบเท่ากับการใช้ telnet เพื่อทดสอบพอร์ต TCP (Telnet สามารถสร้างแพ็กเก็ต UDP ได้หรือไม่)
ฉันจะทำสิ่งนี้ได้อย่างไร
คำตอบ:
หนึ่งคำ: Netcat
Netcat เป็นเครื่องมือที่นำไปสู่สิ่งนี้
คุณสามารถฟาดพอร์ตอะไรก็ได้ที่คุณเลือกด้วยแพ็คเก็ต UDP ที่มีลักษณะดังนี้:
nc -u host.example.com 53 < /dev/random
(53 คือหมายเลขพอร์ตของคุณ)
หรือคุณสามารถส่งไฟล์จริงหรือบอกให้ผูกพอร์ตนั้นและฟังเป็นบริการหรืออะไรก็ได้ที่คุณต้องการ
หากคุณต้องการส่งเพียงหนึ่งแพ็คเก็ต UDP ที่มีข้อมูลที่ระบุบางอย่างซึ่งตรงข้ามกับคำตอบของ Satanicpuppyที่ส่งข้อมูลแบบสุ่มอย่างต่อเนื่องคุณสามารถทำได้:
echo "foo" | nc -w1 -u 111.22.333.4 20000
อันนี้ดีถ้าคุณพยายามทำงานกับแพ็กเก็ตขนาดใหญ่ netcat ใช้ 1024 ไบต์ในโหมด UDP
nping --udp -p 2090 111.22.333.4 --data-length 1550
โหมด UDP ไปยังพอร์ต 2090 ตามที่อยู่โดยมีความยาวของแพ็คเก็ต 1550 ไบต์
นี่คือจากแพคเกจ nmap หรือบางครั้งก็บรรจุเป็น nping แยกต่างหาก
ข้อมูลเพิ่มเติมอยู่ที่https://nmap.org/book/nping-man-general-operation.html
หากคุณใช้ Bash คุณสามารถใช้/dev/udp
ระบบไฟล์เสมือนได้เช่นนี้
echo -n "hello" >/dev/udp/localhost/8000
นำกลับมาใช้ซ้ำจากคำตอบนี้เป็น "วิธีส่งแพ็กเก็ต UDP เพียงหนึ่งเดียวกับ netcat ได้อย่างไร"
คุณสามารถใช้โปรแกรมเทอร์มินัล UDP ได้ตลอดเวลา ส่วนใหญ่สามารถรับ / ส่ง TCP ได้เช่นกัน ตัวอย่างเช่นเทอร์มินัลสคริปต์ของ Docklight มีความเป็นไปได้เช่นนั้น จากนั้นคุณก็ส่งข้อมูลแบบเดียวกับที่คุณส่งไปยังพอร์ตอนุกรม
/dev/udp
หลีกเลี่ยงการใช้สิ่งนี้