主机通过浏览器不能访问到虚拟机的web服务器

本文介绍了如何解决虚拟机中Web服务器的80端口被防火墙阻塞的问题,提供了详细的步骤,包括修改防火墙设置、保存及重启防火墙等操作。

问题:::

1.宿主机可以ping通虚拟机

2.虚拟机可以ping通宿主机

3.虚拟机可以通过http://localhost来访问web服务器

4.宿主机通过浏览器不能访问到web服务器

首先,我在宿主机的dos窗口下telnet虚拟机的80窗口,失败了,由此可以确定是虚拟机的80窗口有问题,应该是被防火墙堵住了。

找了好久,终于是找到了解决的办法了:

1.修改防火墙设置:在Shell下输入命令 /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT

2.保存上面的设置:/etc/rc.d/init.d/iptables saved

3.重启防火墙:/etc/init.d/iptables restart




最直接的 打开iptables 
gedit /etc/sysconfig/iptables  

在里面添加下面的(增加80,8080)

-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT 


然后重启service iptables restart

本地无法访问本机 Web 服务器,可从以下方面排查解决: ### 代码逻辑方面 检查创建服务器的代码是否存在语法或逻辑错误。例如,确保正确引入 `express` 模块,正确监听端口。以下是正确创建 Express 服务器的示例代码: ```javascript const express = require('express'); const app = express(); const port = 3000; app.get('/', (req, res) => { res.send('Hello World!'); }); app.listen(port, () => { console.log(`Server is running on port ${port}`); }); ``` ### 端口占用方面 指定的端口可能已被其他应用程序占用。可通过命令查看端口占用情况,在 Windows 系统中使用 `netstat -ano | findstr :端口号` 命令,在 Linux 系统中使用 `lsof -i:端口号` 命令。若端口被占用,可更换服务器使用的端口。 ### 防火墙限制方面 防火墙可能会阻止对服务器端口的访问。需检查本地防火墙设置,确保允许外部访问服务器所使用的端口。如在 Windows 系统中,可在防火墙的入站规则中添加允许该端口的规则;在 Linux 系统中,可使用 `iptables` 或 `firewalld` 命令来开放端口。以在 Windows 系统中允许 HTTP 访问为例,可入控制面板 -> Windows 防火墙 -> 高级 -> 设置相应网络适配器 -> Web 服务器(HTTP),将服务器的 IP 加入允许列表(win8.1 系统一般情况下可以用设置防火墙)[^3]。 ### 静态资源路径方面 若使用 `express.static()` 创建静态资源服务器,需确保指定的静态资源目录存在且路径正确。示例代码如下: ```javascript const express = require('express'); const app = express(); app.use(express.static('public')); ``` ### 网络连接方面 确保客户端和服务器在同一网络中,并且可以相互访问。若使用虚拟机搭建服务器,要保证主机能 ping 通虚拟机虚拟机也能 ping 通主机。若出现主机无法访问虚拟机 Web 服务器的情况,可能是防火墙将相应端口屏蔽,如之前有案例是防火墙将 80 端口屏蔽导致无法访问[^1]。 ### 服务器配置方面 同版本的 Windows Server 搭建 Web 服务器同的配置步骤,需确保正确配置。例如 Windows Server 2003 需点击左下角开始 -> 管理工具 -> 管理您的服务器,点击添加或删除角色等一系列操作;Windows Server 2008 点击右下角第二个图标,点击角色,点击添加角色等;Windows Server 2012 开机后默认打开服务器管理器,点击添加角色和功能等;Windows Server 2016 与 2012 版本步骤一致;Windows Server 2019 默认已经安装。配置完成后,通过浏览器访问本地 IP 行测试[^4]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值