สถานการณ์:
สคริปต์ PHP อย่างง่าย (myip.php) โฮสต์บนเซิร์ฟเวอร์ที่มี IP สาธารณะ WSIP สคริปต์สามารถใช้ได้ผ่าน http และ https
ฉันมีเซิร์ฟเวอร์ขนาดเล็ก (GW) ที่มี IP สาธารณะ GWIPเซิร์ฟเวอร์นี้มีวัตถุประสงค์เพื่อใช้เป็นเกตเวย์เท่านั้น
เซิร์ฟเวอร์อื่น (WORKER) ต้องเข้าถึงสคริปต์ php แต่ ผ่าน GW เท่านั้น. WORKER ติดตั้ง Docker ไว้แล้ว
Wireguard ได้รับการกำหนดค่าระหว่าง GW และ WORKER โดยทำหน้าที่ GW เป็นเซิร์ฟเวอร์ VPN
GW wg0.conf
[อินเตอร์เฟซ]
คีย์ส่วนตัว = <GW-PRI-K>
ที่อยู่ = 10.1.0.1/24
ListenPort = 51820
PostUp = iptables -A ส่งต่อ -i wg0 -j ยอมรับ; iptables -t nat -A โพสต์ -o eth0 -j MASQUERADE
PostDown = iptables -D ส่งต่อ -i wg0 -j ยอมรับ; iptables -t nat -D โพสต์ -o eth0 -j MASQUERADE
[เพียร์]
PublicKey = <คนงาน-PUB-K>
IP ที่อนุญาต = 10.1.0.2/32,10.1.0.0/24
คนงาน wg0.conf
[อินเตอร์เฟซ]
PrivateKey = <คนงาน-PRI-K>
ที่อยู่ = 10.1.0.2/24
[เพียร์]
PublicKey = <GW-PUB-K>
ปลายทาง = GWIP:51820
IP ที่อนุญาต = 10.1.0.1/24,WSIP/32
PersistentKeepalive = 25
จาก WORKER (โฮสต์) ฉันสามารถเข้าถึงบริการเว็บได้ ทุกอย่างโอเค.
ขด http://$WSIP/myip.php
xxx.xxx.243.174
ขด https://$WSIP/myip.php
xxx.xxx.243.174
แต่ถ้าฉันเรียกใช้คำสั่งเดียวกันจากคอนเทนเนอร์นักเทียบท่า:
ขด http://$WSIP/myip.php
xxx.xxx.243.174
ขด https://$WSIP/myip.php
ไม่มีการตอบสนอง สำหรับ https.
รายการตารางเส้นทางที่เกี่ยวข้องของ WORKER:
10.1.0.0/24 dev wg0 proto kernel ขอบเขตลิงค์ src 10.1.0.2
ลิงก์ขอบเขต WSIP dev wg0
ดูเหมือนว่าจะไม่มีปัญหาในการเข้าถึงเซิร์ฟเวอร์ WS แต่มีบางอย่างเกิดขึ้นกับการตอบสนอง
ฉันค่อนข้างเชื่อว่าวิธีแก้ปัญหาควรเกี่ยวข้องกับการปลอมตัว แต่หลังจากผ่านไปหลายชั่วโมงฉันก็หลงทางเล็กน้อย
เบาะแสใด ๆ ?