Azure Linux VM部署网站后无法通过指定IP访问求助
排查Azure Linux VM网站无法访问的步骤
一、VM内部服务与防火墙排查
- 验证服务监听状态:执行
ss -tulpn | grep -E ":80|:83",确认对应端口有进程在监听。如果无输出,说明服务未启动或端口配置错误,先检查服务配置文件(比如Nginx的nginx.conf、Apache的httpd.conf),确保监听端口正确,再重启服务。 - 本地访问测试:在VM内部执行
curl http://localhost:80或curl http://<VM私有IP>:83,如果请求失败,说明服务本身存在问题(如配置错误、依赖缺失),优先解决服务故障。 - 检查Linux本地防火墙:
- Ubuntu/Debian系统:执行
sudo ufw status,确认80、83端口已被允许。未添加则执行sudo ufw allow 80/tcp、sudo ufw allow 83/tcp。 - CentOS/RHEL系统:执行
sudo firewall-cmd --list-all,若端口未在允许列表,添加规则sudo firewall-cmd --add-port=80/tcp --permanent、sudo firewall-cmd --add-port=83/tcp --permanent,再执行sudo firewall-cmd --reload生效。
- Ubuntu/Debian系统:执行
二、Azure网络层面排查
- 确认公共IP正确性:在Azure门户VM概述页查看公共IP地址,若为动态IP,重启VM后可能变更,建议设置为静态IP避免此问题。
- 检查网络安全组(NSG)入站规则:
- NSG可能绑定在VM网卡或子网,需确保两者的NSG均配置了正确规则:
- 规则优先级需低于默认的
DenyAllInBound(优先级数值越大,执行顺序越靠后,建议设为1000左右) - 源地址设为
Any(测试阶段),目标端口范围填80,83,协议选择TCP,动作为允许
- 规则优先级需低于默认的
- 在VM的网络接口页面查看「有效安全规则」,确认80、83端口的入站规则已生效。
- NSG可能绑定在VM网卡或子网,需确保两者的NSG均配置了正确规则:
- 排查Azure防火墙(若启用):如果VM所在虚拟网络配置了Azure防火墙,需添加DNAT规则或应用规则,允许外部访问80/83端口。
- 确认VM运行状态:在Azure门户确认VM处于「运行中」状态,无重启、故障等异常。
三、本地网络与浏览器排查
- 用Chrome隐私模式访问,或清除浏览器缓存,排除缓存导致的访问异常。
- 切换网络测试(如手机流量),排除本地路由器、防火墙的拦截。
- 端口连通性测试:在本地执行
nc -zv <VM公共IP> 80或telnet <VM公共IP> 83,若提示「连接超时」则是网络层面不通;若提示「连接被拒绝」则是VM内部服务未启动或本地防火墙拦截。
AWS与Azure差异提示
Azure的NSG与AWS安全组逻辑类似,但NSG可绑定到子网或网卡,需同时检查两者的规则;另外Azure公共IP默认动态,需手动设置为静态才能固定地址。
内容的提问来源于stack exchange,提问作者Osas nathaniel
相关产品推荐
相关产品推荐

