无法通过公网IP访问Azure Ubuntu VM及Nginx服务,求故障排查
Azure Ubuntu虚拟机公网无法访问的故障排查方案
检查网络安全组(NSG)入站规则细节
确保入站规则明确允许TCP 80端口,源地址设置为Any或你的本地PC公网IP,且规则优先级高于默认的"全部拒绝"规则(Azure NSG默认低优先级规则会拒绝所有未明确允许的入站流量)。同时确认规则的目标端口范围包含80,协议为TCP,状态为"已启用"。排查Ubuntu本地防火墙(ufw)
登录虚拟机执行ufw status,若防火墙处于启用状态,需确认已添加允许80端口的规则:ufw allow 80/tcp若未添加该规则,外部流量会被本地防火墙阻断,而内部
curl localhost:80不受影响。确认Nginx的监听地址
执行以下命令检查Nginx实际监听的IP和端口:ss -tulpn | grep nginx确保输出显示Nginx监听
0.0.0.0:80(所有网卡),而非仅127.0.0.1:80(仅本地回环)。若仅监听localhost,需修改/etc/nginx/sites-available/default配置,将listen 80 default_server;改为listen 0.0.0.0:80 default_server;,然后重启Nginx:systemctl restart nginx验证公网IP的关联状态
登录Azure门户,确认虚拟机的网络接口已正确关联该公网IP,且IP地址为"已分配"状态(动态IP可能因VM重启变更,需确认本地PC访问的IP是当前生效的公网IP)。检查自定义路由表(若有)
若虚拟机所在子网关联了自定义路由表,需确认路由表中存在允许公网流量进出的规则,不存在将80端口流量导向黑洞或无效地址的路由。
内容的提问来源于stack exchange,提问作者Leon Chang
相关产品推荐
相关产品推荐

