จะกำหนดค่า Centos 7 firewallD ให้อนุญาตให้นักเทียบท่าคอนเทนเนอร์เข้าถึงพอร์ตเครือข่ายของโฮสต์ได้อย่างไร


32

ฉันติดตั้ง docker ไว้บน CentOS 7 และฉันใช้งาน firewallD

จากในคอนเทนเนอร์ของฉันไปที่โฮสต์ (ค่าเริ่มต้น 172.17.42.1)

เปิดไฟร์วอลล์

container# nc -v  172.17.42.1  4243
nc: connect to 172.17.42.1 port 4243 (tcp) failed: No route to host

ด้วยการปิดไฟร์วอลล์

container# nc -v  172.17.42.1  4243
Connection to 172.17.42.1 4243 port [tcp/*] succeeded!

ฉันอ่านเอกสารเกี่ยวกับไฟร์วอลและฉันไม่เข้าใจอย่างถ่องแท้ มีวิธีให้ทุกอย่างในคอนเทนเนอร์นักเทียบท่า (ฉันเดาบนอะแดปเตอร์ docker0) ไม่ จำกัด การเข้าถึงโฮสต์หรือไม่

คำตอบ:


30

อาจดีกว่าคำตอบก่อนหน้า

firewall-cmd --permanent --zone=trusted --change-interface=docker0
firewall-cmd --permanent --zone=trusted --add-port=4243/tcp
firewall-cmd --reload

6
ฉันเชื่อว่าadd-portไม่จำเป็น หากdocker0ทำเครื่องหมายว่าเชื่อถือได้พอร์ตนั้นจะถูกปล่อยผ่าน
Matt Hughes

6
@MattHughes add-portจะทำงานให้ฉันโดยไม่ต้อง นอกจากนี้คุณยังจะต้องมีนักเทียบท่าเริ่มต้นใหม่
rdupz

1
ทำงานหลังจากไฟร์วอลล์รีสตาร์ทไม่ใช่ตัวเทียบท่า
cybersoft

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.