解决宿主机Mac不能访问虚拟机中CentOS的Tomcat服务器

版权声明:本文为博主原创文章,转载请联系作者并注明出处 https://blog.csdn.net/asahinokawa/article/details/82285390

情况描述

虚拟机中的系统为CentOS,充当服务器,但是开启Tomcat后,在宿主机Mac中无法访问,显示请求被拒接,如下:
这里写图片描述
除此之外,但是可以使用ssh,也可以ping通

分析

初步认为就是防火墙的问题,但是参考iptables的一些停用方法,直接显示没有iptables这个服务;后面想验证到底是宿主机还是虚拟机的问题,在5000端口,跑了一个简单的Flask服务器(在虚拟机中可通过本机ip地址+端口号进行访问),在宿主机中仍然无法访问,同时也通过其他的一些设备来访问相应的服务器,都无法访问,从这里看来,问题还是出在了虚拟机中;后面又在宿主机mac中开启了一个服务器,在虚拟机和其它局域网设备中都可以访问,因此断定还是虚拟机的问题。那么,没有安装iptables的CentOS,究竟是出了什么问题呢?

解决办法

因为我使用的是CentOS 7,使用iptables的版本是7以前的,CentOS 7使用firewall作为防火墙。

查看已经开放的端口:firewall-cmd --list-ports
开启端口:firewall-cmd --zone=public --add-port=80/tcp --permanent

命令含义:

–zone #作用域add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效

重启、停止、禁用、查看防火墙

firewall-cmd --reload #重启firewall
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

因此结合上述命令来看,需要将8080端口添加到防火墙的开放端口中,然后重新载入防火墙的配置即可。如下:

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports

最后面来一张成功访问的截图:
这里写图片描述

参考:https://www.cnblogs.com/oskyhg/p/7293915.html

猜你喜欢

转载自blog.csdn.net/asahinokawa/article/details/82285390
今日推荐