在Linux操作系统中,
netstat和ss都是用于检查网络连接、监听端口以及获取网络统计信息的命令行工具。
以下是它们的基本用法和常见选项:
netstat 命令
基本用法:
netstat [-tulnacpe]
• -t:仅显示TCP连接信息。
• -u:仅显示UDP连接信息。
• -l:仅显示监听(LISTENING)状态的套接字。
• -n:以数字形式显示地址和端口号,而不是解析为主机名和服务名。
• -a:显示所有活动的TCP连接和监听的TCP与UDP端口。
• -c:持续不断地输出网络状态,直到被中断(Ctrl+C)。
• -p:显示每个连接对应的进程ID(PID)和进程名称。
• -e:在Unix系统中,显示扩展信息,包括路由缓存和接口信息。
例如:
netstat -tunlp # 查看TCP和UDP连接,并显示进程信息及端口号
netstat -an # 查看所有活动连接和监听的端口
ss 命令
基本用法:
ss [options]
• -t:显示TCP套接字信息。
• -u:显示UDP套接字信息。
• -l:仅显示监听状态的套接字。
• -a:显示所有套接字(类似于netstat -tuna)。
• -n:禁止DNS反解,显示数字形式的IP地址和端口号。
• -p:显示建立套接字的进程信息。
• -e:显示额外的TCP连接信息。
• -o:显示计时器信息,如重传、保持活动等。
• -s:显示统计信息。
例如:
ss -tulnap # 查看TCP、UDP监听端口及其关联的进程信息
ss -s # 显示网络统计信息
ss -a # 查看所有活动的套接字
区别
ss命令相比netstat具有更高的性能和更低的资源占用,尤其是在处理大量网络连接时,因为
ss直接从内核获取信息,而非通过遍历/proc目录。
随着Linux内核的发展,netstat逐渐被认为是一个过时的工具,官方推荐使用ss作为替代方案。然而,netstat仍广泛存在于许多Linux发行版中,但对于一些较新的系统或优化需求较高的场景,ss
是更好的选择。