Score:0

การส่งต่อพอร์ตจากอินเตอร์เฟส wireguard ไปยังโฮสต์อื่นด้วย iptables

ธง ru

ฉันมีเซิร์ฟเวอร์สองเครื่องที่ฉันสามารถเข้าถึงได้หนึ่งในนั้นผ่าน wireguard ฉันมีบริการที่รับฟังพอร์ต 4559 บนเซิร์ฟเวอร์ที่สอง ฉันจะส่งต่อไปยังเซิร์ฟเวอร์ที่สองผ่าน iptables ได้อย่างไร

[แล็ปท็อป] [เซิร์ฟเวอร์ 1] [เซิร์ฟเวอร์ 2]
10.10.0.1 (ไวร์การ์ด) -------> 10.10.0.2:4559 --------> 192.168.1.20:4559
Michael Hampton avatar
cz flag
ทำไมคุณถึงต้องการ NAT แค่เดินสายตามปกติ
heydar dasoomi avatar
ru flag
จะทำอย่างไร?
Score:0
ธง cn

หากต้องการส่งต่อพอร์ต TCP 4559 จากอินเทอร์เฟซ WireGuard บนเซิร์ฟเวอร์ 1 ไปยังเซิร์ฟเวอร์ 2 ให้เพิ่มสิ่งนี้ใน [อินเตอร์เฟซ] ส่วนของการกำหนดค่า WireGuard ของ server1:

PreUp = sysctl -w net.ipv4.ip_forward=1
PreUp = iptables -t nat -A PREROUTING -i %i -p tcp --dport 4559 -j DNAT --to-destination 192.168.1.20
PreUp = iptables -t nat -A การโพสต์ ! -o %i -j สวมหน้ากาก
PostDown = iptables -t nat -D PREROUTING -i %i -p tcp --dport 4559 -j DNAT --to-destination 192.168.1.20
PostDown = iptables -t nat -D POSTROUTING ! -o %i -j สวมหน้ากาก

แทนที่ -p tcp กับ -p อู๊ด หากเป็นพอร์ต UDP 4559 คุณกำลังพยายามส่งต่อ

ซึ่งจะทำงานได้ดีในการเข้าถึง server2 จากแล็ปท็อปเป็น 10.10.0.2:4559; แต่สถานการณ์เฉพาะของคุณฟังดูเหมือนรูปแบบการเข้าถึง "จุดต่อไซต์" ทั่วไป โดยแล็ปท็อปเป็น "จุด" ระยะไกล และเซิร์ฟเวอร์ 1 ให้การเข้าถึง "ไซต์" ที่ใหญ่กว่า ด้วยรูปแบบนั้น โดยปกติแล้ว คุณจะกำหนดค่าเราเตอร์ที่ไซต์เพื่อกำหนดเส้นทางเครือข่ายย่อย WireGuard ของคุณ (เช่น 10.10.0.0/24) โดยตรงผ่านเซิร์ฟเวอร์ 1 (ไม่มี NAT) หรือคุณจะตั้งค่า SNAT บนเซิร์ฟเวอร์ 1 เพื่อปลอมแปลงแพ็กเก็ตจาก WireGuard ไปยังไซต์

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

heydar dasoomi avatar
ru flag
ฉันยังไม่สามารถเข้าถึงบริการด้วย telnet
cn flag
อา คุณอาจต้องปลอมแปลงแพ็กเก็ตที่ส่งต่อจากเซิร์ฟเวอร์ 1 ไปยังเซิร์ฟเวอร์ 2 ด้วย -- ฉันแก้ไขคำตอบเพื่อรวมกฎ iptables `MASQUERADE` เพิ่มเติม
heydar dasoomi avatar
ru flag
ยังไม่ทำงาน
cn flag
1) เรียกใช้ `sudo iptables -S` บนเซิร์ฟเวอร์ 1 เพื่อแสดงรายการกฎ iptables ที่ใช้งานอยู่เพื่อดูว่าคุณมีกฎอื่นที่ปิดกั้นการเข้าถึงหรือไม่ 2) รัน `sudo nft list ruleset` บนเซิร์ฟเวอร์ 1 เพื่อดูว่าคุณมีกฎ nftables ที่บล็อกการเข้าถึงหรือไม่ 3) รัน `ping 10.10.0.2` บนแล็ปท็อปเพื่อตรวจสอบว่าคุณสามารถเชื่อมต่อกับ server1 ผ่าน WireGuard ได้ 4) เรียกใช้ `telnet 192.168.1.20 4559` บนเซิร์ฟเวอร์1 เพื่อยืนยันว่าคุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์2

โพสต์คำตอบ

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