linux 与windows netstat命令查看端口是否占用
netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息,这里我只用到其中的部分功能.
netstat 的常用参数:
- t、- u、- w和- x分别表示TCP、UDP、RAW和UNIX套接字连接。
-a 标记,还会显示出等待连接(也就是说处于监听模式)的套接字。
-l 显示正在被监听(listen)的端口,
-n 表示直接显示端口数字而不是通过察看/etc/service来转换为端口名,
-p 选项表示列出监听的程序
1) netstat -tl
查看当前tcp监听端口
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:rrac *:* LISTEN
tcp 0 0 *:34006 *:* LISTEN
......
2) netstat -tlp
查看当前tcp监听端口, 需要显示监听的程序名,当不清楚mysql的监听端口时比较好用
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 *:rrac *:* LISTEN -
tcp 0 0 *:34006 *:* LISTEN 23425/mysqld
......
3) netstat -tl | grep 34006
只查看mysql的监听端口,当前启动的mysql端口为34006,明确知道mysql监听端口时使用
4) netstat -ta | grep 34006
tcp 0 0 *:34006 *:* LISTEN
tcp 0 0 linux.local:34006 linux.local:41485 ESTABLISHED
tcp 0 0 linux.local:34006 linux.local:41486 ESTABLISHED
...
tcp 0 0 10.3.2.35:41488 10.3.2.35:34006 ESTABLISHED
tcp 0 0 10.3.2.35:41489 10.3.2.35:34006 ESTABLISHED
tcp 0 0 10.3.2.35:41490 10.3.2.35:34006 ESTABLISHED
由于数据库和运用程序都放在同一台机器了,因此这里连接被显示了两次. 可以使用-p参数来显示PID,然后grep PID.
5) netstat -tap | grep 34006 | grep 23425
23425是当前mysql的PID
tcp 0 0 *:34006 *:* LISTEN 23425/mysqld
tcp 0 0 linux.local:34006 linux.local:41510 ESTABLISHED 23425/mysqld
tcp 0 0 linux.local:34006 linux.local:41511 ESTABLISHED 23425/mysqld
tcp 0 0 linux.local:34006 linux.local:41516 ESTABLISHED 23425/mysqld
打开终端,执行如下命令,查看各进程占用端口情况:
# ps -ef|wc -l //查看后台运行的进程总数
# ps -fu csvn //查看csvn进程
# netstat -lntp //查看开启了哪些端口
# netstat -r //本选项可以显示关于路由表的信息
# netstat -a //本选项显示一个所有的有效连接信息列表
# netstat -an|grep 8080
# netstat -na|grep -i listen //可以看到目前系统侦听的端口号
# netstat -antup //查看已建立的连接进程,所占用的端口。
netstat -anp|grep 1487
lsof -i:1487
查看哪些进程打开了指定端口1487
关闭端口实际上是关闭其对应的服务,比如80端口是HTTPD 关闭80端口可以通过关闭httpd服务来实现
每个端口都有一个守护进程,kill掉这个守护进程就可以了
WINDOWS下用法:
目标:在Windows环境下,用netstat命令查看某个端口号是否占用,为哪个进程所占用.
操作:操作分为两步:(1)查看该端口被那个PID所占用;方法一:有针对性的查看端口,使用命令
Netstat –ano|findstr “<端口号>”,如图,最后一列为PID。图中的端口号为1068,所对应的PID为3840。