netstat查看网络端口情况

查看连接本机11211端口的客户端ip地址

netstat -alnp|grep 11215 |awk -F '[ :]+' '{a[$6]+=1;}END{for(i in a){print a[i]" "i;}}'|sort -rg

统计端口链接情况

netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print state[key]" "key}'|sort -rg

TCP状态转移要点

TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不 会被释放。网络服务器程序要同时管理大量连接,所以很有必要保证无用连接完全断开,否则大量僵死的连接会浪费许多服务器资源。在众多TCP状态中,最值得 注意的状态有两个:CLOSE_WAIT和TIME_WAIT。

1、LISTENING状态

FTP服务启动后首先处于侦听(LISTENING)状态。

2、ESTABLISHED状态

ESTABLISHED的意思是建立连接。表示两台机器正在通信。

3、CLOSE_WAIT

对方主动关闭连接或者网络异常导致连接中断,这时我方的状态会变成CLOSE_WAIT 此时我方要调用close()来使得连接正确关闭

4、TIME_WAIT

我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT。TCP协议规定TIME_WAIT状态会一直持续2MSL(即两倍的分 段最大生存期),以此来确保旧的连接状态不会对新连接产生影响。处于TIME_WAIT状态的连接占用的资源不会被内核释放,所以作为服务器,在可能的情 况下,尽量不要主动断开连接,以减少TIME_WAIT状态造成的资源浪费。

目前有一种避免TIME_WAIT资源浪费的方法,就是关闭socket的LINGER选项。但这种做法是TCP协议不推荐使用的,在某些情况下这个操作可能会带来错误。

5、SYN_SENT状态

SYN_SENT状态表示请求连接,当你要访问其它的计算机的服务时首先要发个同步信号给该端口,此时状态为SYN_SENT,如果连接成功了就变为 ESTABLISHED,此时SYN_SENT状态非常短暂。但如果发现SYN_SENT非常多且在向不同的机器发出,那你的机器可能中了冲击波或震荡波 之类的病毒了。这类病毒为了感染别的计算机,它就要扫描别的计算机,在扫描的过程中对每个要扫描的计算机都要发出了同步请求,这也是出现许多 SYN_SENT的原因。

根据TCP协议定义的3次握手断开连接规定,发起socket主动关闭的一方 socket将进入TIME_WAIT状态,TIME_WAIT状态将持续2个MSL(Max Segment Lifetime),在Windows下默认为4分钟,即240秒,TIME_WAIT状态下的socket不能被回收使用. 具体现象是对于一个处理大量短连接的服务器,如果是由服务器主动关闭客户端的连接,将导致服务器端存在大量的处于TIME_WAIT状态的socket, 甚至比处于Established状态下的socket多的多,严重影响服务器的处理能力,甚至耗尽可用的socket,停止服务. TIME_WAIT是TCP协议用以保证被重新分配的socket不会受到之前残留的延迟重发报文影响的机制,是必要的逻辑保证.

windows 机器设置

在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters,右键添加名为TcpTimedWaitDelay的

DWORD键,设置为60,以缩短TIME_WAIT的等待时间

ubuntu机器设置

vi /etc/sysctl.conf

编辑文件,加入以下内容:

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_fin_timeout = 30

然后执行 /sbin/sysctl -p 让参数生效。

net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;

net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;

net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。

net.ipv4.tcp_fin_timeout 修改系統默认的 TIMEOUT 时间

net.ipv4.tcp_keepalive_time = 1200

表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。

net.ipv4.ip_local_port_range = 1024 65000

表示用于向外连接的端口范围。缺省情况下很小:32768到61000(共28232个可用端口),改为1024到65000。

net.ipv4.tcp_max_syn_backlog = 8192

表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。

net.ipv4.tcp_max_tw_buckets = 5000

表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。

默认为180000,改为5000。对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于 Squid,效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。

netstat -alnp 含义

netstat -alnp

proto Recv-Q Send-Q local address remote address state PID/process_name

tcp 0 0 127.0.0.1:59706 127.0.0.1:4731 ESTABLISHED 100777/php

tcp 0 0 127.0.0.1:4731 127.0.0.1:59716 ESTABLISHED 17147/gearmand

tcp 0 0 127.0.0.1:4731 127.0.0.1:59752 ESTABLISHED 17147/gearmand

tcp 0 0 127.0.0.1:4731 127.0.0.1:59834 ESTABLISHED 17147/gearmand

tcp 0 0 127.0.0.1:4731 127.0.0.1:59711 ESTABLISHED 17147/gearmand

tcp 0 0 127.0.0.1:59825 127.0.0.1:4731 ESTABLISHED 101978/php

tcp 0 0 127.0.0.1:4731 127.0.0.1:59832 ESTABLISHED 17147/gearmand

tcp 0 0 127.0.0.1:4731 127.0.0.1:59833 ESTABLISHED 17147/gearmand

tcp 0 0 127.0.0.1:59813 127.0.0.1:4731 ESTABLISHED 101887/php

tcp 0 0 127.0.0.1:4731 127.0.0.1:59831 ESTABLISHED 17147/gearmand

tcp 0 0 127.0.0.1:4731 127.0.0.1:59824 ESTABLISHED 17147/gearmand

tcp 0 0 127.0.0.1:59838 127.0.0.1:4731 ESTABLISHED 101678/php

tcp 0 0 127.0.0.1:59717 127.0.0.1:4731 ESTABLISHED 100977/php

tcp 0 0 127.0.0.1:59711 127.0.0.1:4731 ESTABLISHED 100837/php

tcp 0 0 127.0.0.1:4731 127.0.0.1:59866 ESTABLISHED 17147/gearmand

tcp 0 0 127.0.0.1:59861 127.0.0.1:4731 ESTABLISHED 102337/php

tcp 0 0 192.168.137.129:57716 172.16.147.146:8001 ESTABLISHED 95080/php

tcp 0 0 127.0.0.1:4731 127.0.0.1:59817 ESTABLISHED 17147/gearmand

netstat 统计链接状态

netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print state[key]" "key}'|sort -rg

5932 ESTABLISHED

3477 TIME_WAIT

/*统计指定端口11215链接状态*/

netstat -n | awk '/^tcp.*:11215/ {++state[$NF]} END {for(key in state) print state[key]" "key}'|sort -rg

919 TIME_WAIT

336 ESTABLISHED

netstat -n | awk '/^tcp.*:8086/ {++state[$NF]} END {for(key in state) print state[key]" "key}'|sort -rg

netstat php,netstat查看网络端口情况相关推荐

  1. mac os x 查看网络端口情况

    查看端口是否打开 使用 netstat 命令 a. `netstat -nat | grep <端口号>` , 如命令 `netstat -nat | grep 3306` b. `net ...

  2. linux ifstat 网卡流量,linux 使用ifstat查看网络使用情况

    首先安装ifstat wget http://distfiles.macports.org/ifstat/ifstat-1.1.tar.gz tar xzvf ifstat-1.1.tar.gz cd ...

  3. Linux查看网卡的运行情况,NETSTAT - 查看网络运行情况。

    NETSTAT - 查看网络运行情况. Netstat的一些常用选项 netstat -s--本选项能够按照各个协议分别显示其统计数据.如果你的应用程序(如Web浏览器)运行速度比较慢,或者不能显示W ...

  4. Mac 下查看网络端口占用情况

    1.Mac 下查看网络端口占用情况 有的时候关闭了服务器,但是端口还是占用,解决的方法是 kill 掉占用该端口的进程. # 查看 8009 端口的占用情况 $ lsof -i:8009 可以看到,该 ...

  5. netstat命令---Linux查看网络和socket信息

    netstat命令---Linux查看网络和socket信息 usage: netstat [-pWrxwutneal] Display networking information. -r  Dis ...

  6. Android adb查看网络连接情况

    Android adb查看网络连接情况 文章目录 Android adb查看网络连接情况 Android 使用adb查看网络使用情况主要的adb命令: 1.adb shell ifconfig 2.a ...

  7. linux网络基础设置篇-----(查看网络连接情况,域名解析nslookup,本地映射,启用禁用网络接口,路由跟踪)

    目录 1,查看网络接口信息ifconfig (1) 查看所有活动的网络接口信息 (2)查看指定网络接口信息 2,查看主机名称hostname (1)hostname 命令 3 , 查看路由条目标rou ...

  8. 13. 查看网络端口、配置网络

    13. 查看网络端口.配置网络 一.查看 TCP 22 端口是否打开 1.列出所有端口: [root@Demon proc]# netstat -ntlp Active Internet connec ...

  9. Linux网络——查看网络连接情况的命令

    Linux网络--查看网络连接情况的命令 摘要:本文主要学习了Linux中用来查看网络连接情况的命令. hostname命令 hostname命令用于显示和设置系统的主机名称,设置只是临时生效,永久生 ...

最新文章

  1. itunes刷机一直正在恢复固件要多久_iPhone “已停用”,为什么刷机后仍是“已停用”的状态?...
  2. 虚拟仪器软件LabView使用初步了解
  3. mysql5.0varchar_MySQL中varchar类型在5.0.3后的变化
  4. mysql优化 mysql.ini优化
  5. Linux 命令之 lsof -- 列出当前系统已打开的文件列表
  6. VS2008中使用JSONCPP方法小结
  7. tars 部署 oracle,Tars 部署介绍(必看)
  8. 关闭内核Debug_log打印!
  9. 文本处理工具--正则表达式
  10. 软件需求分析教程阅读笔记二
  11. python蓝牙通信_python实现蓝牙通信
  12. Learning the Model Update for Siamese Trackers 论文学习
  13. 面板PSM+DID如何做匹配?
  14. 假定在使用CSMA/CD协议的10Mbit/s以太网中某个站在发送数据时检测到碰撞,执行退避算法时选择了随机数r=100.试问这个站需要等待多长时间后才能再次发送数据?如果是100Mbit/s的以太网
  15. 反编译插件jad和jd-jui
  16. Zabbix监控学习系列(2):agent的安装与Server端添加客户端
  17. React-Native 创建App项目
  18. java l1是啥意思_L1-020 帅到没朋友 (20分) Java
  19. 计算机课作业要求做一张简报,小学五年级信息技术教学计划(干货4篇)
  20. 计算机网络传输层UDP协议--龙之介计算机网络学习(3)

热门文章

  1. 计划任务执行 php代码,php实现Windows任务计划定时执行的代码以及扩展(图)
  2. mysql用大白话解释_大白话解释给小白如何看别人的源码(一)数据库部分
  3. Jsp+Ssm+Mysql实现的在线宠物商城系统
  4. 基于JAVA+Servlet+JSP+MYSQL的网上书城
  5. linux wkhtmltopdf换字体,ubuntu – 更新后Wkhtmltopdf字体大小增加
  6. 关于asp.net 中 cookies 的清空
  7. linux6 安装oracle11g
  8. POJ 3734 Blocks 矩阵递推
  9. Spring 依赖注入(一、注入方式)
  10. 人们的Live Meeting系列 (floyd)