ฉันกำลังพยายามติดตั้ง mailcow-dockerized ในเซิร์ฟเวอร์ของฉัน แต่ฉันมีปัญหากับเครือข่าย Docker ฉันลองหลายวิธีแล้ว แต่พบว่าการเชื่อมต่อหมดเวลาจำนวนมากในคอนเทนเนอร์
เพื่อแยกย่อยปัญหา ฉันตัดสินใจทิ้ง Mailcow ไว้ข้างหลังและติดตั้งเพียง Docker เพื่อพยายามระบุแหล่งที่มาของการหมดเวลาการเชื่อมต่อเหล่านี้
ดังนั้นฉันได้ติดตั้งอิมเมจ Ubuntu 20.04 ใหม่จากผู้จำหน่าย VPS ของฉันและตั้งค่าไฟร์วอลล์ ufw ดังนี้:
ค่าเริ่มต้น sudo ufw อนุญาตให้ส่งออก
sudo ufw เริ่มต้นปฏิเสธการรับเข้า
sudo ufw จำกัด ssh
sudo ufw อนุญาต ssh
sudo ufw อนุญาต http
sudo ufw อนุญาต https
sudo ufw อนุญาต smtp
sudo ufw อนุญาตให้ส่ง
sudo ufw อนุญาตให้ส่ง
sudo ufw อนุญาต pop3
sudo ufw อนุญาต pop3s
sudo ufw อนุญาต imap2
sudo ufw อนุญาต imaps
sudo ufw อนุญาต 4190/tcp
sudo ufw อนุญาต 8080/tcp
sudo systemctl เปิดใช้งาน ufw
sudo ufw เปิดใช้งาน
ฉันติดตั้ง Docker ด้วยสคริปต์ get-docker.sh
จาก https://get.docker.com
จากนั้นฉันเปิดใช้งาน IPV6 ในไฟล์ /etc/docker/daemon.json ด้วย:
{
"ipv6": จริง
"fixed-cidr-v6": "2001:db8:1::/64"
}
รีบูตเซิร์ฟเวอร์และสร้าง docker-compose.yaml:
รุ่น: '2.1'
บริการ:
S2:
ภาพ: nginx: ล่าสุด
พอร์ต:
- 80:80
รีสตาร์ท: เสมอ
เครือข่าย:
n1:
ipv4_address: 172.22.1.254
นามแฝง:
- s2
S3:
ภาพ: nginx: ล่าสุด
พอร์ต:
- 8080:80
รีสตาร์ท: เสมอ
เครือข่าย:
n1:
ipv4_address: 172.22.1.248
นามแฝง:
- s3
เครือข่าย:
n1:
คนขับ: สะพาน
driver_opts:
com.docker.network.bridge.name: n1
enable_ipv6: จริง
ไอแพม:
ไดรเวอร์: ค่าเริ่มต้น
การกำหนดค่า:
- เครือข่ายย่อย: 172.22.1.0/24
- เครือข่ายย่อย: fd4d:6169:6c63:6f77::/64
การกำหนดค่าเครือข่ายนี้ฉันได้รับจาก docker-compose.yaml ใน Mailcow git และเปลี่ยนเพื่อปรับให้เข้ากับการทดสอบของฉัน
และฉันเรียกใช้คอนเทนเนอร์ด้วย นักเทียบท่าเขียนขึ้น -d
.
เมื่อฉันทำ ขด localhost 80
ในเซิร์ฟเวอร์โฮสต์ จะส่งคืนเนื้อหา index.html เริ่มต้นจาก Nginxแต่... การเชื่อมต่อถูกระงับเป็นเวลาหลายนาทีจากนั้นเชลล์จะแสดงข้อความต่อไปนี้ในตอนท้าย:
ขด: (28) ไม่สามารถเชื่อมต่อกับพอร์ต 80 80: การเชื่อมต่อหมดเวลา
เมื่อฉันวิ่ง ขด <myservername.com> 80
ในเครื่องคอมพิวเตอร์ของฉัน มันจะส่งคืนเนื้อหา index.html จากค่าเริ่มต้นของ Nginx ด้วย แต่มีข้อความต่อท้าย:
curl: (7) ล้มเหลวในการเชื่อมต่อกับพอร์ต 0.0.0.80 80 หลังจาก 0 ms: ไม่สามารถเข้าถึงเครือข่ายได้
เงื่อนงำใด ๆ เกี่ยวกับสาเหตุที่ฉันได้รับข้อผิดพลาดเหล่านี้
PS: สถานะ ufw ของฉัน:
# ufw สถานะโดยละเอียด
สถานะ: ใช้งานอยู่
การบันทึก: เปิด (ต่ำ)
ค่าเริ่มต้น: ปฏิเสธ (ขาเข้า) อนุญาต (ขาออก) ปฏิเสธ (กำหนดเส้นทาง)
โปรไฟล์ใหม่: ข้าม
ถึงการดำเนินการจาก
-- ------ ----
22/tcp อนุญาตในทุกที่
80/tcp อนุญาตในทุกที่
443/tcp อนุญาตในทุกที่
25/tcp อนุญาตในทุกที่
587/tcp อนุญาตในทุกที่
465/tcp อนุญาตในทุกที่
110/tcp อนุญาตในทุกที่
995/tcp อนุญาตในทุกที่
143/tcp อนุญาตในทุกที่
993/tcp อนุญาตในทุกที่
4190/tcp อนุญาตในทุกที่
8080/tcp อนุญาตในทุกที่
22/tcp (v6) อนุญาตในทุกที่ (v6)
80/tcp (v6) อนุญาตในทุกที่ (v6)
443/tcp (v6) อนุญาตในทุกที่ (v6)
25/tcp (v6) อนุญาตในทุกที่ (v6)
587/tcp (v6) อนุญาตในทุกที่ (v6)
465/tcp (v6) อนุญาตในทุกที่ (v6)
110/tcp (v6) อนุญาตในทุกที่ (v6)
995/tcp (v6) อนุญาตในทุกที่ (v6)
143/tcp (v6) อนุญาตในทุกที่ (v6)
993/tcp (v6) อนุญาตในทุกที่ (v6)
4190/tcp (v6) อนุญาตในทุกที่ (v6)
8080/tcp (v6) อนุญาตในทุกที่ (v6)
และผลลัพธ์ lsof:
# lsof -i -P -n | ฟัง
sshd 967 รูท 3u IPv4 35459 0t0 TCP *:22 (ฟัง)
sshd 967 รูท 4u IPv6 35461 0t0 TCP *:22 (ฟัง)
นักเทียบท่า-pr 1290 รูท 4u IPv4 39102 0t0 TCP *:80 (ฟัง)
นักเทียบท่า-pr 1308 รูท 4u IPv6 38124 0t0 TCP *:80 (ฟัง)
นักเทียบท่า-pr 1322 รูท 4u IPv4 38165 0t0 TCP *:8080 (ฟัง)
นักเทียบท่า-pr 1328 รูท 4u IPv6 38172 0t0 TCP *:8080 (ฟัง)
การตรวจสอบ Termshark เมื่อทำงาน ขด localhost 80
ในโฮสต์:
เลขที่- เวลา - ต้นทาง - ปลายทาง - โปรโตคอล - ความยาว - ข้อมูล -
1 0.000000 fd4d:6169:6c63 fd4d:6169:6c63 TCP 94 39946 â 80 [SYN] Seq=0 Win=64800 Len=0 MSS=
2 0.000047 fd4d:6169:6c63 fd4d:6169:6c63 TCP 94 80 â 39946 [SYN, ACK] Seq=0 Ack=1 Win=64260
3 0.000088 fd4d:6169:6c63 fd4d:6169:6c63 TCP 86 39946 â 80 [ACK] Seq=1 Ack=1 Win=64896 Len=
4 0.000516 fd4d:6169:6c63 fd4d:6169:6c63 HTTP 159 รับ / HTTP/1.1
5 0.000544 fd4d:6169:6c63 fd4d:6169:6c63 TCP 86 80 â 39946 [ACK] Seq=1 Ack=74 Win=64256 Len
6 0.000765 fd4d:6169:6c63 fd4d:6169:6c63 TCP 324 HTTP/1.1 200 ตกลง [ส่วน TCP ของการประกอบใหม่
7 0.000791 fd4d:6169:6c63 fd4d:6169:6c63 TCP 86 39946 â 80 [ACK] Seq=74 Ack=239 Win=64768 L
8 0.000821 fd4d:6169:6c63 fd4d:6169:6c63 HTTP 701 HTTP/1.1 200 ตกลง (ข้อความ/html)
9 0.000829 fd4d:6169:6c63 fd4d:6169:6c63 TCP 86 39946 â 80 [ACK] Seq=74 Ack=854 Win=64256 L
10 65.01291 fd4d:6169:6c63 fd4d:6169:6c63 TCP 86 80 â 39946 [FIN, ACK] Seq=854 Ack=74 Win=64
11 65.05677 fd4d:6169:6c63 fd4d:6169:6c63 TCP 86 39946 â 80 [ACK] Seq=74 Ack=855 Win=64256 L
12 130.8576 fd4d:6169:6c63 fd4d:6169:6c63 TCP 86 39946 â 80 [FIN, ACK] Seq=74 Ack=855 Win=64
13 130.8577 fd4d:6169:6c63 fd4d:6169:6c63 TCP 74 80 â 39946 [RST] Seq=855 Win=0 Len=0
14 131.0647 fd4d:6169:6c63 fd4d:6169:6c63 TCP 86 [TCP Retransmission] 39946 â 80 [FIN, ACK]
15 131.0648 fd4d:6169:6c63 fd4d:6169:6c63 TCP 74 80 â 39946 [RST] Seq=855 Win=0 Len=0
16 131.2727 fd4d:6169:6c63 fd4d:6169:6c63 TCP 86 [TCP Retransmission] 39946 â 80 [FIN, ACK]
17 131.2728 fd4d:6169:6c63 fd4d:6169:6c63 TCP 74 80 â 39946 [RST] Seq=855 Win=0 Len=0
18 131.6888 fd4d:6169:6c63 fd4d:6169:6c63 TCP 86 [TCP Retransmission] 39946 â 80 [FIN, ACK]
19 131.6888 fd4d:6169:6c63 fd4d:6169:6c63 TCP 74 80 â 39946 [RST] Seq=855 Win=0 Len=0
20 132.5208 fd4d:6169:6c63 fd4d:6169:6c63 TCP 86 [TCP Retransmission] 39946 â 80 [FIN, ACK]
21 132.5209 fd4d:6169:6c63 fd4d:6169:6c63 TCP 74 80 â 39946 [RST] Seq=855 Win=0 Len=0
22 134.1847 fd4d:6169:6c63 fd4d:6169:6c63 TCP 86 [TCP Retransmission] 39946 â 80 [FIN, ACK]
23 134.1850 fd4d:6169:6c63 fd4d:6169:6c63 TCP 74 80 â 39946 [RST] Seq=855 Win=0 Len=0
24 137.5129 fd4d:6169:6c63 fd4d:6169:6c63 TCP 86 [TCP Retransmission] 39946 â 80 [FIN, ACK]
25 137.5131 fd4d:6169:6c63 fd4d:6169:6c63 TCP 74 80 â 39946 [RST] Seq=855 Win=0 Len=0
ผลลัพธ์ Termshark เมื่อทำงาน ขด <myserver.com> 80
ในคอมพิวเตอร์ของฉัน
ครั้งที่ - เวลา - ที่มา - ปลายทาง - โปรโตคอล - ความยาว - ข้อมูล -
1 0.000000 170.78.36.7 172.22.1.254 TCP 66 62787 â 80 [SYN] Seq=0 Win=64240 Len=0 MSS=
2 0.000063 172.22.1.254 170.78.36.7 TCP 66 80 â 62787 [SYN, ACK] Seq=0 Ack=1 Win=64240
3 0.007119 170.78.36.7 172.22.1.254 TCP 54 62787 â 80 [ACK] Seq=1 Ack=1 Win=131840 Len
4 0.009563 170.78.36.7 172.22.1.254 HTTP 133 GET / HTTP/1.1
5 0.009628 172.22.1.254 170.78.36.7 TCP 54 80 â 62787 [ACK] Seq=1 Ack=80 Win=64256 Len
6 0.009884 172.22.1.254 170.78.36.7 TCP 292 HTTP/1.1 200 ตกลง [ส่วน TCP ของการประกอบใหม่
7 0.010001 172.22.1.254 170.78.36.7 HTTP 669 HTTP/1.1 200 ตกลง (ข้อความ/html)
8 0.019889 170.78.36.7 172.22.1.254 TCP 54 62787 â 80 [ACK] Seq=80 Ack=854 Win=130816
9 0.039001 170.78.36.7 172.22.1.254 TCP 54 62787 â 80 [FIN, ACK] Seq=80 Ack=854 Win=13
10 0.039211 172.22.1.254 170.78.36.7 TCP 54 80 â 62787 [FIN, ACK] Seq=854 Ack=81 Win=64
11 0.046453 170.78.36.7 172.22.1.254 TCP 54 62787 â 80 [ACK] Seq=81 Ack=855 Win=130816