telnet 和 ping - 不同的结果

telnet 和 ping - 不同的结果

我正在尝试调试 CentOS 服务器之间的专用连接

我正在尝试从服务器 1 ( Web ) 连接到 MySQL 到服务器 2 ( MySQL )

在这两个设备上,我都设置了网络设备firewalld- 将设备添加ens10trusted区域

在服务器 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一旦执行就会导致丢失更改

感谢您的回答和评论

相关内容