破霜风

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

5. 获取进程名、进程号以及用户 ID

查看端口和连接的信息时,能查看到它们对应的进程名和进程号对系统管理员来说是非常有帮助的。举个栗子,Apache 的 httpd 服务开启80端口,如果你要查看 http 服务是否已经启动,或者 http 服务是由 apache 还是 nginx 启动的,这时候你可以看看进程名。

使用 -p 选项查看进程信息。

  1. ~$ sudo netstat -nlpt
  2. Active Internet connections (only servers)
  3. Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
  4. tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN 1144/dnsmasq
  5. tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 661/cupsd
  6. tcp6 0 0 ::1:631 :::* LISTEN 661/cupsd

使用 -p 选项时,netstat 必须运行在 root 权限之下,不然它就不能得到运行在 root 权限下的进程名,而很多服务包括 http 和 ftp 都运行在 root 权限之下。

相比进程名和进程号而言,查看进程的拥有者会更有用。使用 -ep 选项可以同时查看进程名和用户名。

  1. $ sudo netstat -ltpe
  2. Active Internet connections (only servers)
  3. Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
  4. tcp 0 0 enlightened:domain *:* LISTEN root 11090 1144/dnsmasq
  5. tcp 0 0 localhost:ipp *:* LISTEN root 9755 661/cupsd
  6. tcp6 0 0 ip6-localhost:ipp [::]:* LISTEN root 9754 661/cupsd

上面列出 TCP 协议下的监听套接字,同时显示进程信息和一些额外信息。

这些额外的信息包括用户名和进程的索引节点号。这个命令对网管来说很有用。

注意 - 假如你将 -n-e 选项一起使用,User 列的属性就是用户的 ID 号,而不是用户名。

  

Netstat 简介

Netstat 是一款命令行工具,可用于列出系统上所有的网络套接字连接情况,包括 tcp, udp 以及 unix 套接字,另外它还能列出处于监听状态(即等待接入请求)的套接字。如果你想确认系统上的 Web 服务有没有起来,你可以查看80端口有没有打开。以上功能使 netstat 成为网管和系统管理员的必备利器。在这篇教程中,我会列出几个例子,教大家如何使用 netstat 去查找网络连接信息和系统开启的端口号。

 

1. 列出所有连接

第一个要介绍的,是最简单的命令:列出所有当前的连接。使用 -a 选项即可。

上述命令列出 tcp, udp 和 unix 协议下所有套接字的所有连接。然而这些信息还不够详细,管理员往往需要查看某个协议或端口的具体连接情况。

 

建议使用netstat -tlunp

 

编译自:http://www.binarytides.com/linux-netstat-command-examples/
原创:LCTT https://linux.cn/article-2434-1.html 译者: bazz2
本文地址:https://linux.cn/article-2434-1.html    

posted on 2017-07-11 15:22  破霜风  阅读(386)  评论(0编辑  收藏  举报