记录一下ubuntu22.02可以ping通,但是telnet不行
·
Ubuntu 22.04 网络故障记录:可 Ping 不可 Telnet
问题描述
在 Ubuntu 22.04 系统中,目标主机可以通过 ping 命令正常连通,但使用 telnet 命令连接某个端口时失败。
现象举例
# ping 正常
ping 192.168.1.100
# telnet 失败(如连接 80 端口)
telnet 192.168.1.100 80
# 或报错:
# telnet: Unable to connect to remote host: Connection refused
排查思路
1. 网络连通性检查
ping 192.168.1.100
traceroute 192.168.1.100
说明 ICMP 协议通,网络无丢包,路由正常。
2. 检查目标端口监听状态
在目标主机(192.168.1.100)上执行:
sudo ss -tuln
确认是否存在监听端口,例如 80 端口是否由某服务(如 nginx、apache)监听:
LISTEN 0 128 0.0.0.0:80 0.0.0.0:*
若未监听,说明服务未启动或端口未开放。
3. 检查防火墙设置(ufw)
在目标主机上运行:
sudo ufw status
可能输出:
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
如果目标端口(如 80)未被允许,需要放行:
sudo ufw allow 80
重新载入防火墙规则:
sudo ufw reload
4. 确认服务是否正常运行
例如目标主机为 Web 服务:
sudo systemctl status nginx
# 或 apache2,或其他服务
若服务未运行:
sudo systemctl start nginx
5. 检查目标服务是否绑定正确 IP
有些服务默认只绑定到 127.0.0.1,外部访问失败。
检查配置文件:
-
nginx:
/etc/nginx/sites-enabled/default -
apache:
/etc/apache2/ports.conf
确保监听地址为 0.0.0.0 或服务器公网 IP。
6. SELinux/AppArmor(可选)
Ubuntu 默认使用 AppArmor,可能限制了某些服务的网络访问。
查看是否启用 AppArmor:
sudo aa-status
若相关服务被限制,可尝试临时或永久放宽策略(高级操作)。
7. Telnet 客户端是否安装
有些系统未默认安装 telnet:
sudo apt install telnet
结论与解决方案总结
| 项目 | 检查项 | 结果 | 处理方式 |
|---|---|---|---|
| 网络连通 | ping 成功 |
✅ 正常 | - |
| 服务监听 | ss -tuln 无 80 端口 |
❌ 异常 | 启动服务 |
| 防火墙规则 | ufw status 拒绝 80 |
❌ 异常 | ufw allow 80 |
| 服务状态 | nginx 未运行 |
❌ 异常 | systemctl start nginx |
| IP 绑定 | 仅监听 127.0.0.1 | ❌ 异常 | 配置为 0.0.0.0 |
| telnet 工具 | 未安装 | ❌ 异常 | apt install telnet |
附录
telnet 使用说明
telnet [IP] [PORT]
# 示例:
telnet 192.168.1.100 22
备注
-
ping 通并不代表 TCP 端口通,ping 使用 ICMP,而 telnet 使用 TCP。
-
建议使用
telnet或更现代的工具如nc、curl、ss进行端口测试。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)