ฉันมีเซิร์ฟเวอร์ udp ที่ทำงานบนเซิร์ฟเวอร์เฉพาะ มันฟังพอร์ต 5005 ไคลเอ็นต์หนึ่ง (Client1) ใน LAN ของฉันเชื่อมต่อกับเซิร์ฟเวอร์เฉพาะนั้นผ่าน OpenVPN และสามารถพูดคุยกับเซิร์ฟเวอร์ udp นั้นผ่าน VPN
ลูกค้าอีกสองคนใน LAN ของฉันต้องเข้าถึงเซิร์ฟเวอร์ udp นั้นด้วย ตอนนี้ฉันต้องการให้ client1 ของฉันกำหนดเส้นทางทราฟฟิกขาเข้าบนพอร์ต 5005 ผ่าน vpn ไปยังเซิร์ฟเวอร์ udp ของฉัน
ฉันคิดว่าคำสั่งนี้:
iptables -t nat -A PREROUTING -p udp --dport 5005 -j DNAT --to-destination 10.8.0.1:5005
+
sysctl -w net.ipv4.ip_forward=1
จะทำงาน แต่น่าเสียดายที่ฉันไม่สามารถคุยกับเซิร์ฟเวอร์ udp ได้
การส่งต่อพอร์ตเป็นเพียงส่วนหนึ่งของปริศนา มีข้อกังวลเพิ่มเติมสองประการ: การรับส่งข้อมูลจะต้องถูกนำไปที่ "ลูกค้า 1" เพื่อให้การประมวลผลเกิดขึ้นได้ทั้งหมด เซิร์ฟเวอร์ของคุณต้องสามารถส่งข้อความตอบกลับได้ อาจเป็นไปได้ว่าไม่มีเส้นทางไปยังเครือข่ายท้องถิ่นของ "client1" ดังนั้นการตอบสนองจะหายไป
—
Daniel B
@DanielB ฉันคิดว่าเมื่อใช้เซิร์ฟเวอร์ UDP ไม่จำเป็นต้องมีการตอบสนอง
—
Unkn0wn
UDP ไม่ได้หมายถึงการสื่อสารทางเดียว มันอาจจะใช่หรือไม่ใช่อย่างนั้นก็ได้
—
Daniel B
@DanielB โอเค แต่ปัญหาที่นี่คือการตัด UDP ไม่ได้รับอะไรเลยเมื่อฉันส่งไปยัง Client1: 5005
—
Unkn0wn
@DanielB ไม่จำเป็นต้องมีเส้นทางไปยังเครือข่ายท้องถิ่น มันแค่ต้องการเส้นทางไปยัง client1 เนื่องจาก client1 กำลังทำ NAT
—
Duncan X Simpson