ฉันมีเครื่องระยะไกลที่มีที่อยู่ IP สาธารณะ 121.x.y.z
ด้วย Gitlab (ซอฟต์แวร์ไม่สำคัญจริง ๆ และไม่จำเป็นต้องมีความรู้ด้าน Gitlab ที่นี่) ติดตั้ง (ซึ่งใช้ nginx สำหรับเว็บอินเตอร์เฟส) และการตั้งค่า HTTPS อย่างไรก็ตาม ฉันอยู่ในสถานการณ์ที่ฉันสามารถเข้าถึงได้ผ่าน HTTPS โดยใช้ localhost เท่านั้น แต่ไม่มีที่อยู่ IP อื่น
เมื่อฉันทำ netstat -an | เกรป 443
ในเครื่องระยะไกลที่ฉันได้รับ
[user@machine ~]$ netstat -an | เกรป 443
tcp 0 0 0.0.0.0:443 0.0.0.0:* ฟัง
เมื่อฉันทำ ขด -- ไม่ปลอดภัย https://127.0.0.1
ในเครื่องระยะไกลที่ฉันได้รับ
[user@machine ~]$ curl --insecure https://127.0.0.1
<html><body>คุณกำลังถูก <a href="https://127.0.0.1/users/sign_in">เปลี่ยนเส้นทาง</a></body></html>
ข้อความเปลี่ยนเส้นทางเป็นข้อความเริ่มต้นที่ถูกต้องกับ Gitlab
อย่างไรก็ตามเมื่อฉันทำ ขด --ไม่ปลอดภัย https://121.x.y.z
ในเครื่องระยะไกลฉันไม่ได้รับอะไรเลยนอกจากเวลารอที่ไม่มีที่สิ้นสุด (ดูเหมือนว่าจะไม่ได้ฟังจริงๆ) แต่ดูเหมือนว่าผลลัพธ์ของ netstat จะระบุว่ากำลังฟังที่อยู่ IP ทั้งหมดไม่ใช่แค่ localhost
เว็บอินเตอร์เฟสของ Gitlab ทำงานได้อย่างถูกต้อง ถ้าฉันละทิ้งการตั้งค่า HTTPS และกลับไปใช้ HTTP
ฉันไม่รู้ด้วยซ้ำว่าจะดำเนินการแก้ไขข้อบกพร่องนี้อย่างไรและติดขัดอยู่มาก มีอะไรที่ฉันสามารถทำได้เพื่อหาว่าทำไมมันถึงฟังเฉพาะ localhost ในขณะที่ netstat แสดงว่ามันฟังทุกอย่าง?
แก้ไข:
ระบบเป็น CentOS7 และดูเหมือนว่าไฟร์วอลล์จะไม่ทำงานเช่นกัน
[user@machine ~]$ ไฟร์วอลล์สถานะ sudo systemctl
â firewalld.service - firewalld - daemon ไฟร์วอลล์แบบไดนามิก
โหลดแล้ว: โหลดแล้ว (/usr/lib/systemd/system/firewalld.service; ปิดใช้งาน; การตั้งค่าล่วงหน้าของผู้ขาย: เปิดใช้งาน)
ใช้งาน: ไม่ใช้งาน (ตาย)
เอกสาร: man:firewalld(1)
14 ส.ค. 10:55:45 xxxxxx systemd[1]: firewalld.service: ไม่สามารถโหลดหน่วยได้เนื่องจากไม่ได้ใช้งาน