1. 后端开发者必备的Linux网络诊断技巧
作为一名长期奋战在后端开发一线的工程师,我深刻体会到掌握Linux网络命令的重要性。在日常工作中,服务部署、端口检查、网络连通性测试等场景几乎每天都会遇到。今天我就分享一个非常实用的端口检查脚本,以及背后的原理和扩展用法。
这个简单的for循环脚本虽然只有几行,但包含了几个关键知识点:端口检查、sudo权限管理和输出过滤。我们先来看原始脚本:
bash复制for port in 30010 30030 31030 31040 36001; do
echo "检查端口 $port:"
sudo ss -tuln | grep ":$port"
done
这个脚本会依次检查30010、30030、31030、31040和36001五个端口的使用情况。当你在服务器上部署新服务时,这种批量检查可以快速确认端口是否可用。
1.1 为什么选择ss命令而不是netstat
很多老教程会推荐使用netstat命令,但在现代Linux系统中,ss命令才是更优选择:
- 性能优势:ss直接从内核空间获取信息,而netstat需要遍历/proc文件系统,在大规模连接时明显更慢
- 功能全面:ss支持更丰富的过滤和输出选项
- 未来发展:netstat已被标记为过时,新系统可能不再预装
提示:在较新的Linux发行版(如Ubuntu 18.04+、CentOS 7+)中,建议统一使用ss命令
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 端口检查命令深度解析
2.1 ss命令参数详解
让我们拆解脚本中的sudo ss -tuln命令:
-t:显示TCP连接-u:显示UDP连接-l:仅显示监听中的套接字-n:以数字形式显示地址和端口(不进行DNS解析)
这个组合可以列出所有正在监听的TCP/UDP端口及其对应的服务。
2.2 权限管理的最佳实践
脚本中使用sudo是考虑到某些服务可能以root身份运行,普通用户无法查看这些进程占用的端口。但频繁使用sudo存在安全隐患,我有以下建议:
- 如果只是检查端口占用情况,可以配置sudoers文件,允许特定用户无需密码执行ss命令:
bash复制
usern
