[原创]Linux、FreeBSD、windows三大系统中查看监听端口所对应的程序_VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3142 | 回复: 0   主题: [原创]Linux、FreeBSD、windows三大系统中查看监听端口所对应的程序        下一篇 
wulcan
版主
等级:中校
经验:1795
发帖:124
精华:0
注册:2014-3-19
状态:离线
发送短消息息给wulcan 加好友    发送短消息息给wulcan 发消息
发表于: IP:您无权察看 2014-11-26 14:20:13 | [全部帖] [楼主帖] 楼主

Linux下:

# netstat -anpt
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 192.168.1.1:80 0.0.0.0:* LISTEN 1167/nginx
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 25386/sshd
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 1152/php-fpm
tcp 0 40 192.168.1.1:22 192.168.1.8:4281 ESTABLISHED 25435/sshd
tcp 0 0 :::22 :::* LISTEN 25386/sshd


linux下用的是netstat,-p(或--program)表示“显示PID号和程序名称”,-t表示“TCP”,另一个-u表示“UDP”。

显示结果的最后一段“PID/Program name”就是-p的表现,斜杠前面是pid号,后面是程序的名称。

从上面的结果可以看出,该机器开了80,22端口,其中22端口绑定在ipv4和ipv6之上,其中80对应于nginx,22对于于sshd。另外还开了一个本地的9000端口,是php的服务。

目前有一个机器192.168.1.8连接到该机,用的是ssh服务,由sshd负责接入。

另外一个问题:怎么样查看sshd在哪儿呢?这时用whereis sshd,正常情况下就能查到,如果查不到的话,干脆用locate sshd,如果还找不到,那么就是系统出问题了^_^

FreeBSD下:

% % sockstat -l
USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS
root sshd 3954 3 tcp4 *:122 *:*
www nginx 9388 6 tcp4 192.168.6.63:80 *:*
www nginx 9388 7 tcp4 192.168.6.63:808 *:*
www nginx 9387 6 tcp4 192.168.6.63:80 *:*
www nginx 9387 7 tcp4 192.168.6.63:808 *:*
www nginx 9386 6 tcp4 192.168.6.63:80 *:*
www nginx 9386 7 tcp4 192.168.6.63:808 *:*
www nginx 9385 6 tcp4 192.168.6.63:80 *:*
root syslogd 630 4 dgram /var/run/log
root syslogd 630 5 dgram /var/run/logpriv


FreeBSD的sockstat,-l参数表示“只显示监听的socket”。

显示结果中,第二例就是程序的名称,第三列是pid号。查找程序同样可以用whereis和locate。 

这台机器开启了22端口的ssh服务,同样command列显示为sshd。同时还开启了web服务,由nginx提供,注意有多个nginx监听,并且有两个端口号,这是因为nginx是多进程的程序,启用了多个实例,并且用虚拟机的技术同时监听了两个端口。

windows:


Microsoft Windows XP [版本 5.1.2600]

(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>netstat -ano
Active Connections
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 1248
TCP 192.168.6.201:139 0.0.0.0:0 LISTENING 4
TCP 192.168.6.201:1284 192.168.6.109:80 ESTABLISHED 252
TCP 127.0.0.1:1027 127.0.0.1:1028 ESTABLISHED 252
TCP 127.0.0.1:1028 127.0.0.1:1027 ESTABLISHED 252
UDP 192.168.6.201:137 *:* 4
UDP 192.168.6.201:138 *:* 4


windows下也是用netstat命令,显示pid号要用一个比较偏门点的参数-o,-o表示“显示pid号”,结果中的最后一列就是pid。

上面显示只有一个80的连接,pid号对应的是252。可能有人会感觉奇怪,不是有很多行吗?怎么才只有一个连接呢?在windows中,135-139端口就是“网上邻居”相关的,这玩意是系统自带的,关不掉,不想要也不行。1027和1028相互连接了,是Firefox内部通信使用的。

但是这个命令只显示了pid号,怎么样具体到某一个程序呢?

C:\Documents and Settings\Administrator>tasklist


图像名 PID 会话名 会话# 内存使用

========================= ====== ================ ======== ============
System Idle Process 0 0 16 K
System 4 0 284 K
smss.exe 384 0 428 K
csrss.exe 668 0 8,564 K
winlogon.exe 756 0 4,800 K
services.exe 880 0 3,860 K
lsass.exe 892 0 1,276 K
nvsvc32.exe 1080 0 6,748 K
svchost.exe 1164 0 3,704 K
svchost.exe 1248 0 4,608 K
svchost.exe 1392 0 3,476 K
svchost.exe 1484 0 15,820 K
svchost.exe 1524 0 3,868 K
explorer.exe 1736 0 22,264 K
ctfmon.exe 316 0 3,408 K
firefox.exe 252 0 268,636 K
cmd.exe 568 0 2,920 K
conime.exe 1376 0 3,056 K
tasklist.exe 556 0 4,916 K
wmiprvse.exe 1772 0 6,332 K


其实这就是“任务管理器”中的那一页,第一列是程序的名称,第二列就是pid号,顺着pid号找252,可以看到是firefox,最后一列是占用的内存,firefox占用内存268m。

顺便说一下,我的机器进程数已经非常精减了,除了firefox外,只有不足100m,当然这是“裸奔”的结果,装上任何一款杀毒软件,你的系统不会这么干净的。

windows下怎么样查找程序在什么地方呢?搜索知道在什么地方吗??_?

当然如果习惯用命令行的话,可以用dir c:\ /s firefox.exe试试,但是查询速度嘛,还是不要心急的好!

该贴由hui.chen转至本版2014-11-27 18:24:24




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论