Azure Ubuntu 20 VM端口无法访问求助:Tomcat/Neo4j/Jenkins无法连接
排查Azure Ubuntu虚拟机服务访问被拒绝问题
1. 检查Ubuntu本地防火墙(UFW)状态
Azure入站规则生效的前提下,本地防火墙可能拦截了端口。登录SSH后执行:
sudo ufw status
如果显示Status: active,需要确认是否允许了目标端口,执行以下命令开放并重载规则:
sudo ufw allow 443/tcp sudo ufw allow 80/tcp sudo ufw allow 7474/tcp sudo ufw allow 8081/tcp sudo ufw reload
若UFW处于关闭状态,直接跳过此步。
2. 验证服务监听的端口与地址
服务可能仅绑定了localhost(127.0.0.1),导致外部无法访问。执行以下命令查看端口监听情况:
sudo ss -tulpn | grep -E ':(443|80|7474|8081)'
正常输出应显示服务监听0.0.0.0或虚拟机的公网/内网IP,而非127.0.0.1。若绑定本地回环地址,需修改对应服务配置:
- Tomcat:修改
server.xml中<Connector>标签的address属性为0.0.0.0 - Neo4j:在
neo4j.conf中设置dbms.default_listen_address=0.0.0.0和dbms.connector.http.listen_address=0.0.0.0:7474 - Jenkins:启动时添加参数
--httpListenAddress=0.0.0.0,或修改配置文件中的监听地址
3. 确认服务是否正常运行
执行以下命令检查各服务状态:
# 检查Tomcat状态(若为systemd管理) sudo systemctl status tomcat # 检查Neo4j状态 sudo systemctl status neo4j # 检查Jenkins状态 sudo systemctl status jenkins
若服务未运行,启动对应服务:
sudo systemctl start tomcat sudo systemctl start neo4j sudo systemctl start jenkins
可设置开机自启(可选):
sudo systemctl enable tomcat sudo systemctl enable neo4j sudo systemctl enable jenkins
4. 核对Azure网络安全组(NSG)规则细节
即使已配置入站规则,仍需确认:
- 规则优先级足够高(数值越小优先级越高,避免被拒绝规则覆盖)
- 规则源地址设置为
Any或你的客户端IP(若指定IP,需确认当前客户端IP在范围内) - 规则协议为
TCP(这些服务均基于TCP协议) - NSG已关联到虚拟机的子网或网络接口
5. 测试本地连通性
在SSH会话中尝试本地访问服务,确认服务本身功能正常:
curl http://localhost:80 curl https://localhost:443 curl http://localhost:7474 curl http://localhost:8081
若本地访问也失败,说明服务本身配置或启动存在问题,需优先排查服务自身故障。
内容的提问来源于stack exchange,提问作者Apri
相关产品推荐
相关产品推荐

