安装Ubuntu桌面系统(虚拟机)_虚拟机安装ubuntu桌面版-CSDN博客
顾名思义,netstat命令不是用来配置网络的,而是用来查看各种网络信息的,包括网络连接、路由表以及网络接口的各种统计数据等。
netstat命令的基本语法如下:
netstat [options]
常用的选项如下:
- -a:显示所有处于活动状态的套接字。
- -A:显示指定协议族的网络连接信息。
- -c:持续列出网络状态信息,刷新频率为1s。
- -e:显示更加详细的信息。
- -i:列出所有的网络接口。
- -l:列出处于监听状态的套接字。
- -n:直接显示IP地址,不转换成域名。
- -p:显示使用套接字的进程ID和程序名称。
- -r:显示路由表信息。
- -s:显示每个协议的统计信息。
- -t:显示TCP/IP协议的连接信息。
- -u:显示UDP协议的连接信息。
下面的例子列出了所有的端口,包括监听和未监听的:
liu@ubuntu:~$ netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN
tcp 0 0 localhost:mysql 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:hostmon 0.0.0.0:* LISTEN
tcp6 0 0 ip6-localhost:ipp [::]:* LISTEN
tcp6 0 0 localhost:8005 [::]:* LISTEN
tcp6 0 0 [::]:hostmon [::]:* LISTEN
tcp6 0 0 [::]:http-alt [::]:* LISTEN
udp 0 0 localhost:domain 0.0.0.0:*
udp 0 0 0.0.0.0:bootpc 0.0.0.0:*
...
netstat –a命令的输出结果一共有6列。第1列为协议,包括tcp、tcp6以及udp等。第2列为用户未读取的套接字中的数据。第3列为远程主机未读取的套接字中的数据。第4列为本地地址和端口号。第5列为远程地址和端口号。第6列为套接字状态,可以是ESTABLISHED、TIME_WAIT、CLOSE以及LISTEN等值,分别表示连接已建立、连接已关闭等待处理完数据、连接已关闭以及正在监听进入的连接请求等。
使用-t选项可以只显示TCP/IP协议的连接,排除掉其他的协议,例如udp等,如下所示:
liu@ubuntu:~$ netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN
tcp 0 0 localhost:mysql 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:hostmon 0.0.0.0:* LISTEN
tcp6 0 0 ip6-localhost:ipp [::]:* LISTEN
tcp6 0 0 localhost:8005 [::]:* LISTEN
tcp6 0 0 [::]:hostmon [::]:* LISTEN
tcp6 0 0 [::]:http-alt [::]:* LISTEN
...
下面的命令用于通过状态对连接进行筛选,只显示处于监听状态的TCP连接:
liu@ubuntu:~$ netstat -tl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN
tcp 0 0 localhost:mysql 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:hostmon 0.0.0.0:* LISTEN
...
在上面的例子中,本地地址是采用名称来显示的,例如localhost:ipp以及localhost:mysql等,并没有把数字形式的地址显示出来,不是很直观。用户可以使用-n选项来直接显示数字形式的地址,而不转换成名称,如下所示:
liu@ubuntu:~$ netstat -tlan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN
tcp6 0 0 ::1:631 :::* LISTEN
...
当某个端口被占用而导致服务无法启动时,可以使用netstat命令进行排查。例如,下面的命令用于将在8080端口监听的程序名称及其状态显示出来:
liu@ubuntu:~$ sudo netstat -anp|grep ":8080"
tcp6 0 0 :::8080 :::* LISTEN 1162/java
本文节选自《Ubuntu Linux运维从零开始学》,获出版社和作者授权发布。
《Ubuntu Linux运维从零开始学 肖志健 清华大学出版社9787302662525》【摘要 书评 试读】- 京东图书 (jd.com)