我正在尝试调试 CentOS 服务器之间的专用连接
我正在尝试从服务器 1 ( Web ) 连接到 MySQL 到服务器 2 ( MySQL )
在这两个设备上,我都设置了网络设备firewalld
- 将设备添加ens10
到trusted
区域
在服务器 2 上,我已将mysql
服务器添加为服务firewalld
在服务器 1 上我打开了端口3306
server1 上的命令
$ firewall-cmd --zone=trusted --change-interface=ens10 --permanent
$ firewall-cmd --zone=trusted --permanent --add-port=3306/tcp
$ firewall-cmd --reload
server2 上的命令
$ firewall-cmd --zone=trusted --change-interface=ens10 --permanent
$ firewall-cmd --zone=trusted --add-service=mysql --permanent
$ firewall-cmd --reload
调试
服务器2
$ sudo netstat -tulpn | grep LISTEN
tcp 0 0 10.0.0.4:3306 0.0.0.0:* LISTEN 920/mysqld
tcp6 0 0 :::33060 :::* LISTEN 920/mysqld
现在奇怪的东西(至少对我来说)
来自服务器 1 的命令
$ telnet 10.0.0.4
Trying 10.0.0.4...
telnet: connect to address 10.0.0.4: No route to host # same goes for 3306 port
$ ping -c2 10.0.0.4
PING 10.0.0.4 (10.0.0.4) 56(84) bytes of data.
64 bytes from 10.0.0.4: icmp_seq=1 ttl=63 time=0.788 ms
64 bytes from 10.0.0.4: icmp_seq=2 ttl=63 time=0.589 ms
--- 10.0.0.4 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 22ms
rtt min/avg/max/mdev = 0.589/0.688/0.788/0.102 ms
你认为发生了什么?有任何想法吗 ?
答案1
你会得到不同的结果,因为他们正在测试不同的东西。
Ping 使用 ICMP(man ping)
ping 使用 ICMP 协议的强制 ECHO_REQUEST 数据报从主机或网关引发 ICMP ECHO_RESPONSE。 ECHO_REQUEST 数据报 (ping) 具有 IP 和 ICMP 标头,后跟 struct timeval,然后是用于填充数据包的任意数量的填充字节。
另一方面,Telnet 使用 TELNET 协议(通常端口 23/tcp)(man telnet)
telnet 命令用于使用 TELNET 协议与另一台主机进行通信。
正如 @panki 所写,您需要在运行 MySQL 服务器的服务器上打开端口 3306。
telnet 3306
然后从服务器 1进行测试。
答案2
问题在于不更改--permanent
选项界面以及不再次设置public
界面eth0
设置刚刚
firewall-cmd --permanent --zone=trusted --change-interface=ens10
没有
firewall-cmd --permanent --zone=public --change-interface=eth0
firewall-cmd --reload
一旦执行就会导致丢失更改
感谢您的回答和评论