ให้ฉันเริ่มพูดว่าฉันไม่ใช่ผู้เชี่ยวชาญด้านเครือข่าย อย่างที่บอก ฉันต้องการความช่วยเหลือที่นี่ เพราะฉันปวดหัวกับปัญหานี้มาสองวันแล้ว ฉันมีคำถามหลายข้อแต่จะเน้นเฉพาะข้อใดข้อหนึ่งเท่านั้น
ฉันสั่งซื้อเซิร์ฟเวอร์รูท hetzner และติดตั้ง Ubuntu 20.04 หลังจากที่ฉันสั่งซื้อ IP รองตามที่ต้องการสำหรับการตั้งค่านักเทียบท่าที่ฉันต้องการให้คอนเทนเนอร์สองคอนเทนเนอร์เข้าถึงได้โดยตรงจากที่อยู่ IP ทั้งสองนี้ ที่อยู่ IP มีทั้ง /32 ที่อยู่สาธารณะที่กำหนดโดย Hetzner ที่อยู่ IP หลักของฉันสามารถเข้าถึงได้จากอินเทอร์เน็ต ฉันสามารถ ping จากภายนอกได้
หลังจากขอ IP ที่สอง ฉันได้รับอีเมลจาก Hetzner ว่าคำสั่งของฉันสำเร็จ และฉันสามารถกำหนดค่า IP ที่สองของฉันได้ ในเอกสารของ Hetzner ฉันอ่านว่ามันควรจะง่ายเหมือนกับการเพิ่มที่อยู่ IP ที่สองใน ที่อยู่
ส่วนใน /etc/netplan/01-netcfg.yaml
. ไฟล์นี้มีลักษณะดังนี้:
เครือข่าย:
รุ่น: 2
เรนเดอร์: เครือข่าย
อีเธอร์เน็ต:
enp9s0:
ที่อยู่:
- 50.50.50.201/32
- 50.50.50.199/32
เส้นทาง:
- ในลิงค์: จริง
ถึง: 0.0.0.0/0
ผ่าน: 50.50.50.193
เนมเซิร์ฟเวอร์:
ที่อยู่:
- ...
หลังจากบันทึกไฟล์ที่ฉันเรียกใช้ ลอง netplan
ที่แจ้งเกิดและประสบความสำเร็จ เข้าสู่
เพื่อบันทึกการกำหนดค่าใหม่ วิ่ง ไอพีแอดเดรส
ให้ฉัน:
...
2: enp9s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP กลุ่มเริ่มต้น qlen 1000
ลิงค์/อีเธอร์ a8:a1:22:1f:22:82 brd ff:ff:ff:ff:ff:ff
inet 50.50.50.201/32 ขอบเขต global enp9s0
valid_lft ตลอดไป reserved_lft ตลอดไป
inet 50.50.50.199/32 ขอบเขต global enp9s0
valid_lft ตลอดไป reserved_lft ตลอดไป
...
ตอนนี้ฉันสามารถ ping ip ที่สอง (.199) จากเซิร์ฟเวอร์ได้สำเร็จ แต่ไม่ใช่จาก www ความคิดใดที่เป็นเช่นนี้ ฉันต้องการให้แน่ใจว่า IP ที่สองของฉันสามารถเข้าถึงได้จากเว็บด้วย ฉันขาดอะไรในการกำหนดค่านี้
ขอบคุณมากล่วงหน้า!
แก้ไข:
ฉันกำลังเรียกใช้นักเทียบท่า แต่ ณ จุดนี้ ทุกสิ่งที่ฉันระบุไว้ที่นี่อยู่ในเครื่องโฮสต์ ดังนั้น Docker ยังไม่เกี่ยวข้อง ...
ลิงค์ ip -br
ให้ฉัน:
ลิงค์ $ ip -br
lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,ขึ้น,LOWER_UP>
enp9s0 ขึ้น a8:a1:22:1f:22:82 <BROADCAST,MULTICAST,UP,LOWER_UP>
นักเทียบท่า0 ลง 02:42:f8:c5:ee:a9 <ไม่มีผู้ให้บริการ ออกอากาศ มัลติคาสต์ ขึ้น>
br-ef57c188e0de ลง 02:42:dc:79:c6:f6 <ไม่มีผู้ให้บริการ,BROADCAST,MULTICAST,ขึ้น>
และ...
ที่อยู่ $ ip -4 -br
เลย UNKNOWN 127.0.0.1/8
enp9s0 ขึ้น 50.50.50.201/32 50.50.50.199/32
นักเทียบท่า0 ลง 172.17.0.1/16
br-ef57c188e0de ลง 172.18.0.1/16
และ...
เส้นทาง $ ip
เริ่มต้นผ่าน 50.50.50.193 dev enp9s0 proto static onlink
172.17.0.0/16 dev docker0 proto kernel scope ลิงก์ src 172.17.0.1 ลิงก์ดาวน์
172.18.0.0/16 dev br-ef57c188e0de ขอบเขตเคอร์เนลโปรโต ลิงก์ src 172.18.0.1 ลิงก์ดาวน์
และ...
กฎ $ ip
0: จากการค้นหาทั้งหมดในท้องถิ่น
32766: จากหลักการค้นหาทั้งหมด
32767: จากค่าเริ่มต้นการค้นหาทั้งหมด
และ...
$ ip ใกล้
172.18.0.2 dev br-ef57c188e0de ล้มเหลว
50.50.50.193 dev enp9s0 lladdr a8:a1:22:1f:22:82 เข้าถึงได้
fe80::1 dev enp9s0 lladdr a8:a1:22:1f:22:82 เราเตอร์ STALE
และในที่สุดก็...
$ iptables-บันทึก -c
# สร้างโดย iptables-save v1.8.4 ในวันเสาร์ที่ 14 พฤษภาคม 17:40:11 2022
*กรอง
: ยอมรับอินพุต [1021:88276]
:ส่งต่อ [233:12218]
: ยอมรับเอาต์พุต [920:161517]
:นักเทียบท่า - [0:0]
:DOCKER-ISOLATION-STAGE-1 - [0:0]
:DOCKER-ISOLATION-STAGE-2 - [0:0]
:นักเทียบท่า-ผู้ใช้ - [0:0]
[12631:643908] -A FORWARD -j นักเทียบท่า-ผู้ใช้
[12631:643908] -A ไปข้างหน้า -j นักเทียบท่า-ISOLATION-STAGE-1
[105:5500] -A ส่งต่อ -o br-ef57c188e0de -m conntrack --ctstate ที่เกี่ยวข้อง ก่อตั้ง -j ยอมรับ
[0:0] -A ไปข้างหน้า -o br-ef57c188e0de -j นักเทียบท่า
[6:324] -ไปข้างหน้า -i br-ef57c188e0de ! -o br-ef57c188e0de -j ยอมรับ
[0:0] -A ไปข้างหน้า -i br-ef57c188e0de -o br-ef57c188e0de -j ยอมรับ
[521962:778892991] -A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ยอมรับ
[0:0] -A ไปข้างหน้า -o นักเทียบท่า 0 -j นักเทียบท่า
[132612:7158451] -A FORWARD -i docker0 ! -o นักเทียบท่า 0 -j ยอมรับ
[0:0] -A FORWARD -i docker0 -o docker0 -j ยอมรับ
[6:324] -A DOCKER-ISOLATION-STAGE-1 -i br-ef57c188e0de ! -o br-ef57c188e0de -j DOCKER-ISOLATION-STAGE-2
[132612:7158451] -A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
[686521:790836880] -A DOCKER-ISOLATION-STAGE-1 -j ผลตอบแทน
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o br-ef57c188e0de -j DROP
[0:0] -A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
[132618:7158775] -A DOCKER-ISOLATION-STAGE-2 -j ผลตอบแทน
[709846:791932195] -A DOCKER-USER -j ผลตอบแทน
ให้สัญญา
# เสร็จสิ้นในวันเสาร์ที่ 14 พฤษภาคม 17:40:11 น. 2565
# สร้างโดย iptables-save v1.8.4 ในวันเสาร์ที่ 14 พฤษภาคม 17:40:11 2022
*แนท
: ยอมรับ [585:28528]
: ยอมรับอินพุต [357:16571]
: ยอมรับเอาต์พุต [12:720]
:หลังยอมรับ [12:720]
:นักเทียบท่า - [0:0]
[25260:1227195] -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
[3:252] -A เอาท์พุต ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
[3:180] -A โพสต์ -s 172.18.0.0/16 ! -o br-ef57c188e0de -j สวมหน้ากาก
[64:3912] -A โพสต์ -s 172.17.0.0/16 ! -o docker0 -j สวมหน้ากาก
[0:0] -นักเทียบท่า -i br-ef57c188e0de -j ผลตอบแทน
[0:0] -A DOCKER -i นักเทียบท่า 0 -j RETURN
ให้สัญญา
# เสร็จสิ้นในวันเสาร์ที่ 14 พฤษภาคม 17:40:11 น. 2565
นอกจากนี้ ฉันยังไม่ได้ตั้งค่ากฎไฟร์วอลล์ในฝั่ง Hetzner อีกด้วย
ขอบคุณที่สละเวลา!