精华内容
下载资源
问答
  • Nnetstat显示网络有关的信息,比如套接口使用情况、路由、接口、协议(TCP等)等查看TCP连接的命令是什么? 正确答案: C 你的答案: A (错误)tcpdump top netstat ifconfigOPQRSTtar解压缩命令语法:tar [主选项+辅...

    N

    netstat

    显示网络有关的信息,比如套接口使用情况、路由、接口、协议(TCP等)等

    查看TCP连接的命令是什么?
    正确答案: C   你的答案: A (错误)
    
    tcpdump
    top
    netstat
    ifconfig

    O

    P

    Q

    R

    S

    sed

    sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
    http://www.iteye.com/topic/587673

    -n 在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到屏幕上。但如果加上 -n 参数后,则只有经过 sed 特殊处理的那一行才会被列出来。

    p 打印模板块的行。

    以下哪些命令可以打印文件(demo.log)中包含ERP的行到标准输出()
    正确答案: D   你的答案: C (错误)
    
    sed '/ERR/a\' demo.log
    sed '/ERP/p' demo.log
    sed '/ERP/d' demo.log
    sed -n '/ERP/p' demo.log

    T

    tar解压缩命令

    语法:tar [主选项+辅选项] 文件或者目录
    使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。

    主选项:
    -c 相当于打包。创建的档案文件,如果用户想打包一个目录或是一些文件,就要选择这个选项。
    -x 相当于拆包。从档案文件中释放文件。
    -t 列出档案文件的内容。查看已经备份了哪些文件。
    -r 增加文件到指定包中
    -u 更新包中的文件
    特别注意,在参数的下达中,仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。

    辅助选项:
    -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩或解压? 一般格式为xx.tar.gz或xx. tgz
    -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩或解压?一般格式为xx.tar.bz2
    -v :压缩的过程中显示文件!这个常用
    -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加其他参数!
    -p :使用原文件的原来属性(属性不会依据使用者而变)

    在linux中用使用tar命令将文件aaa打包为bak.tar。
    正确答案: A   你的答案: B (错误)
    
    tar -cf bak.tar  aaa
    tar -xf bak.tar  aaa
    tar -czf bak.tar  aaa
    tar -rf bak.tar  aaa

    tcpdump

    是简单可靠网络监控的实用工具

    U

    V

    W

    X

    Y

    Z

    展开全文
  • 此时检查服务器应用进程依然存在,内存空闲量充足,于是使用 netstat -aptn 命令查看相关网络服务的连接状态发现问题。 ``` tcp6 51 0 :::443 :::* LISTEN 8322/java ``` 可以 51 指的是 Qecv-Q 指的是接收...
  • 在CentOS系统中防火墙默认阻止3306端口,我们要是想访问mysql数据库,我们需要这个端口,命令如下: 1 /sbin/iptables -I INPUT -p tcp --dport 3036 -j ACCEPT 我们需要保存我们操作,命令如下: 1 ...

    CentOS 打开3306端口

    在CentOS系统中防火墙默认是阻止3306端口的,我们要是想访问mysql数据库,我们需要这个端口,命令如下:

    1 /sbin/iptables -I INPUT -p tcp --dport 3036 -j ACCEPT

    我们需要保存我们的操作,命令如下:

    1  /etc/rc.d/init.d/iptables save

    此时我们可以查看端口的状态,命令如下:

    1 /etc/init.d/iptables status

    当然如果你打开其他端口也一样,只需要把这个端口号换乘你需要的端口号即可。

    展开全文
  • TCP/IP四层模型理解

    千次阅读 多人点赞 2020-03-25 21:10:12
    TCP是面向连接的,可靠的传输协议 面向连接:当通信双方通过三次握手,并且在都在内部开辟了通信所需要的资源,例如SOCKET缓冲区等,这就算一个连接真正建立了。 整个过程 三次握手: 发送数据 四次挥手 利用抓包...

    应用层

    没什么好说的,优秀的文章很多

    传输层

    TCP传输控制层

    TCP是面向连接的,可靠的传输协议

    面向连接:当通信双方通过三次握手,并且在都在内部开辟了通信所需要的资源,例如SOCKET缓冲区等,这就算一个连接真正建立了。

    整个过程

    • 三次握手:三次握手
      还有一个就是为什么要进行三次握手,这也是一个非常常见的问题,因为tcp是可靠的稳定的连接,连接之前,通信的双方必须要先交流一些必要信息在发送数据之前,例如发送的数据的seq是多少,发送数据的win是多大。

      那么怎么要保证双方都能知道呢?
      假设现在我们只进行一次握手,那肯定是不行的,一次握手即使是这条消息百分之百发送成功的情况下,两个点之中的某一个会不知道对方发送能力,发送的seq。
      两次握手呢?看起来可以让双方都知道这些信息,但是这是在数据百分之百发送成功的情况下的,网络是不能保证百分之百的,假设现在客户端发送了一个握手信息,他又收到了服务器的ACK信息,现在客户端已经可以确定了双方都知道必要的信息,但是服务器并不知道,因为服务器这条回复数据发送成功没有他并不知道,所有还需要客户端给他一个回复信息,这样就双方都知道了必要信息,就是三次握手了。那么如果,最后的一次握手信息发送失败了怎么办?那么如果 第三次握手中的ACK包丢失的情况下,客户端现在是已经认为连接已经建立了,Client 将会向 server端发送数据包了,但是现在server这边的连接还没有建立成功,client直接发送数据包过来,Server就不懂了,Server端将以 RST包响应,方能感知到Server的错误。
    • 发送数据
    • 四次挥手四次挥手
      为什么需要4次挥手呢?
      假设现在客户端一方向断开连接,客户端就需要发送一个断开连接的数据包。然后服务器收到数据包之后,因为可靠传输的原因,需要给客户端发送一个ACK包,确认自己收到了想断开连接的包。而不是说他服务器也同意断开连接,因为server这时候可能还有数据没发(注意是没发,而不是没收,TCP能保证消息到达的顺序性,所以既然server都确认你断开连接的包了,那么其他包肯定也就收到了),所以server还需要继续持有连接,继续发送。等到server也想断开连接的时候,server也发送一个断开连接的包,然后client也再给一个ack。这样能保证什么?保证通信双方都知道对方不在传输数据了,这时候释放资源。
      client收到server的确认断开连接的请求之后,不是立即断开连接,而是进入time_wait状态,等待2msl。 在Client发送出最后的ACK回复,但该ACK可能丢失。Server如果没有收到ACK,将不断重复发送FIN片段。所以Client不能立即关闭,它必须确认Server接收到了该ACK(又是可靠连接)。为什么等待2msl就能确认server收到呢?其实是不能百分之百确认的,虽然说server会重发fin,但是如果fin也一直丢失怎么办?这种可能会存在,但是几率非常低,其实就算是一次丢包的几率都非常低,更别说ack和重发的fin都丢了。 所谓的2MSL是两倍的MSL(Maximum Segment Lifetime)。MSL指一个片段在网络中最大的存活时间,2MSL就是一个发送和一个回复所需的最大时间。如果直到2MSL,Client都没有再次收到FIN,那么Client推断ACK已经被成功接收,则结束TCP连接。当然我们可以等待更长的时候来防止server没有收到ack,但是没有这个必要了已经(资源的角度来考虑),2MSL已经让server有了一次重发的机会,这样连续丢失几个包的概率实在是太低了。

    利用抓包命令来查看上面的通讯过程

    # yum install tcpdump   // 如果没有tcpdump,需要先安装这个程序
    # tcpdump -nn -i eth0 port 80
    -nn :不转换任何数值型ip和端口号到对应网站和协议
    -i	:指定要抓取的网卡,这里指定eth0。不知道有哪些网卡使用ifconfig查看
    port:指定要抓取的端口为80
    

    另起终端,用来发送网络请求

    # curl www.baidu.com	// 这个命令会进行一次完整的网络通信,且不会保持连接,会进行4次挥手断开连接,最终在原终端就能显示交互的数据了
    

    在这里插入图片描述

    1. 前三个包就是三次握手的包,然后就是客户端请求百度主页的包(http请求内容),其中Flags[P.]的含义是告诉对方快处理这个包,我没有包继续发了。

    2. 然后百度回复了一个确认包,也就是确认他已经收到了,这就是TCP可靠性的来源。

    3. 现在是第5条数据包了,百度开始响应我们的http请求了,给我们返回他的响应数据。然后我们收到了这个包,给了百度一个确认。TCP的两个点每次收到对方的数据的时候都会发回一个响应包,就是告诉对方自己已经收到了,这就是可靠性的一个重要来源

    4. 第五条的那个数据包没有将百度想要给我们响应内容一次发送完毕,因为每次发送的数据的大小是有限制的,所以可能需要分多个包来发完,这个大小是三次握手的时候双方沟通好的,就是win的大小,这个就是告诉对方,你给我发消息一次能发多大的数据包

    5. 我们又给了百度一个确认

    6. 数据交互完毕了,因为Curl是一次完整过的请求,其会进行四次挥手,开始进行四次挥手了。我们主动的向百度发送断开连接的请求

    显示当前主机当前有哪些TCP连接

    netstat -natp
    -n: 禁止将协议中的一些数字或者协议的名称,例如localhost,或者将80转换为http
    -a: 显示所有的连接
    -t: tcp连接
    -p:	显示哪个进程持有这个链接
    

    网络层

    查看某个网卡的配置信息

    vim /etc/sysconfig/network-scripts/ifcfg-eth0	// 查看eth0这个网卡的配置 
    

    在这里插入图片描述
    这就是这个网卡的配置

    • dhcp:表示该网卡的ip地址是通过DHCP服务动态获取
    • ONBOOT:自动启动

    查看路由表

    # route -n
    

    在这里插入图片描述
    出现了这样的结果,这个结果是什么含义?
    每一行代表一个路由规则,决定我们的数据包如何发出去,发到哪去。Metric代表的是跃点的数量,一个跃点代表一个路由器,当有多个路由规则匹配的时候,一系统会优先选择跃点少的路径进行发送。

    Use Iface代表这条路由信息是哪个网卡的,如果匹配了对用的路由信息,就从该条路由信息的网卡将数据发送出去,一般我们加入新的网卡(网卡工作在数据链路层,网卡mac地址),系统都会默认的为我们加一条路由规则,当然我们也可以手动添加。

    Genmask,也就是掩码,假如我们现在要发送数据到162.13.12.3,如何决定怎么走?首先用Genmask与之进行与操作,得到的结果再与Destination进行比较,相同就代表这个链路可以到达目标地址,就会利用网卡将数据发送到Gateway(网关)让其继续进行数据的传递,也就是到达了下一跳,这样就进行了一次路由。这里明显如果我们想到达162.13.12.3,就是使用的第二条链路规则,因为其与操作之后结果相同

    这种掩码和目标地址是0.0.0.0这种形式的一般是被叫做默认路由,任何数据包通过这条路由规则都能匹配成功,一般的家庭电脑这条路由都是指向公网的。
    如果我们要在局域网中添加文件存储服务,就需要手动的添加一条路由规则,将指定的ip执行我们的文件服务器

    数据链路层

    上面我们说到了网关,我们将数据发送到网关,也就是下一跳。但是问题来了,我们如何发送?ip地址写谁?写我们要到达的目标的ip?还是网关的ip?其实是写的目标的ip地址。那要如何发送到网关呢?这要交给数据链路层来进行操作了,数据链路层利用mac地址来进行通信。利用**arp**协议在已知ip的情况下获取到对应的mac地址。现在已知网关的ip地址,就可以获取到网关的mac地址,然后在链路层上进行发送。又在网络层的数据外部套上一层链路层中的数据,包含了源mac地址(主机的mac)和目标mac地址(网关的mac),当然不只包含这两个数据。然后数据发送到网关之后,把链路层的数据去掉,查看网络层的数据,发现ip地址不是自己,其又会查询其自己的路由表,找到了下一跳。又获取下一跳的mac地址,又套上一层数据链路层的数据,其中包含源mac地址(此时就是网关的mac了)和目标mac地址(此时就是下一跳的mac)了,就这样一直寻找下一条,直到某个位置拆开链路层的数据包之后发现网络层的数据中的ip是自己,这就到达了目标位置。

    mac地址,每一次跳跃都会发生变化

    mac地址每次跳跃都会改变,那源ip地址和目标ip地址是否会变呢?

    这个问题的答案是不一定的,要看场景,我们一般的家庭路由器上网的时候,用户的ip地址一般都是192.168.2.xxx这种形式的,那我们在网络上通信肯定不可能使用这种ip地址啊,这样岂不是会有很多相同的源ip地址在网络上进行请求,怎么区分谁是谁呢?所以说,我们一般的家庭路由器,源ip地址是会改变的,其会被运营商变成一个公网的ip地址,这样响应数据的时候才能正确的路由回来。但是如果你本身就是公网ip,那就不会变化了。这就是看场景。

    ARP协议实验

    同样打开两个终端

    // 第一个终端执行
    # tcpdump -nn -i eth0 port 80 or arp	// 监听80端口或者是arp协议的请求
    
    // 第二个终端执行
    # arp -d 192.168.163.2 && curl www.baidu.com	
    // 第一部分表示删除192.168.163.2的mac地址记录,这样又需要重新去请求该ip的mac地址,这个IP地址是网关的ip地址,这个就是删除了网关的mac地址记录
    // 第二部分就是请求百度 ,因为前一部分删除了网关的mac地址记录,这里要向百度发送请求肯定又需要网关的mac地址,我们也就能看到对应的获取mac地址的arp请求
    

    在第一个终端我们就能看到抓到的记录
    在这里插入图片描述
    可以看到,最开始的这条arp请求就是用来获取192.168.163.128的mac地址的,这个请求是以广播的形式发出去的,然后192.168.163.128收到了这个广播并回复了他。这就是一个arp请求的形式

    注意:arp -d 192.168.163.2 && curl www.baidu.com这个两个命令必须一起执行,因为如果如果先执行第一部分再执行第二部分,可能抓包记录中不会有arp请求,因为其可能会周期性的自动获取某个ip对应的mac,可能在你抓包之前,自动获取了,192.168.163.2 的mac地址就已经有了,当然也就不会发送arp请求了


    新的问题,运营商如何区分那么多宽带用户

    举个例子,比如我们现在使用没有公网ip的家庭路由器上网,我们现在请求百度,我们的ip地址是192.168.1.2,数据发送出去之后,ip地址会被运营商变成公网ip,然后成功的将数据发送到了百度,但是百度响应数据的时候响应到的是运营商啊,因为请求的源ip地址被运营商变成了他的ip,那运营商如何将数据发送给我们?这就要依赖另外一个技术了:端口映射

    内网和外网之间的通信(端口映射)

    windows下查看路由表
    在这里插入图片描述
    看起来稍微与linux的有所区别,但都是差不多的,这里的接口就与linux下的网卡是一个意思,就决定从哪个口出去。在链路上就表示不用经过网关,直接发送到目标网络。而带有网关地址的,则需要将数据包发送到网关,再由网关进行转发

    展开全文
  • 为了看清楚ARP运作过程,我们执行telnet命令与无效服务器连接。 当我们在另一个系统(s u n)上运行带有-e选项t c p d u m p命令时,显示的是硬件地址(在我们例子中48 bit 以太网地址)。图4 - 4中...

    为了看清楚ARP的运作过程,我们执行telnet命令与无效的服务器连接。

    当我们在另一个系统(s u n)上运行带有-e选项的t c p d u m p命令时,显示的是硬件地址(在我们的例子中是48 bit 的以太网地址)。图4 - 4中的t c p d u m p的原始输出如附录A中的图A - 3所示。由于这是本书第一个t c p d u m p 输出例子,你应该去查看附录中的原始输出,看看我们作了哪些修改。

    图4-4 TCP连接请求产生的ARP请求和应答


    我们删除了t c p d u m p命令输出的最后四行,因为它们是结束连接的信息
    在第1行中,源端主机(b s d i)的硬件地址是0 : 0 : c 0 : 6 f : 2 d : 4 0。目的端主机的硬件地址是ff : ff : ff : ff : ff : ff ,这是一个以太网广播地址。电缆上的每个以太网接口都要接收这个数据帧并对它进行处理,如图4 - 2所示。
    第1行中紧接着的一个输出字段是a r p,表明帧类型字段的值是0 x 0 8 0 6,说明此数据帧是一个A R P请求或回答。
    在每行中,单词a r p或i p后面的值6 0指的是以太网数据帧的长度。由于A R P请求或回答的数据帧长都是4 2字节(2 8字节的A R P数据,1 4字节的以太网帧头),因此,每一帧都必须加入填充字符以达到以太网的最小长度要求:6 0字节。
    这个最小长度6 0字节包含1 4字节的以太网帧头,但是不包括4个字节的以太网帧尾。有一些书把最小长度定为6 4字节,它包括以太网的帧尾。我们把最小长度定为4 6字节,是有意不包括1 4字节的帧首部,因为对应的最大长度(1 5 0 0字节)指的是M T U—最大传输单元(见图2 - 5)。我们使用M T U经常是因为它对I P数据报的长度进行限制,但一般与最小长度无关。大多数的设备驱动程序或接口卡自动地用填充字符把以太网数据帧充满到最小长度。第3,4和5行中的I P数据报(包含T C P段)的长度都比最小长度短,因此都必须填充到6 0字节。
    第1行中的下一个输出字段arp who-has 表示作为A R P请求的这个数据帧中,目的I P地址是s v r 4的地址,发送端的I P地址是b s d i的地址。t c p d u m p打印出主机名对应的默认I P地址(在4 . 7节中,我们将用-n选项来查看A R P请求中真正的I P地址。) 从第2 行中可以看到,尽管A R P 请求是广播的,但是A R P 应答的目的地址却是b s d i(0 : 0 : c 0 : 6 f : 2 d : 4 0)。A R P应答是直接送到请求端主机的,而是广播的。t c p d u m p打印出arp reply的字样,同时打印出响应者的主机名和硬件地址。第3行是第一个请求建立连接的T C P段。它的目的硬件地址是目的主机(s v r 4)。
    在每一行中,行号后面的数字表示t c p d u m p收到分组的时间(以秒为单位)。除第1行外,其他每行在括号中还包含了与上一行的时间差异(以秒为单位)。从这个图可以看出,发送A R P请求与收到A R P回答之间的延时是2.2 ms。而在0.7 ms之后发出第一段T C P报文。在本例中,用A R P进行动态地址解析的时间小于3 ms 。
    最后需要指出的一点,在t c p d u m p命令输出中,我们没有看到s v r 4在发出第一段T C P报文(第4行)之前发出的A R P请求。这是因为可能在s v r 4的A R P高速缓存中已经有b s d i的表项。一般情况下,当系统收到A R P请求或发送A R P应答时,都要把请求端的硬件地址和I P地址存入A R P高速缓存。在逻辑上可以假设,如果请求端要发送I P数据报,那么数据报的接收端将很可能会发送一个应答。

    展开全文
  • Linux中进程和连接状态查看

    千次阅读 2019-09-04 22:24:06
    有时候我们还要查看目前系统中某个进程连接数,还有各个TCP连接分别处于什么状态。这里来和大家一起总结下这些实用命令查看端口号是否被占用 比如在Linux系统中,我需要查看系统8096端口是否被占用,我们该...
  • 常用DOS命令

    2012-12-18 17:23:00
    它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们给目标IP地址...
  • 最近一直在开发移动端接口,在内部测试时候发现这么个奇怪现象: 现象: 一部... 解决思路: 遇到这种问题首先想到的是使用linux命令查看TCP连接数量,netstat -n|grep 8888发现每当两部手机同时打开APP时...
  • 整理一些常用分析网站的小命令方便大家排障,内容均来源于网络。 如果你初学者关于AWK应用技巧请参照论坛的脚本编程版块, 如果你老手,什么的命令集或者必杀技欢迎...1.查看TCP连接状态 netstat -nat |awk '
  • PS:整理一些Linux Web服务器网站故障分析常用的命令,内容均来源于...查看TCP连接状态 netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn netstat -n | awk ‘/^tcp/ {++S[NF]};END {for(a in S) print a
  • Linux常用的命令

    2014-09-21 19:43:32
    u 来撤销最后执行的命令 dd 删除整行 yy复制 按p 粘贴 gg 到首行 G 到最后一行 输入 p 将最后一次删除的内容置入光标之后 输入 r 和一个字符替换光标所在位置的字符 按下 SHIFT-G 键可以使得当前光标直接跳转到文件...
  • ipconfig 微软操作系统的计算机上用来控制网络连接的一个命令行工具。它的主要用来显示当前网络连接的配置信息。 操作一:使用 ipconfig/all 查看自己计算机的网络配置 操作二:使用 ipconfig/all 查看旁边...
  • 转自:http://u.sanwen.net/subject/51587.html 如果你初学者关于AWK应用技巧请参照论坛的脚本编程版块, 如果你老手,什么的命令集或者必杀技欢迎跟贴,丰富此贴! ...1.查看TCP连接状态 netstat -
  • Netstat 一款命令行工具,可用于列出系统上所有网络套接字连接情况,包括 tcp, udp 以及 unix 套接字,另外它还能列出处于监听状态(即等待接入请求)套接字。比如你可以确认你系统某个服务有没有起来,或者...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 198
精华内容 79
关键字:

查看tcp连接的命令是什么