Udprelay ใช้รีเลย์ UDP แบบสมมาตรเล็กน้อย หลังจากเริ่มต้น ระบบจะ "เปิด" พอร์ต UDP สองพอร์ตและรอไคลเอ็นต์ เมื่อไคลเอนต์เชื่อมต่อกัน เครื่องมือจะส่งข้อมูลที่ได้รับจากไคลเอนต์หนึ่งไปยังอีกไคลเอนต์หนึ่งและในทางกลับกัน กรณีการใช้งานทั่วไปคือการอนุญาตให้ไคลเอนต์ UDP ที่อยู่เบื้องหลัง NAT ที่แตกต่างกันสามารถพูดคุยกันได้
แอปพลิเคชันหนึ่ง (และอาจเป็นแอปพลิเคชันเดียว) คือการช่วยให้ไคลเอนต์ Mosh เชื่อมต่อกับเซิร์ฟเวอร์ Mosh ที่อยู่เบื้องหลัง NAT ในขณะที่ยังคงอยู่เบื้องหลัง NAT อื่น รายละเอียดอธิบายไว้ในคำตอบของ StackOverflow นี้
หากต้องการสร้างเพียง make install
โหมดการทำงานเดียวคือ:
$ udprelay bind-ip port-a port-b
โดยที่ bind-ip
เป็น IP ที่จะผูกทั้งสองพอร์ต (เช่น 0.0.0.0) port-a
และ port-b
เป็นพอร์ต UDP ที่จะรอข้อความ
port-a
และ port-b
แต่จะส่งข้อมูลของมือข้างหนึ่งไปยังที่อยู่ล่าสุดที่เห็นของมืออีกข้างหนึ่งแทนเครื่องมือต่อไปนี้อาจมีประโยชน์:
strace
tcpdump -i IFACE udp portrange PORTA-PORTB -vv -X -n
อ้างอิงจากโปรแกรม udp_redirect
C โดย Ivan Tikhonov