S1
虚拟机 1:Ubuntu 应用服务器
虚拟机 2:MariaDB 1
S2
虚拟机 3:Ubuntu 应用服务器
虚拟机 4:MariaDB 2
从 vm04 和 03 我可以使用端口 3306 的连接字符串连接到 DB1,但无法从 vm01 和 02 连接 DB2
telnet 可以从 3306 连接到 DB2
两个数据库均为 MariaDB 10.6,并且所有虚拟机的配置均相同。VM03 可以连接到 DB2。
当我使用 tcpdump 监听 DB2 流量时,我可以看到请求到达了 DB,但是之后发生了什么我并不确切知道。
任何想法:
netstat -tulpn | grep 收听 |复制代码
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 5145/mariadbd
tcp6 0 0 :::3306 :::* LISTEN 5145/mariadbd
编辑:
DB1的错误信息
2023-02-27 12:32:17 5771 [Warning] Aborted connection 5771 to db: 'testdev' user: 'testuser' host: 'vm02' (Got timeout reading communication packets)
路由 -n (db2)
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 PublicIP 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 192.168.1.151 0.0.0.0 UG 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
s1 192.168.2.0/24
s2 192.168.1.0/24
iptables
iptables -A FORWARD -p tcp --source 192.168.2.1/24 --dport 3306 -j ACCEPT
iptables -A FORWARD -p tcp --source 192.168.2.1/24 --dport 3307 -j ACCEPT
iptables -A INPUT -p tcp --source 192.168.2.1/24 --dport 3306 -j ACCEPT
iptables -A INPUT -p tcp --source 192.168.2.1/24 --dport 3307 -j ACCEPT
same for 1.1./24 subnets