ฉันใช้ Debian VM บน Google Cloud ซึ่งทำงานเป็นผู้ให้บริการ API
ฉันเข้าถึง API จาก Android บนพอร์ต tcp 30300 และใช้งานได้ดี
ฉันเข้าถึง API จากแอป C++ ที่ทำงานบนไมโครคอนโทรลเลอร์ได้ด้วย และมันก็ใช้ได้ดีเช่นกัน
จากนั้นฉันตัดสินใจที่จะให้วิธีการเข้าถึง API จาก PHP และมันก็ไม่ทำงาน
จากเซิร์ฟเวอร์ภายนอกที่เรียกใช้ Apache API จะทำงานราวกับว่าไม่สามารถเข้าถึงได้ การตรวจสอบ API จะไม่แสดงการเข้าถึงใดๆ เลย
จากนั้นฉันก็ย้ายสคริปต์ PHP ไปยังเซิร์ฟเวอร์เดียวกันที่เรียกใช้ API และเพิ่งเปลี่ยนเซิร์ฟเวอร์เป้าหมายจากที่อยู่เว็บเป็น http://127.0.0.1:30300/alprbr และใช้งานได้ดี
ฉันได้ตรวจสอบกฎไฟร์วอลล์ของ Compute Engine อย่างใกล้ชิดและพบว่ากฎนั้นอนุญาตเฉพาะสำหรับ IPV6 และฉันไม่พบวิธีอนุญาตการรับส่งข้อมูลบนที่อยู่ IP สาธารณะสำหรับ IPV4
ฉันไม่รู้จริง ๆ ว่านี่เป็นสาเหตุของปัญหาหรือไม่ แต่ดูเหมือนว่ามีบางอย่างที่ต้องแก้ไขก่อนที่จะลองอย่างอื่น
กฎไฟร์วอลล์ของ Google Cloud:
อัลพ
ป้อนข้อมูล
นำไปใช้กับทุกคน
ช่วง IP: 0.0.0.0/0
tcp:30300
อนุญาต
1,000
ค่าเริ่มต้น
netstat -an | เกรป "ฟัง"
ผลตอบแทน:
tcp 0 0 127.0.0.1:3306 0.0.0.0:* ฟัง
tcp 0 0 0.0.0.0:80 0.0.0.0:* ฟัง
tcp 0 0 0.0.0.0:22 0.0.0.0:* ฟัง
tcp 0 0 0.0.0.0:1880 0.0.0.0:* ฟัง
tcp6 0 0 :::22 :::* ฟัง
tcp6 0 0 :::30300 :::* ฟัง
ผมทำอะไรผิดหรือเปล่า?
ยินดีให้ความช่วยเหลือ