netstat -an里边端口后边的LISTENING,ESTABLISHED和CLOSE_WAIT都表示什么?
(2010-12-03 18:13:10)
标签:
杂谈 |
LISTENING:正在监听,只有tcp端口才可以这样(如果是udp的话,那么肯定是木马)
ESTABLISHED:正在共享,表示两者连接着(如果135端口这样的话,注意杀毒)
CLOSE_WAIT:有过连接,现在已经结束了
Php的请求,于是:
可知进程11743发起的MySQL连接来源端口是35558,然后就可以用strace观察这个进程了。
strace -p 线程id
strace -p 11743
sql执行情况如下,部分:
write(4, ":\0\0\0\3select FQQ from Tbl_FQQ_FSc"..., 62) = 62
setsockopt(4, SOL_SOCKET, SO_RCVTIMEO, "\2003\341\1\0\0\0\0", 8) = 0
read(4, "\1\0\0\1\1R\0\0\2\3def\20DB_361Sport_2010\23T"..., 16384) = 109
setsockopt(4, SOL_SOCKET, SO_RCVTIMEO, "\2003\341\1\0\0\0\0", 8) = 0
setsockopt(4, SOL_SOCKET, SO_RCVTIMEO, "\2003\341\1\0\0\0\0", 8) = 0
setsockopt(4, SOL_SOCKET, SO_RCVTIMEO, "\2003\341\1\0\0\0\0", 8) = 0
poll([{fd=4, events=POLLIN|POLLPRI}], 1, 0) = 0
setsockopt(4, SOL_SOCKET, SO_SNDTIMEO, "\2003\341\1\0\0\0\0", 8) = 0
write(4, ":\0\0\0\3select FQQ from Tbl_FQQ_FSc"..., 62) = 62
Tencent:~ # lsof -i:47062
COMMAND
PID USER
FD
TYPE
DEVICE SIZE NODE NAME
QQGameMan 11743 root 4u IPv4
1513259650
TCP 172.17.64.46:47062->172.16.56.110:mysql
(ESTABLISHED)
Tencent:~ # lsof -p 11743
COMMAND
PID USER
FD
TYPE
DEVICE
SIZE NODE
NAME
QQGameMan 11743 root cwd DIR 8,3
4096 2446038 /usr/local/tads/htdocs/361sport_2010/bin
QQGameMan 11743 root rtd DIR 8,1
4096
2 /
QQGameMan 11743 root txt REG 8,3
15910553 1560029 /usr/local/php/bin/php
QQGameMan 11743 root mem REG 0,0 0
[heap] (stat: No such file or directory)
QQGameMan 11743 root mem REG 8,1 42109 404832
/lib/libnss_files-2.4.so
QQGameMan 11743 root mem REG 8,3
188921 1560021
/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/memcache.so
附录:
lsof使用–根据TCP端口查看使用进程
一般root用户才能执行lsof命令,普通用户可以看见/usr/sbin/lsof命令,但是普通用户执行会显示“permission denied”
我总结一下lsof指令的用法:
lsof abc.txt 显示开启文件abc.txt的进程
lsof -i :22 知道22端口现在运行什么程序
lsof -c abc 显示abc进程现在打开的文件
lsof -g gid 显示归属gid的进程情况
lsof +d /usr/local/ 显示目录下被进程开启的文件
lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长
lsof -d 4 显示使用fd为4的进程
lsof -i 用以显示符合条件的进程情况
语法: lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 –> IPv4 or IPv6
protocol –> TCP or UDP
hostname –> Internet host name
hostaddr –> IPv4位置
service –> /etc/service中的 service name (可以不只一个)
port –> 端口号 (可以不只一个)
例子: TCP:25 – TCP and port 25
@1.2.3.4 – Internet IPv4 host address 1.2.3.4
tcp@ohaha.ks.edu.tw:ftp – TCP protocol hosthaha.ks.edu.tw service name:ftp
lsof -n 不将IP转换为hostname,缺省是不加上-n参数
例子: lsof -i tcp@ohaha.ks.edu.tw:ftp -n
lsof -p 12 看进程号为12的进程打开了哪些文件
lsof +|-r [t] 控制lsof不断重复执行,缺省是15s刷新
-r,lsof会永远不断的执行,直到收到中断信号
+r,lsof会一直执行,直到没有档案被显示
例子:不断查看目前ftp连接的情况:lsof -i tcp@ohaha.ks.edu.tw:ftp -r
lsof -s 列出打开文件的大小,如果没有大小,则留下空白
lsof -u username 以UID,列出打开的文件
一般root用户才能执行lsof命令,普通用户可以看见/usr/sbin/lsof命令,但是普通用户执行会显示“permission denied”
我总结一下lsof指令的用法:
lsof abc.txt 显示开启文件abc.txt的进程
lsof -i :22 知道22端口现在运行什么程序
lsof -c abc 显示abc进程现在打开的文件
lsof -g gid 显示归属gid的进程情况
lsof +d /usr/local/ 显示目录下被进程开启的文件
lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长
lsof -d 4 显示使用fd为4的进程
lsof -i 用以显示符合条件的进程情况
语法: lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 –> IPv4 or IPv6
protocol –> TCP or UDP
hostname –> Internet host name
hostaddr –> IPv4位置
service –> /etc/service中的 service name (可以不只一个)
port –> 端口号 (可以不只一个)
例子: TCP:25 – TCP and port 25
@1.2.3.4 – Internet IPv4 host address 1.2.3.4
tcp@ohaha.ks.edu.tw:ftp – TCP protocol host:phaha.ks.edu.tw service name:ftp
lsof -n 不将IP转换为hostname,缺省是不加上-n参数
例子: lsof -i tcp@ohaha.ks.edu.tw:ftp -n
lsof -p 12 看进程号为12的进程打开了哪些文件
lsof +|-r [t] 控制lsof不断重复执行,缺省是15s刷新
-r,lsof会永远不断的执行,直到收到中断信号
+r,lsof会一直执行,直到没有档案被显示
例子:不断查看目前ftp连接的情况:lsof -i tcp@ohaha.ks.edu.tw:ftp -r
lsof -s 列出打开文件的大小,如果没有大小,则留下空白
lsof -u username 以UID,列出打开的文件
[root@tcx160 FILES]# lsof -i tcp:22
COMMAND PID
USER
FD TYPE DEVICE SIZE NODE
NAME
sshd
3261
root 3u IPv6
7301
TCP *:ssh (LISTEN)
sshd 19692
root 3u IPv6
348642
TCP 9.186.96.160:ssh->9.186.96.117:32914
(ESTABLISHED)
ESTABLISHED:正在共享,表示两者连接着(如果135端口这样的话,注意杀毒)
CLOSE_WAIT:有过连接,现在已经结束了
正在共享:
***:~ # netstat -atlunp|grep 47062
tcp 0
62
172.17.64.4*:47062 172.16.56.1**:3306 ESTABLISHED
11743/php
***:~ # netstat -atlunp|grep 47062
tcp
Php的请求,于是:
Cencent:~ # ps aux|grep php
root
11743 0.1 0.0 15100 6620
pts/2 S+
09:18 0:35
/usr/local/php/bin/php -q ./OOGameManual.php 20100911
root
可知进程11743发起的MySQL连接来源端口是35558,然后就可以用strace观察这个进程了。
strace -p 线程id
strace -p 11743
sql执行情况如下,部分:
write(4, ":\0\0\0\3select FQQ from Tbl_FQQ_FSc"..., 62) = 62
setsockopt(4, SOL_SOCKET, SO_RCVTIMEO, "\2003\341\1\0\0\0\0", 8) = 0
read(4, "\1\0\0\1\1R\0\0\2\3def\20DB_361Sport_2010\23T"..., 16384) = 109
setsockopt(4, SOL_SOCKET, SO_RCVTIMEO, "\2003\341\1\0\0\0\0", 8) = 0
setsockopt(4, SOL_SOCKET, SO_RCVTIMEO, "\2003\341\1\0\0\0\0", 8) = 0
setsockopt(4, SOL_SOCKET, SO_RCVTIMEO, "\2003\341\1\0\0\0\0", 8) = 0
poll([{fd=4, events=POLLIN|POLLPRI}], 1, 0) = 0
setsockopt(4, SOL_SOCKET, SO_SNDTIMEO, "\2003\341\1\0\0\0\0", 8) = 0
write(4, ":\0\0\0\3select FQQ from Tbl_FQQ_FSc"..., 62) = 62
Tencent:~ # lsof -i:47062
COMMAND
QQGameMan 11743 root
Tencent:~ # lsof -p 11743
COMMAND
QQGameMan 11743 root
QQGameMan 11743 root
QQGameMan 11743 root
QQGameMan 11743 root
QQGameMan 11743 root
QQGameMan 11743 root
附录:
lsof使用–根据TCP端口查看使用进程
一般root用户才能执行lsof命令,普通用户可以看见/usr/sbin/lsof命令,但是普通用户执行会显示“permission denied”
我总结一下lsof指令的用法:
lsof abc.txt 显示开启文件abc.txt的进程
lsof -i :22 知道22端口现在运行什么程序
lsof -c abc 显示abc进程现在打开的文件
lsof -g gid 显示归属gid的进程情况
lsof +d /usr/local/ 显示目录下被进程开启的文件
lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长
lsof -d 4
lsof -i 用以显示符合条件的进程情况
语法: lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 –> IPv4 or IPv6
protocol –> TCP or UDP
hostname –> Internet host name
hostaddr –> IPv4位置
service –> /etc/service中的 service name (可以不只一个)
port –> 端口号 (可以不只一个)
例子: TCP:25 – TCP and port 25
@1.2.3.4 – Internet IPv4 host address 1.2.3.4
tcp@ohaha.ks.edu.tw:ftp – TCP protocol hosthaha.ks.edu.tw service name:ftp
lsof -n 不将IP转换为hostname,缺省是不加上-n参数
例子: lsof -i tcp@ohaha.ks.edu.tw:ftp -n
lsof -p 12
lsof +|-r [t] 控制lsof不断重复执行,缺省是15s刷新
-r,lsof会永远不断的执行,直到收到中断信号
+r,lsof会一直执行,直到没有档案被显示
例子:不断查看目前ftp连接的情况:lsof -i tcp@ohaha.ks.edu.tw:ftp -r
lsof -s 列出打开文件的大小,如果没有大小,则留下空白
lsof -u username
一般root用户才能执行lsof命令,普通用户可以看见/usr/sbin/lsof命令,但是普通用户执行会显示“permission denied”
我总结一下lsof指令的用法:
lsof abc.txt 显示开启文件abc.txt的进程
lsof -i :22 知道22端口现在运行什么程序
lsof -c abc 显示abc进程现在打开的文件
lsof -g gid 显示归属gid的进程情况
lsof +d /usr/local/ 显示目录下被进程开启的文件
lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长
lsof -d 4
lsof -i 用以显示符合条件的进程情况
语法: lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 –> IPv4 or IPv6
protocol –> TCP or UDP
hostname –> Internet host name
hostaddr –> IPv4位置
service –> /etc/service中的 service name (可以不只一个)
port –> 端口号 (可以不只一个)
例子: TCP:25 – TCP and port 25
@1.2.3.4 – Internet IPv4 host address 1.2.3.4
tcp@ohaha.ks.edu.tw:ftp – TCP protocol host:phaha.ks.edu.tw service name:ftp
lsof -n 不将IP转换为hostname,缺省是不加上-n参数
例子: lsof -i tcp@ohaha.ks.edu.tw:ftp -n
lsof -p 12
lsof +|-r [t] 控制lsof不断重复执行,缺省是15s刷新
-r,lsof会永远不断的执行,直到收到中断信号
+r,lsof会一直执行,直到没有档案被显示
例子:不断查看目前ftp连接的情况:lsof -i tcp@ohaha.ks.edu.tw:ftp -r
lsof -s 列出打开文件的大小,如果没有大小,则留下空白
lsof -u username
[root@tcx160 FILES]# lsof -i tcp:22
COMMAND
sshd
sshd

加载中…