一:netstat

netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。

netstat 查看端口占用语法格式:

netstat -tunlp | grep 端口号
  • -t (tcp) 仅显示tcp相关选项
  • -u (udp)仅显示udp相关选项
  • -n 拒绝显示别名,能显示数字的全部转化为数字
  • -l 仅列出在Listen(监听)的服务状态
  • -p 显示建立相关链接的程序名
  • -a (all)显示所有选项,默认不显示LISTEN相关
  • r 显示路由信息,路由表
  • e 显示扩展信息,例如uid等
  • s 按各个协议进行统计
  • c 每隔一个固定时间,执行该netstat命令

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

二:列出所有端口 (包括监听和未监听的)

1:列出所有端口 netstat -a

# netstat -a | moreActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address           Foreign Address         Statetcp        0      0 localhost:30037         *:*                     LISTENudp        0      0 *:bootpc                *:*Active UNIX domain sockets (servers and established)Proto RefCnt Flags       Type       State         I-Node   Pathunix  2      [ ACC ]     STREAM     LISTENING     6135     /tmp/.X11-unix/X0unix  2      [ ACC ]     STREAM     LISTENING     5140     /var/run/acpid.socket

2:列出所有 tcp 端口 netstat -at

# netstat -atActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address           Foreign Address         Statetcp        0      0 localhost:30037         *:*                     LISTENtcp        0      0 localhost:ipp           *:*                     LISTENtcp        0      0 *:smtp                  *:*                     LISTENtcp6       0      0 localhost:ipp           [::]:*                  LISTEN

3: 列出所有 udp 端口 netstat -au

# netstat -auActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address           Foreign Address         Stateudp        0      0 *:bootpc                *:*udp        0      0 *:49119                 *:*udp        0      0 *:mdns                  *:*

三:列出所有处于监听状态的 Sockets

1:只显示监听端口 netstat -l

# netstat -lActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address           Foreign Address         Statetcp        0      0 localhost:ipp           *:*                     LISTENtcp6       0      0 localhost:ipp           [::]:*                  LISTENudp        0      0 *:49119                 *:*

2:只列出所有监听 tcp 端口 netstat -lt

# netstat -ltActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address           Foreign Address         Statetcp        0      0 localhost:30037         *:*                     LISTENtcp        0      0 *:smtp                  *:*                     LISTENtcp6       0      0 localhost:ipp           [::]:*                  LISTEN

3:只列出所有监听 udp 端口 netstat -lu

# netstat -luActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address           Foreign Address         Stateudp        0      0 *:49119                 *:*udp        0      0 *:mdns                  *:*

4:只列出所有监听 UNIX 端口 netstat -lx

# netstat -lxActive UNIX domain sockets (only servers)Proto RefCnt Flags       Type       State         I-Node   Pathunix  2      [ ACC ]     STREAM     LISTENING     6294     private/maildropunix  2      [ ACC ]     STREAM     LISTENING     6203     public/cleanupunix  2      [ ACC ]     STREAM     LISTENING     6302     private/ifmailunix  2      [ ACC ]     STREAM     LISTENING     6306     private/bsmtp

5:在 netstat 输出中显示 PID 和进程名称 netstat -p

netstat -p 可以与其它开关一起使用,就可以添加 “PID/进程名称” 到 netstat 输出中,这样 debugging 的时候可以很方便的发现特定端口运行的程序。

# netstat -ptActive Internet connections (w/o servers)Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program nametcp        1      0 ramesh-laptop.loc:47212 192.168.185.75:www        CLOSE_WAIT  2109/firefoxtcp        0      0 ramesh-laptop.loc:52750 lax:www ESTABLISHED 2109/firefox

6:在 netstat 输出中不显示主机,端口和用户名 (host, port or user)

当你不想让主机,端口和用户名显示,使用 netstat -n。将会使用数字代替那些名称。

同样可以加速输出,因为不用进行比对查询。

# netstat -an

7:持续输出 netstat 信息

netstat 将每隔一秒输出网络信息。

# netstat -cActive Internet connections (w/o servers)Proto Recv-Q Send-Q Local Address           Foreign Address         Statetcp        0      0 ramesh-laptop.loc:36130 101-101-181-225.ama:www ESTABLISHEDtcp        1      1 ramesh-laptop.loc:52564 101.11.169.230:www      CLOSINGtcp        0      0 ramesh-laptop.loc:43758 server-101-101-43-2:www ESTABLISHEDtcp        1      1 ramesh-laptop.loc:42367 101.101.34.101:www      CLOSING^C

8:显示系统不支持的地址族 (Address Families)

netstat --verbosenetstat: no support for `AF IPX' on this system.
netstat: no support for `AF AX25' on this system.
netstat: no support for `AF X25' on this system.
netstat: no support for `AF NETROM' on this system.

9:显示核心路由信息 netstat -r

# netstat -rKernel IP routing tableDestination     Gateway         Genmask         Flags   MSS Window  irtt Iface192.168.1.0     *               255.255.255.0   U         0 0          0 eth2link-local      *               255.255.0.0     U         0 0          0 eth2default         192.168.1.1     0.0.0.0         UG        0 0          0 eth2

注意: 使用 netstat -rn 显示数字格式,不查询主机名称。

10:找出程序运行的端口

并不是所有的进程都能找到,没有权限的会不显示,使用 root 权限查看所有的信息。

# netstat -ap | grep sshtcp        1      0 dev-db:ssh           101.174.100.22:39213        CLOSE_WAIT  -tcp        1      0 dev-db:ssh           101.174.100.22:57643        CLOSE_WAIT  -

11:显示网络接口列表

# netstat -iKernel Interface tableIface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flgeth0       1500 0         0      0      0 0             0      0      0      0 BMUeth2       1500 0     26196      0      0 0         26883      6      0      0 BMRUlo        16436 0         4      0      0 0             4      0      0      0 LRU

显示详细信息,像是 ifconfig 使用 netstat -ie:

# netstat -ieKernel Interface tableeth0      Link encap:Ethernet  HWaddr 00:10:40:11:11:11UP BROADCAST MULTICAST  MTU:1500  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)Memory:f6ae0000-f6b00000

四:IP和TCP实际应用案例分析

第一、查看连接某服务最多的的IP地址

[root@izwz99z5o9dc90keftqhlrz ~]# netstat -nat  |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -2011 120.227.29.1217 4 0.0.0.02 47.106.203.791 and1 Address1 163.177.83.1641 100.100.30.25

第二、查看连接指定服务器端口6379最多的的IP地址

[root@izwz99z5o9dc90keftqhlrz ~]# netstat -nat | grep "47.106.203.79:6379" |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -201 47.106.203.79

第三、查看80端口的连接数

[root@izwz99z5o9dc90keftqhlrz ~]# netstat -nat|grep -i "80"|wc -l
7

第四、连接的IP数量进行排序

[root@izwz99z5o9dc90keftqhlrz ~]# netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n1 100.100.30.251 120.227.29.1211 163.177.83.1641 Address1 servers)2 120.41.45.1002 47.106.203.79

第五、TCP连接状况

netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}'
netstat -n | awk '/^tcp/ {++state[$NF]}; END {for(key in state) print key,"\t",state[key]}'
netstat -n | awk '/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"\t",arr[k]}'
netstat -n |awk '/^tcp/ {print $NF}'|sort|uniq -c|sort -rn
netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c如:
[root@izwz99z5o9dc90keftqhlrz ~]# netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn11 LISTEN4 ESTABLISHED1 TIME_WAIT1 Foreign1 established)1 CLOSE_WAIT

第六、占用80端口最多的20个IP

[root@izwz99z5o9dc90keftqhlrz ~]# netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n203 120.41.45.1003 1 163.177.83.1641 100.100.30.251 0.0.0.0

第七、查看time_wait较多的连接

[root@izwz99z5o9dc90keftqhlrz ~]# netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n201 120.41.45.100:80

第八、查看SYN连接数

[root@izwz99z5o9dc90keftqhlrz ~]# netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more

​​​​​​​

netstat查看Linux端口状态相关推荐

  1. linux查看服务器端口状态,打开端口

    查看服务器端口状态: Cd /etc /etc/init.d/iptables status 查看当前所有tcp端口 netstat -ntlp 查看所有80端口使用情况 netstat -ntulp ...

  2. 使用 lsof 代替 Mac OS X 中的 netstat 查看占用端口的程序

    使用 lsof 代替 Mac OS X 中的 netstat 查看占用端口的程序 众所周知水果系统内核是有 BSD 血统的 Darwin,OS X 自带的很多 CLI 工具也是 BSD style 的 ...

  3. netstat php,netstat查看网络端口情况

    netstat查看网络端口情况 查看连接本机11211端口的客户端ip地址 netstat -alnp|grep 11215 |awk -F '[ :]+' '{a[$6]+=1;}END{for(i ...

  4. linux 如何查看端口被哪个进程占用,如何查看linux端口被哪个进程占用

    查看linux端口被哪个进程占用的方法:首先查看被占用的端口的进程,并查询进程id:然后根据集成id查询进程,并查看进程详情信息:最后查看进行所在目录,操作进程即可. 本教程操作环境:red hat ...

  5. netstat查看TCP连接状态

    这篇文章主要记录一下使用netstat查看tcp连接状态的实例 tcp的连接状态主要是通过三次握手和四次挥手进行状态转移,关于三次握手和四次挥手的详情可以看我的上一篇文章<总结三次握手和四次挥手 ...

  6. h3c查在线计算机,H3C 交换机查看所有端口状态的命令

    想看一下8楼交换机所有端口的状态,因为有两台嘛,不确定是哪台,一台插得网口多,一台插得少.交换机是H3C的,以前在思科的交换机上有个很好用的命令:show ip in br ,H3C应该是 dis i ...

  7. netstat查看linux运行的端口,查看哪些端口被打开 netstat -anp

    一.查看哪些端口被打开 netstat -tnl 二.关闭端口号: iptables -A OUTPUT -p tcp --dport 端口号-j DROP 三.打开端口号: iptables -A ...

  8. Linux的ipv6不监听端口,netstat查看服务端口监听在ipv6但是通过ipv4地址可正常访问...

    在Linux系统中,会发现一个有趣的现象,通过 netstat 查看监听的服务端口时,发现有些服务 Proto(protocol协议) 项只显示了 tcp6(代表监听服务端口在IPv6协议), 没有 ...

  9. Linux如何查看某个端口状态

    1.查看具体端口号的状态.如果是非root用户,命令前还要加sudo进行提权. netstat -anp |grep 端口号 假设端口号为3306,执行命令后结果如下: tcp 0 0 0.0.0.0 ...

最新文章

  1. [转载] 数据库分析手记 —— InnoDB锁机制分析
  2. C++多线程并发中线程管理
  3. python中变量和函数的区别_python中带下划线的变量和函数的意义
  4. C语言库文件ctype.h中重要的库函数
  5. HDU 1087 [Super Jumping! Jumping! Jumping!]动态规划
  6. 长春工业大学计算机组成原理考试开卷考吗,计算机组成原理期末复习资料
  7. DNS知识:解决DNS中MX与cname冲突问题 DNS拉平 cname智能加速
  8. ios知识整理 (未完成)
  9. 在Eclipse里自动导入相应包的类名的快捷键
  10. 苹果Mac怎样切换大写输入法?
  11. [java] 汇率换算器实现(3)
  12. 用群晖服务器搭建网站
  13. 重新安装的nvidia显卡驱动
  14. 2022数维杯数学建模A题
  15. Appium Doctor iOS Could not detect Mac OS X Version from sw_vers output: '10.12 '解决方法
  16. Live Messenger ,Gmail ,Orkut ,Wallop
  17. AutoJs学习-录屏功能
  18. Metal每日分享,虚假颜色混合滤镜效果
  19. 成都首秀,体验身边的AI——2019京东人工智能大会
  20. 程序设计之C语言英文单词排序

热门文章

  1. mtk平台功率限制介绍
  2. Android模拟器与局域网通信
  3. 利用浏览器的 window.print();打印分层表格【强制换页的关键】
  4. 国密SM2前端加密,Java后台解密问题
  5. pci168c,1c无线网卡如何在64位Solaris系统上运用
  6. babel : 无法加载文件 C:\Users\Cheng\AppData\Roaming\npm\babel.ps1,因为在此系统上禁止运行脚本
  7. 软件测试面试:拿到一个版本(产品),如何开展测试?
  8. LeetCode题解——T155(最小栈)
  9. 微信开发者工具报错Debugging connection was closed. Reason:Render process gone.Reconnect when ready by reopeni
  10. t6服务器型号,T6服务器名配置