Score:0

ไม่สามารถเข้าถึงอินเทอร์เฟซแอปพลิเคชันที่เรียกใช้ทราฟฟิกคอนเทนเนอร์ผ่านคอนเทนเนอร์

ธง de

ฉันสร้างการตั้งค่าต่อไปนี้โดยใช้คอนเทนเนอร์นักเทียบท่า

  • โฮสต์นักเทียบท่า: เครื่องจริงที่รันคอนเทนเนอร์นักเทียบท่า
    • เปิด VPN: คอนเทนเนอร์ที่ทำงาน openvpn และเชื่อมต่อกับ VPN โดยอัตโนมัติ
    • zbget: คอนเทนเนอร์ที่รัน nzbget, เว็บอินเตอร์เฟสสามารถเข้าถึงได้ที่พอร์ต <นักเทียบท่า-โฮสต์-ip>:6789

ข้อเท็จจริง:

  • ฉันสามารถเข้าถึงคอนเทนเนอร์ทั้งหมดโดยใช้ IP โฮสต์นักเทียบท่า
  • การเชื่อมต่อ openvpn กำลังสร้างการเชื่อมต่อ VPN สำเร็จ
  • เดอะ zbget พร้อมใช้งานแล้ว

ขั้นตอนที่สองของแผนของฉันคือการกำหนดเส้นทางการจราจรของ zbget คอนเทนเนอร์ผ่าน เปิด VPN คอนเทนเนอร์. ฉันทำได้สำเร็จโดยเพิ่มบรรทัดต่อไปนี้ใน docker-compose.yaml ของคอนเทนเนอร์ nzbget:

...
network_mode: "คอนเทนเนอร์: openvpn" `
...

หลังจากนี้ขอรับ ipinfo.io แสดง IP ของ VPN ให้ฉันดู แต่หลังจากนี้ฉันสูญเสียการเข้าถึงเว็บอินเตอร์เฟส nzbget ผ่าน <นักเทียบท่า-โฮสต์-ip>:6789 (หมดเวลาการเชื่อมต่อ). เมื่อฉัน (เพื่อวัตถุประสงค์ในการทดสอบ) ไม่ปล่อยให้ เปิด VPN คอนเทนเนอร์สร้างการเชื่อมต่อ VPN และรีสตาร์ทคอนเทนเนอร์ทั้งสอง ฉันสามารถเชื่อมต่อกับอินเทอร์เฟซ nzbget ได้โดยใช้ <นักเทียบท่า-โฮสต์-ip>:6789. ดังนั้นฉันจึงดูเหมือนว่าการเชื่อมต่อ VPN นั้นขัดขวางไม่ให้ฉันเชื่อมต่อกับคอนเทนเนอร์ nzbget

ตอนนี้คำถามคือ: ฉันจะกำหนดค่า openvpn ได้อย่างไรเพื่อให้ฉันเชื่อมต่อกับ nzbget webinterface โดยใช้ <นักเทียบท่า-โฮสต์-ip>:6789.

ฉันสังเกตเห็นการมองไปที่ บันทึกนักเทียบท่า ของ เปิด VPN คอนเทนเนอร์ที่เมื่อสร้างการเชื่อมต่อ VPN เส้นทางบางเส้นทางจะถูกเพิ่ม:

...
2021-11-16 19:03:38 เปิดอุปกรณ์ TUN/TAP tun0
2021-11-16 19:03:38 /sbin/ip link set dev tun0 up mtu 1500
2021-11-16 19:03:38 /sbin/ip link set dev tun0 up
16-11-2021 19:03:38 /sbin/ip addr เพิ่ม dev tun0 10.7.2.7/24
2021-11-16 19:03:38 /sbin/ip เส้นทางเพิ่ม <vpn-ip-address>/32 ผ่าน 172.18.0.1
2021-11-16 19:03:38 /sbin/ip เส้นทางเพิ่ม 0.0.0.0/1 ผ่าน 10.7.2.1
2021-11-16 19:03:38 /sbin/ip เส้นทางเพิ่ม 128.0.0.0/1 ผ่าน 10.7.2.1
...

ฉันคิดว่าการกำหนดค่าผิด/เส้นทาง IP ที่ขัดแย้งกันเป็นสาเหตุของปัญหาของฉัน นี่คือข้อมูลเพิ่มเติม

อินเตอร์เฟสบน เปิด VPN คอนเทนเนอร์:

1: จริง: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    ลิงค์ / ย้อนกลับ 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 ขอบเขตโฮสต์ lo
       valid_lft ตลอดไป reserved_lft ตลอดไป
2: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast สถานะ UNKNOWN qlen 500
    ลิงค์/[65534] 
    inet 10.7.2.7/24 ขอบเขต global tun0
       valid_lft ตลอดไป reserved_lft ตลอดไป
85: eth0@if86: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue สถานะ UP 
    ลิงค์/อีเธอร์ 02:42:ac:12:00:02 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.2/16 brd 172.18.255.255 ขอบเขต global eth0
       valid_lft ตลอดไป reserved_lft ตลอดไป

รายการเส้นทาง IP เมื่อเปิดใช้งาน VPN เปิด VPN คอนเทนเนอร์:

root@cf64c3dd2846:/# รายการเส้นทาง ip
0.0.0.0/1 ผ่าน 10.7.2.1 dev tun0 
ค่าเริ่มต้นผ่าน 172.18.0.1 dev eth0 
10.7.2.0/24 dev tun0 ลิงค์ขอบเขต src 10.7.2.7 
<vpn-ip-address> ผ่าน 172.18.0.1 dev eth0 
128.0.0.0/1 ผ่าน 10.7.2.1 dev tun0 
172.18.0.0/16 dev eth0 ลิงค์ขอบเขต src 172.18.0.2 

รายการเส้นทาง IP เมื่อเป็น VPN ไม่ ใช้งานอยู่ เปิด VPN คอนเทนเนอร์ (ในสถานการณ์นี้ฉันสามารถเข้าถึงเว็บอินเตอร์เฟส nzbget):

ค่าเริ่มต้นผ่าน 172.18.0.1 dev eth0 
172.18.0.0/16 dev eth0 ลิงก์ขอบเขตเคอร์เนลโปรโต src 172.18.0.2

มีใครทราบกฎเส้นทาง IP ที่ฉันสามารถใช้เพื่ออนุญาตให้เข้าถึง nzbget webinterface ได้บ้าง ในขณะที่มีการเชื่อมต่อ VPN ที่ใช้งานอยู่? ตัวอย่างเช่น มีวิธีอนุญาต (เฉพาะ) ทราฟฟิกขาเข้าบนพอร์ต 6789 เพื่อกำหนดเส้นทาง "ปกติ" (ไม่ผ่าน VPN)

ขอบคุณสำหรับความช่วยเหลือของคุณ!

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา