网络协议和管理配置

网络协议和管理配置

1 网络基础:

计算机网络是一组计算机或网络设备通过有形的线缆或无形的媒介如无线,连接起来,按照一定的规则,进行通信的集合。

2 网络功能和优点:

数据和应用程序

资源

网络存储

备份设备

3 作用范围分类:

广域网(WAN,Wide Area Network)

城域网(MAN,Metropolitan Area Network)

局域网(LAN,Local Area Network)

常见的网络物理组件:路由器,交换机,pc端,网络接口卡

 

网络应用程序:

1 各种网络应用

Web浏览器(Chrome、IE、Firefox等)

即时消息 QQ、微信、钉钉等)

电子邮件 Outlook、foxmail 等)

协作(视频会议、VNC、Netmeeting、WebEx 等)

web网络服务(apache,nginx,IIS)

文件网络服务(ftp ,nfs,samba)

数据库服务 MySQL,MariaDB,MongoDB)

中间件服务 Tomcat,JBoss)

安全服务  Netfilter)

2 应用程序对网络的要求

1)批处理应用程序

    FTP、TFTP、库存更新

    无需直接人工交互

    带宽很重要,但并非关键性因素

2)交互式应用程序

    库存查询、数据库更新

    人机交互

    因为用户需等待响应,所以响应时间很重要,但并非关键性因素,除非要等待很长时间

3)实时应用程序

    VoIP、视频

    人与人的交互

端到端的延时至关重要

 

网络的特征

1 速度(带宽)

  1B=8b  100Mbps=102400kbps/8=12800kBps 即100M的宽带理论上最大下载速度为12.8M/s左右。

2 网络拓扑

拓扑结构一般是指由点和线排列成的几何图形

计算机网络的拓扑结构是指一个网络的通信链路和计算机结点相互连接构成的几何图形

1)拓扑分类

    物理拓扑描述了物理设备的布线方式

    逻辑拓扑描述了信息在网络中流动的方式

2)拓扑结构分类

    总线拓扑:所有设备均可接收信号

    星型拓扑:通过中心点传输,单一故障点

    扩展星型拓扑:比星型拓扑的复原能力更强

    环拓扑:信号绕环传输,单一故障点

    双环拓扑:信号沿相反方向传输,比单环的复原能力更强

    全网状拓扑:容错能力强,实施成本高

部分网状拓扑:在容错能力与成本之间寻求平衡

 

网络标准

网络标准和分层

旧模型:专有产品,由一个厂商控制应用程序和嵌入的软件

基于标准的模型:多厂商软件,分层方法

2 层次划分的必要性

计算机网络是由许多硬件、软件和协议交织起来的复杂系统。由于网络设计十分复杂,如何设计、组织和实现计算机网络是一个挑战,必须要采用科学有效的方法

3 层次划分的方法

网络的第一层应当具有相对独立的功能

梳理功能之间的关系,使一个功能可以为实现另一个功能提供必要的服务,从而形成系统的层次结构

为提高系统的工作效率,相同或相近的功能仅在一个层次中实现,而且尽可能在较高的层次中实现每一层只为相邻的上一层提供服务

4 层次划分的优点

各层之间相互独立,每一层只实现一种相对独立的功能,使问题复杂程度降低

灵活性好,各层内部的操作不会影响其他层

结构上可分割开,各层之间都可以采用最合适的技术来实现

易于实现和维护,因为整个系统已被分解成相对独立的子系统

能促进标准化工作,因为每一层的功能及其提供的服务都有了精确的说明

开放系统互联 OSI

1 在制定计算机网络标准方面,起着重大作用的两大国际组织是:国际电信联盟电信标准化部门,与国际标准组织(ISO),虽然它们工作领域不同,但随着科学技术的发展,通信与信息处理之间的界限开始变得比较模糊,这也成了国际电信联盟电信标准化部门和ISO共同关心的领域。1984年,ISO发布了著名OSI(Open System Interconnection)标准,它定义了网络互联的7层框架,物理层、数据链路层、网络层、传输层、会话层、表示层和应用层),即OSI开放系统互连参考模型

 

 

2 OSI 模型的七层结构

7层 应用层

应用层(Application Layer)提供为应用软件而设的接口,以设置与另一应用软件之间的通信。例如: HTTP、HTTPS、FTP、TELNET、SSH、SMTP、POP3、MySQL等

6层 表示层

主条目:表示层(Presentation Layer)把数据转换为能与接收者的系统格式兼容并适合传输的格式

5层 会话层

会话层(Session Layer)负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接。

4层 传输层

传输层(Transport Layer)把传输表头(TH)加至数据以形成数据包。传输表头包含了所使用的协议等发送信息。例如:传输控制协议(TCP)等。

3层 网络层

网络层(Network Layer)决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成报文。网络表头包含了网络数据。例如:互联网协议(IP)等。

2层 数据链接层

数据链路层(Data Link Layer)负责网络寻址、错误侦测和改错。当表头和表尾被加至数据包时,会形成信息框(Data Frame)。数据链表头(DLH)是包含了物理地址和错误侦测及改错的方法。数据链

表尾(DLT)是一串指示数据包末端的字符串。例如以太网、无线局域网(Wi-Fi)和通用分组无线服务(GPRS)等。分为两个子层:逻辑链路控制(logical link control,LLC)子层和介质访问控制

Media access control,MAC)子层

1层 物理层

物理层(Physical Layer)在局部局域网上传送数据帧(Data Frame),它负责管理电脑通信设备和网络媒体之间的互通。包括了针脚、电压、线缆规范、集线器、中继器、网卡、主机接口卡等

网络的通信过程

1 数据封装和数据解封

整个OSI的传送过程就是我们透过应用程序将数据放入图中所示的第七层包裹中,然后再由第七层放入第六层包裹内,在依次序一直放入第一层的包裹内,在传送出去给接收端。接收端的主机从第一个包裹开始拆起,依次序拆开所有包裹,在分别交给对应负责的阶层来视察。既然是包裹,就会有表头信息,用来告知对方里边是什么信息,上层的包裹是放入下层中,所有下层包含上层的表头。数据的封装和解封具体如下图所示:

 

2 协议数据单元PDU

PDU: Protocol Data Unit,协议数据单元是指对等层次之间传递的数据单位

物理层的 PDU是数据位 bit

数据链路层的 PDU是数据帧 frame

网络层的PDU是数据包 packet

传输层的 PDU是数据段 segment

其他更高层次的PDU是消息 message

3 三种通讯模式

unicast 单播

broadcast 广播

multicast 组播

4 冲突域和广播域

冲突域:两个网络设备同时发送数据,如果发生了冲突,则两个设备处于同一个冲突域,反之则各自处于不同的冲突域

广播域:一个网络设备发送广播,另一个设备收到了,则两个设备处于同一个广播域,反之则各自处于不同的广播域

5 三种通讯机制

单工通信:只有一个方向的通信

半双工通信:通信双方都可以发送和接收信息,但不能同时发送,也不能同时接收

全双工通信:通信双方可以同时发送和同时接收

 

例:eth0支持的通信机制

 

 

查看网卡(网络故障排错)

 

 

 

 

局域网 Local Area Network

1 特点

网络为一个单位所拥有

地理范围和站点数目均有限

2 主要功能

资源共享和数据通信

3 优点

能方便地共享昂贵的外部设备、主机以及软件、数据。从一个站点可以访问全网

便于系统的扩展和逐渐演变,各设备的位置可灵活的调整和改变

提高系统的可靠性、可用性和易用性

4 标准

IEEE于(国际电子电气工程师协会)19802月成立了局域网标准委员会(简称IEEE80委员会),专门从事局域网标准化工作,并制定了IEEE802标准。802标准所描述的局域网参考模型只对应OSI参考模型的数据链路层与物理层,它将数据链路层划分为逻辑链路层LLC子层和介质访问控制MAC子层

LLC子层负责向其上层提供服务

MAC子层的主要功能包括数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管理,帧的差错控制等。MAC子层的存在屏蔽了不同物理链路种类的差异性。

局域网标准

1IEEE 802.1标准

局域网体系结构、网络互连、以及网络管理和性能测试

2IEEE 802.2标准

逻辑链路控制LLC子层功能与服务

3IEEE 802.3标准

带冲突检测的载波侦听多路访问CSMA/CD总线介质访问控制子层与物理层规范

4IEEE 802.4标准

令牌总线(Token Bus)介质访问控制子层与物理层规范

5IEEE 802.5标准

令牌环(Token Ring)介质访问控制子层与物理层规范

6IEEE 802.6标准

城域网MAN介质访问控制子层与物理层规范

7IEEE 802.7标准

宽带网络技术

8IEEE 802.8标准

光纤传输技术

9IEEE 802.9标准

综合语音与数据局域网(IVD LAN)技术

10IEEE 802.10标准

可互操作的局域网安全性规范(SILS

11IEEE 802.11标准

无线局域网技术

12IEEE 802.12标准

优先度要求的访问控制方法

13IEEE 802.13标准

未使用

14IEEE 802.14标准

交互式电视网

15IEEE 802.15标准

无线个人局域网(WPAN)的MAC子层和物理层规范。代表技术为蓝牙(Bluetooth

16IEEE 802.16标准

宽带无线局域网网络

17IEEE802.20标准

移动宽带无线接入系统(MBWAMobile Broadband Wireless Access)

18IEEE 802.22标准

无线地域网络(Wireless Regional Area NetworksWRAN

5 无线网络标准

中国国家无线网络标准:WAPI

组网设备

 

 

9 中继器和集线器

中继器 repeater

实际上是一种信号再生放大器,可将变弱的信号和有失真的信号进行整形与放大,输出信号比原信号的强度将大大提高,中继器不解释、不改变收到的数字信息,而只是将其整形放大后再转发出去

优点

1)易于操作

2)很短的等待时间

4)价格便宜

5)突破线缆的距离限制来扩展局域网段的距离

6)可用来连接不同的物理介质

缺点

1)采用中继器连接网络分支的数目要受具体的网络体系结构限制

2)中继器不能连接不同类型的网络

3)中继器没有隔离和过滤功能,无路由选择、交换、纠错/检错功能,一个分支出现故障可能会影响到其他的每一个网络分支

4)使用中继器扩充网络距离是最简单最廉价的方法,但当负载增加时,网络性能急剧下降,所以只有当网络负载很轻和网络时延要求不高的条件下才能使用

集线器 hub

集线器(Hub)工作在物理层,是中继器的一种形式,是一种集中连接缆线的网络组件,可以认为集线器是一个多端口的中继器,集线器能够提供多端口服务,主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。Hub并不记忆报文是由哪个MAC地址发出,哪个MAC地址在Hub的哪个端口

Hub的特点:

共享带宽

半双工

10 网桥和交换机

网桥Bridge

网桥(Bridge)也叫桥接器,是连接两个局域网的一种存储/转发设备,根据MAC地址表对数据帧进行转发,可隔离碰撞域网桥将网络的多个网段在数据链路层连接起来,并对网络数据帧进行管理

优点

过滤通信量

扩大了物理范围

提高了可靠性

可互连不同物理层、不同 MAC 子层和不同速率(如10 Mb/s 100 Mb/s 以太网)的局域网

缺点

存储转发增加了时延

MAC 子层并没有流量控制功能

具有不同 MAC 子层的网段桥接在一起时时延更大

网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网,否则有时还会因传播过多的广播信息而产生网络拥塞。这就是所谓的广播风暴

11 交换机switch

交换机是工作在OSI参考模型数据链路层的设备,外表和集线器相似

它通过判断数据帧的目的MAC地址,从而将数据帧从合适端口发送出去

交换机是通过MAC地址的学习和维护更新机制来实现数据帧的转发

工作原理

1)交换机根据收到数据帧中的源MAC地址建立该地址同交换机端口的映射,并将其写入MAC地址表中

2)交换机将数据帧中的目的MAC地址同已建立的MAC地址表进行比较,以决定由哪个端口进行转发

3)如数据帧中的目的MAC地址不在MAC地址表中,则向所有端口转发。这一过程称为泛洪(flood

4)广播帧和组播帧向所有的端口转发

12 集线器与交换机的比较

1)交换机属于数据链路层设备,而集线器属于物理层设备

2)集线器在转发帧时,不对传输介质进行检测,交换机在转发帧之前必须执行 CSMA/CD 算法。若在发送过程中出现碰撞,就必须停止发送和进行退避。所以交换机能隔离冲突,而集线器却只能增加冲突

3) 交换机的每个端口可提供专用的带宽,而集线器的所有端口只能共享带宽

4)集线器只能实现半双工传送,而交换机可支持全双工传送

5)集线器和交换机都无法隔离广播域

13 路由器 router

为了实现路由,路由器需要做下列事情:

分隔广播域和冲突域

选择路由表中到达目标最好的路径

维护和检查路由信息

连接广域网

路由:把一个数据包从一个设备发送到不同网络里的另一个设备上去。这些工作依靠路由器来完成。路由器只关心网络的状态和决定网络中的最佳路径。路由的实现依靠路由器中的路由表来完成

14 以太网技术

以太网(Ethernet)是一种产生较早且使用相当广泛的局域网,由美国Xerox(施乐)公司的Palo Alto研究中心(简称为PARC)于20世纪70年代初期开始研究并于1975年研制成功

以太网MAC帧格式

 

 

15 虚拟局域网 VLAN

虚拟局域网 VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组

这些网段具有某些共同的需求。每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的工作站是属于哪一个 VLAN。虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网

优点

1)更有效地共享网络资源。如果用交换机构成较大的局域网,大量的广播报文就会使网络性能下降。VLAN能将广播报文限制在本VLAN范围内,从而提升了网络的效能

2)简化网络管理。当结点物理位置发生变化时,如跨越多个局域网,通过逻辑上配置VLAN即可形成网络设备的逻辑组,无需重新布线和改变IP地址等。这些逻辑组可以跨越一个或多个二层交换机

3)提高网络的数据安全性。一个VLAN中的结点接收不到另一个VLAN中其他结点的帧

虚拟局域网的实现技术

1)基于端口的VLAN

2)基于MAC地址的VLAN

3)基于协议的VLAN

4)基于网络地址的VLAN

16 TCP/IP 协议栈

1TCP/IP 标准

Transmission Control Protocol/Internet Protocol 传输控制协议/因特网互联协议TCP/IP是一个Protocol Stack,包括TCPIPUDPICMPRIPTELNETFTPSMTPARP等许多协议

最早发源于1969年美国国防部(缩写为DoD)的因特网的前身ARPA网项目,198311日,TCP/IP取代了旧的网络控制协议NCP,成为今天的互联网和局域网的基石和标准,由互联网工程任务组负责维护

2TCP/IP 分层

共定义了四层,和OSI参考模型的分层有对应关系

 

 

TCP/IPOSI模型的比较

相同点

两者都是以协议栈的概念为基础

协议栈中的协议彼此相互独立

下层对上层提供服务

不同点

OSI是先有模型;TCP/IP是先有协议,后有模型

OSI是国际标准,适用于各种协议栈;TCP/IP实际标准,只适用于TCP/IP网络

层次数量不同

 

3transport (传输层)

 

TCP Transmission Control Protocol

 

  1. 特性:

 

工作在传输层

 

面向连接协议

 

全双工协议

 

半关闭

 

错误检查

 

将数据打包成段,排序

 

确认机制

 

数据恢复,重传

 

流量控制,滑动窗口

 

拥塞控制,慢启动和拥塞避免算法

 

更多关于tcp的内核参数,可参看man 7 tcp

 

  1. TCP包头结构

 

 

 

 

 

 

 

源端口、目标端口:计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要通信。源端口、目标端口是用16位表示的,可推算计算机的端口个数为2^16,65536

序列号:表示本报文段所发送数据的第一个字节的编号。在TCP连接中所传送的字节流的每一个字节都会按顺序编号。由于序列号由32位表示,所以每2^32个字节,就会出现序列号回绕,再次从0 开始

确认号:表示接收方期望收到发送方下一个报文段的第一个字节数据的编号。也就是告诉发送方:我希望你(指发送方)下次发送的数据的第一个字节数据的编号为此确认号

数据偏移:表示TCP报文段的首部长度,共4位,由于TCP首部包含一个长度可变的选项部分,需要指定这个TCP报文段到底有多长。它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。该字段的单位是32(4个字节为计算单位),4位二进制最大表示15,所以数据偏移也就是TCP首部最大60字节

URG:表示本报文段中发送的数据是否包含紧急数据。后面的紧急指针字段(urgent pointer)只有当URG=1时才有效

ACK:表示是否前面确认号字段是否有效。只有当ACK=1时,前面的确认号字段才有效。TCP规定,连接建立后,ACK必须为1,ACK标志的TCP报文段称为确认报文段

PSH:提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间。如果为1,则表示对方应当立即把数据提交给上层应用,而不是缓存起来,如果应用程序不将接收到的数据读走,就会一直停留在TCP接收缓冲区中

RST:如果收到一个RST=1的报文,说明与主机的连接出现了严重错误(如主机崩溃),必须释放连接,然后再重新建立连接。或者说明上次发送给主机的数据有问题,主机拒绝响应,带RST标志的TCP报文段称为复位报文段

SYN:在建立连接时使用,用来同步序号。当SYN=1ACK=0时,表示这是一个请求建立连接的报文段;当SYN=1ACK=1时,表示对方同意建立连接。SYN=1,说明这是一个请求建立连接或同意建立连接的报文。只有在前两次握手中SYN才置为1,带SYN标志的TCP报文段称为同步报文段

FIN:表示通知对方本端要关闭连接了,标记数据是否发送完毕。如果FIN=1,即告诉对方:我的数据已经发送完毕,你可以释放连接了,带FIN标志的TCP报文段称为结束报文段

窗口大小:表示现在允许对方发送的数据量,也就是告诉对方,从本报文段的确认号开始允许对方发送的数据量,达到此值,需要ACK确认后才能再继续传送后面数据,由Window size value * Window size scaling factor(此值在三次握手阶段TCP选项Window scale协商得到)得出此值

校验和:提供额外的可靠性

紧急指针:标记紧急数据在数据字段中的位置

选项部分:其最大长度可根据TCP首部长度进行推算。TCP首部长度用4位表示,选项部分最长为:(2^4-1)*4-20=40字节

  1. TCP协议PORT

传输层通过port号,确定应用层协议,范围0-65535

维基百科:https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers

IANA互联网数字分配机构负责域名,数字资源,协议分配

0-1023:系统端口或特权端口(仅管理员可用) ,众所周知,永久的分配给固定的系统应用使用,22/tcp(ssh), 80/tcp(http), 443/tcp(https)

1024-49151:用户端口或注册端口,但要求并不严格,分配给程序注册为某应用使用,

1433/tcp(SqlServer), 1521/tcp(oracle),3306/tcp(mysql),11211/tcp/udp (memcached)

49152-65535:动态或私有端口,客户端随机使用端口,范围定义:/proc/sys/net/ipv4/ip_local_port_range

 

例:调整客户端动态端口范围:

判断80端口是否正在打开:

TCP三次握手

 

 

TCP四次挥手

 

 

  1. 11种有限状态机

CLOSED 没有任何连接状态

LISTEN 侦听状态,等待来自远方TCP端口的连接请求

SYN-SENT 在发送连接请求后,等待对方确认

SYN-RECEIVED 在收到和发送一个连接请求后,等待对方确认

ESTABLISHED 代表传输连接建立,双方进入数据传送状态

FIN-WAIT-1 主动关闭,主机已发送关闭连接请求,等待对方确认

FIN-WAIT-2 主动关闭,主机已收到对方关闭传输连接确认,等待对方发送关闭传输连接请求

TIME-WAIT 完成双向传输连接关闭,等待所有分组消失

CLOSE-WAIT 被动关闭,收到对方发来的关闭连接请求,并已确认

LAST-ACK 被动关闭,等待最后一个关闭传输连接确认,并等待所有分组消失

CLOSING 双方同时尝试关闭传输连接,等待对方确认

 

户端先发送一个FIN给服务端,自己进入FIN_WAIT_1状态,这时等待接收服务端报文,该报文会有三种可能:

只有服务端的ACK

只有服务端的FIN

基于服务端的ACK,又有FIN

1、只收到服务器的ACK,客户端会进入FIN_WAIT_2状态,后续当收到服务端的FIN时,回应发送一个ACK,会进入到TIME_WAIT状态,这个状态会持续2MSL(TCP报文段在网络中的最大生存时间, RFC 1122标准的建议值是2min).客户端等待2MSL,是为了当最后一个ACK丢失时,可以再发送一次。因为服务端在等待超时后会再发送一个FIN给客户端,进而客户端知道ACK已丢失

2、只有服务端的FIN时,回应一个ACK给服务端,进入CLOSING状态,然后接收到服务端的ACK时,进入TIME_WAIT状态

3、同时收到服务端的ACKFIN,直接进入TIME_WAIT状态

  1. TCP超时重传

异常网络状况下(开始出现超时或丢包),TCP控制数据传输以保证其承诺的可靠服务

TCP服务必须能够重传超时时间内未收到确认的TCP报文段。为此,TCP模块为每个TCP报文段都维护一个重传定时器,该定时器在TCP报文段第一次被发送时启动。如果超时时间内未收到接收方的应答,TCP模块将重传TCP报文段并重置定时器。至于下次重传的超时时间如何选择,以及最多执行多少次重传,就是TCP的重传策略

TCP超时重传相关的两个内核参数:

/proc/sys/net/ipv4/tcp_retries1,指定在底层IP接管之前TCP最少执行的重传次数,默认值是3

/proc/sys/net/ipv4/tcp_retries2,指定连接放弃前TCP最多可以执行的重传次数,默认值15(一般对应1330min

 

 

  1. 拥塞控制

网络中的带宽、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可承受的能力,网络的性能就会变坏。此情况称为拥塞。TCP为提高网络利用率,降低丢包率,并保证网络资源对每条数据流的公平性。即所谓的拥塞控制。TCP拥塞控制的标准文档是RFC 5681,其中详细介绍了拥塞控制的四个部分:慢启动(slow start)、拥塞避免(congestion avoidance)、快速重传(fast retransmit)和快速恢复(fast recovery)。拥塞控制算法在Linux下有多种实现,比如reno算法、vegas算法和cubic算法等。它们或者部分或者全部实现了上述四个部分当前所使用的拥塞控制算法

 /proc/sys/net/ipv4/tcp_congestion_control内核TCP参数优化

参看帮助: man tcp

编辑文件/etc/sysctl.conf,加入以下内容:然后执行 sysctl -p 让参数生效。

net.ipv4.tcp_fin_timeout = 2

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_keepalive_time = 600

net.ipv4.ip_local_port_range = 2000 65000

net.ipv4.tcp_max_syn_backlog = 16384

net.ipv4.tcp_max_tw_buckets = 36000

net.ipv4.route.gc_timeout = 100

net.ipv4.tcp_syn_retries = 1

net.ipv4.tcp_synack_retries = 1

net.ipv4.tcp_max_orphans = 16384

net.core.somaxconn = 16384

net.core.netdev_max_backlog = 16384

作用说明:

net.ipv4.tcp_fin_timeout 表示套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间,默认值是60秒。 该参数对应系统路径为:/proc/sys/net/ipv4/tcp_fin_timeout 60

net.ipv4.tcp_tw_reuse 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认值为0,表示关闭。 该参数对应系统路径为:/proc/sys/net/ipv4/tcp_tw_reuse 0

net.ipv4.tcp_tw_recycle 表示开启TCP连接中TIME-WAIT sockets的快速回收。 该参数对应系统路径为:/proc/sys/net/ipv4/tcp_tw_recycle,默认为0,表示关闭。 提示:reuserecycle这两个参数是为防止生产环境下WebSquid等业务服务器time_wait网络状态数量过多设置的。

net.ipv4.tcp_syncookies 表示开启SYN Cookies功能。当出现SYN等待队列溢出时,启用Cookies来处理,可防范少量SYN攻击,这个参数也可以不添加。 该参数对应系统路径

为:/proc/sys/net/ipv4/tcp_syncookies,默认值为1

net.ipv4.tcp_keepalive_time 表示当keepalive启用时,TCP发送keepalive消息的频度。默认是2小时,建议改为10分钟。 该参数对应系统路径为:/proc/sys/net/ipv4/tcp_keepalive_time,默认为7200秒。

net.ipv4.ip_local_port_range 该选项用来设定允许系统打开的端口范围,即用于向外连接的端口范围。 该参数对应系统路径为:/proc/sys/net/ipv4/ip_local_port_range 32768 61000

net.ipv4.tcp_max_syn_backlog 表示SYN队列的长度,即半连接队列长度,默认为1024,建议加大队列的长度为8192或更多,这样可以容纳更多等待连接的网络连接数。 该参数为服务器端用于记录那些尚未收到客户端确认信息的连接请求最大值。 该参数对象系统路径

为:/proc/sys/net/ipv4/tcp_max_syn_backlog

net.ipv4.tcp_max_tw_buckets 表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数值,TIME_WAIT套接字将立刻被清除并打印警告信息。 默认为180000,对于ApacheNginx等服务器来说可以将其调低一点,如改为5000~30000,不通业务的服务器也可以给大一点,比如LVSSquid。 此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。 该参数对应系统路径为:/proc/sys/net/ipv4/tcp_max_tw_buckets

net.ipv4.tcp_synack_retries 参数的值决定了内核放弃连接之前发送SYN+ACK包的数量。 该参数对应系统路径为:/proc/sys/net/ipv4/tcp_synack_retries,默认值为5

net.ipv4.tcp_syn_retries 表示在内核放弃建立连接之前发送SYN包的数量。 该参数对应系统路径为:/proc/sys/net/ipv4/tcp_syn_retries,默认值为6

net.ipv4.tcp_max_orphans 用于设定系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上。 如果超过这个数值,孤立连接将被立即被复位并打印出警告信息。 这个限制只有为了防止简单的DoS攻击。不能过分依靠这个限制甚至认为减少这个值,更多的情况是增加这个值。该参数对应系统路径为:/proc/sys/net/ipv4/tcp_max_orphans ,默认值8192

net.core.somaxconn 同时发起的TCP的最大连接数,即全连接队列长度,在高并发请求中,可能会导致链接超时或重传,一般结合并发请求数来调大此值。 该参数对应系统路径

为:/proc/sys/net/core/somaxconn ,默认值是128

net.core.netdev_max_backlog 表示当每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许发送到队列的数据包最大数。 该参数对应系统路径为:/proc/sys/net/core/netdev_max_backlog,默认值为1000

 

UDP User Datagram Protocol

  1. UDP特性

工作在传输层

提供不可靠的网络访问

非面向连接协议

有限的错误检查

传输性能高

无数据恢复特性

更多关于udp的内核参数,可参看man 7 udp

UDPB包头结构 

Internet

 

 

例:利用ICMP协议判断网络状态

 

 

  1. Address Resolution Protocol 

ARP

ARP 地址解析协议由互联网工程任务组(IETF)在198211月发布的RFC 826中描述制定,是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存

例:ARP

ARP静态绑定防止ARP欺骗

 

 

  1. Gratuitous ARP

Gratuitous ARP也称为免费ARP,无故ARPGratuitous ARP不同于一般的ARP请求,它并非期待得到ip对应的mac地址,而是当主机启动的时候,将发送一个Gratuitous arp请求,即请求自己的ip地址的mac地址

免费ARP可以有两个方面的作用:

验证IP是否冲突:一个主机可以通过它来确定另一个主机是否设置了相同的 IP地址

更换物理网卡:如果发送ARP的主机正好改变了物理地址(如更换物理网卡),可以使用此方法通知网络中其它主机及时更新ARP缓存

  1. Reverse Address Resolution Protocol

RARP 即将MAC转换成IP

 

internet 协议

  1. Internet 协议特征

运行于 OSI 网络层

面向无连接的协议

独立处理数据包

分层编址

尽力而为传输

无数据恢复功能

IP PDU 报头

 

 

IP PDU 报头格式

版本:4,IP 协议的版本目前的IP协议版本号为4

首部长度:4,可表示的最大数值是15个单位,一个单位为4字节,因此IP 的首部长度的最大值是60字节

区分服务:8,用来获得更好的服务,在旧标准中叫做服务类型,但实际上一直未被使用过.后改名为区分服务.只有在使用区分服务(DiffServ),这个字段才起作用.一般的情况下不用

总长度:16,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节.总长度必须不超过最大传送单元 MTU

标识:16,它是一个计数器,通常,每发送一个报文,该值会加1, 也用于数据包分片,在同一个包的若干分片中,该值是相同的

标志(flag):3,目前只有后两位有意义

DF:Don’t Fragment 中间的一位,只有当 DF=0 时才允许分片

MFMore Fragment 最后一位,MF=1表示后面还有分片,MF=0 表示最后一个分片IP PDU报头

片偏移:13,指较长的分组在分片后,该分片在原分组中的相对位置.片偏移以8个字节为偏移单位

生存时间:8,记为TTL (Time To Live) 数据报在网络中可通过的路由器数的最大值,TTL 字段是由发送端初始设置一个 8 bit字段.推荐的初始值由分配数字 RFC 指定,当前值为 64.发送 ICMP 回显应答时经常把 TTL 设为最大值 255

协议:8,指出此数据报携带的数据使用何种协议以便目的主机的IP层将数据部分上交给哪个处理过程, 1表示为 ICMP 协议, 2表示为 IGMP 协议, 6表示为 TCP 协议, 17表示为 UDP 协议

首部检验和:16,只检验数据报的首部不检验数据部分.这里不采用 CRC 检验码而采用简单的计算方法

源地址和目的地址:都各占4字节,分别记录源地址和目的地址

  1. IP地址

(1) IP地址的组成

它们可唯一标识 IP 网络中的每台设备 ,每台主机(计算机、网络设备、外围设备)必须具有唯一的地址

IP地址由两部分组成

网络ID:标识网络,每个网段分配一个网络ID,处于高位

主机ID:标识单个主机,由组织分配给各设备,处于低位

IPv4地址格式:点分十进制记法

IP地址是一个32位二进制数,将此32位二进制数分为四组组成四组8位二进制八位数,使之可读,每组二进制八位数均可转换成十进制数地址可使用点分十进制记法记录。

(2)IP地址分类

A类:

 0 0000000 - 0 1111111.X.Y.Z : 0-127.X.Y.Z

 网络ID位是最高8,主机ID24位低位

 网络数:126=2^7(可变是的网络ID位数)-2

 每个网络中的主机数:2^24-2=16777214

 默认子网掩码:255.0.0.0

 私网地址:10.0.0.0

 范例:114.114.114.114,8.8.8.8,1.1.1.158.87.87.99119.29.29.29

B类:

 10 000000 - 10 111111.X.Y.Z128-191.X.Y.Z

 网络ID位是最高16,主机ID16位低位

 网络数:2^14=16384

 每个网络中的主机数:2^16-2=65534

 默认子网掩码:255.255.0.0

 私网地址:172.16.0.0-172.31.0.0

 范例:180.76.76.76172.16.0.1

C类:

 110 0 0000 - 110 1 1111.X.Y.Z: 192-223.X.Y.Z

 网络ID位是最高24,主机ID8位低位

 网络数:2^21=2097152

 每个网络中的主机数:2^8-2=254

 默认子网掩码:255.255.255.0

 私网地址:192.168.0.0-192.168.255.0

 范例: 223.6.6.6

D类:组(多)播,1110 0000 - 1110 1111.X.Y.Z: 224-239.X.Y.Z

E类:保留未使用,240-255

(3)公共和私有IP地址

私有IP地址:不直接用于互联网,通常在局域网中使用

A10.0.0.010.255.255.255

B172.16.0.0172.31.255.255

C192.168.0.0192.168.255.255

公共IP地址:互联网上设备拥有的唯一地址

A1.0.0.09.255.255.255

    11.0.0.0126.255.255.255

B128.0.0.0172.15.255.255

    172.32.0.0191.255.255.255

C192.0.0.0192.167.255.255

192.169.0.0223.255.255.255

(4)特殊地址

0.0.0.0

不是一个真正意义上的IP地址。它表示所有不清楚的主机和目的网络

255.255.255.255

限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机

127.0.0.1127.255.255.254

本机回环地址,主要用于测试。在传输介质上永远不应该出现目的地址为127.0.0.1”的 数据包

224.0.0.0239.255.255.255

组播地址,224.0.0.1特指所有主机,224.0.0.2特指所有路由器。224.0.0.5OSPF 路由器,地址。多用于一些特定的程序以及多媒体程序

169.254.x.x

如果Windows主机使用了DHCP自动分配IP地址,而又无法从DHCP服务器获取地址,系统会为主机分配这样地址

(5)子网掩码

CIDR:无类域间路由,目前的网络已不再按ABC类划分网段,可以任意指定网段的范围

CIDR 无类域间路由表示法:IP/网络ID位数,如:172.16.0.100/16

netmask子网掩码:32位或128位(IPv6)的数字,和IP成对使用,用来确认IP地址中的网络ID和主机ID,对应网络ID的位为1,对应主机ID的位为0,范例:255.255.255.0 ,表现为连续的高位为1,连续的低位为0

子网掩码的八位:

10000000 128

11000000 192

11100000 224

11110000 240

11111000 248

11111100 252

11111110 254

11111111 255

判断对方主机是否在同一个网段:

用自已的子网掩码分别和自已的IP及对方的IP相与,比较结果,相同则同一网络,不同则不同网段

(6)相关公式

网段数:2^可变的网络ID位数

主机数:2^可变的主机ID位数-2

网络ID:可以用来判断当前主机在哪个网段

netmaskID=IP^netmask

(7)划分子网

将一个大的网络(主机数多)划分成多个小的网络(主机数少),主机ID位数变少,网络ID位数变多,网络ID位向主机ID位借位

范例:中国移动10.0.0.0/8 32个各省公司划分对应的子网

每个省公司的子网的netmask

2^5>=32 5位网络ID

8+5=13

255.248.0.0

2)每个省公司的子网的主机数有多少?

2^(32-13)-2=524286

3)河南省得到第10个子网,网络ID

10.00000 000.0.0/13

10.01001 000.0.0/13

10.72.0.0/13

4)河南省得到第10个子网的最小IP和最大的IP

10.01001 000.0.1

10.01001 111.11111111.11111110

10.72.0.1---10.79.255.254

5)所有子网中最大,最小的子网的netid

10.00000 000.0.0/13 10.0.0.0/13

10.11111 000.0.0/13 10.248.0.0/13

(8)合并超网:将多个小网络合并成一个大网,主机ID位向网络ID位借位

范例:

8C类网

220.78.168.0/24

220.78.169.0/24

220.78.170.0/24

220.78.171.0/24

220.78.172.0/24

220.78.173.0/24

220.78.174.0/24

220.78.175.0/24

 

220.78.10101 000.0   220.78.168.0/24

220.78.10101 001.0   220.78.169.0/24

220.78.10101 010.0   220.78.170.0/24

......

220.78.10101 110.0   220.78.174.0/24

220.78.10101 111.0   220.78.175.0/24

合并成

220.78.168.0/21

(9)跨网络通信

跨网络通信:路由,选择路径

路由分类:

主机路由

网络路由

默认路由

优先级:精度越高,优先级越高

(10)动态主机配置协议 DHCP

UDP协议

服务器端口67

客户端端口68

 

网络配置

(1)基本网络配置

/etc/sysconfig/network-sprits 网卡配置文件

Linux主机接入到网络,需要配置网络相关设置

一般包括如下内容:

DEVICE=配置网卡

NAME= 主机名

IPADDR= IP地址

PREFIX=网段数

MACADDR=MAC地址)

GETWAY=路由默认网关

BOOTPROTO=static/none

DNS服务器

DNS服务器

DNS服务器

(2)CentOS 6 之前版本网卡名称

接口命名方式:CentOS 6

以太网:eth[0,1,2,...]

 pppppp[0,1,2,...]

网络接口识别并命名相关的udev配置文件:

 /etc/udev/rules.d/70-persistent-net.rules

查看网卡:

 dmesg |grep –i eth

 ethtool -i eth0

卸载网卡驱动:

 modprobe -r e1000

 rmmod e1000

装载网卡驱动:

 modprobe e1000

范例:临时修改网卡名称

[root@centos6 ~]#ip link set eth0 down

[root@centos6 ~]#ip link set eth0 name abc

[root@centos6 ~]#ip link set abc up

(3)网络配置方式命令

静态指定:

ifconfig, route, netstat

ip: object {link, addr, route}, ss, tc

system-config-network-tuisetup

动态分配:DHCP: Dynamic Host Configuration Protocol

1) ifconfig命令

ifconfig [interface]

ifconfig -a   显示所有网卡

ifconfig IFACE [up|down] 启用/禁用网卡

ifconfig interface [aftype] options | address ...

ifconfig IFACE IP/netmask [up]

ifconfig IFACE IP netmask NETMASK

ifconfig eth0 192.168.0.100/24 配置地址

ifconfig eth0 0.0.0.0/0        清空地址

对一个网卡设置多个地址

ifconfig eth0:1 192.168.0.200/24

ifconfig eth0:1 down    删除地址

ifconfig -s  统计流量

watch -n1 config -s  每一秒调用网卡流量动态观察

ping -f 10.0.0.7 -s 65507   攻击服务器

注意:立即生效

启用混杂模式:[-]promisc

 

 

 

vim /etc/sysconfig/network  修改主机名

cat /etc/resolv.conf  查看DNS

其中文件中:search 后面是主机名后缀

ping一个网站时自动补充域名和文件中主机名相关,

如果主机名后缀为域名时,ping可以直接补充域名访问

如果主机名后缀不是域名,则ping不通

2) route命令

路由表管理命令

路由表主要构成:

Destination: 目标网络ID,表示可以到达的目标网络ID,0.0.0.0/0 表示所有未知网络,又称为默认路由,优先级最低

Genmask:目标网络对应的netmask

Iface: 到达对应网络,应该从当前主机哪个网卡发送出来

Gateway: 到达非直连的网络,将数据发送到临近(下一个)路由器的临近本主机的接口的IP地址,如果是直连网络,gateway0.0.0.0

Metric: 开销cost,值越小,路由记录的优先级最高

查看路由表:

route

route -n

添加:route add

route add [-net|-host|default] target [netmask Nm] [gw GW] [[dev] If]

删除:route del

route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]

3) netstat命令

来自于net-tools包,建议使用 ss 代替

显示网络连接:

netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--

numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]

常用选项

-t: tcp协议相关

-u: udp协议相关

-w: raw socket相关

-l: 处于监听状态

-a: 所有状态

-n: 以数字显示IP和端口

-e:扩展格式

-p: 显示相关进程及PID

常用组合:

-tan, -uan, -tnl, -unl

显示路由表:

netstat {--route|-r} [--numeric|-n]

-r: 显示内核路由表

-n: 数字格式

显示接口统计数据

netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [-

-numeric|-n]

netstat -i

netstat –I=IFACE

ifconfig -s IFACE

4) ip命令

来自于iproute,代替ifconfig

配置Linux网络属性

ip [ OPTIONS ] OBJECT { COMMAND | help }

ip 命令说明:

OBJECT := { link | addr | route }

ip link - network device configuration

set dev IFACE,可设置属性:up and down:激活或禁用指定接口,相当于 ifup/ifdown

show [dev IFACE] [up]::指定接口 ,up 仅显示处于激活状态的接口

ip 地址管理

ip addr { add | del } IFADDR dev STRING [label LABEL] [scope {global|link|host}]

[broadcast ADDRESS]

[label LABEL]:添加地址时指明网卡别名

[scope {global|link|host}]:指明作用域,global: 全局可用.link: 仅链接可用,host: 本机可

[broadcast ADDRESS]:指明广播地址

ip address show

ip addr flush  清空网络地址  

范例:

#禁用网卡

ip link set eth1 down

#网卡改名

ip link set eth1 name wangnet  

#启用网卡

ip link set wangnet up

#网卡别名

ip addr add 172.16.100.100/16 dev eth0 label eth0:0

ip addr del 172.16.100.100/16 dev eth0 label eth0:0

#清除网络地址(全部清空)

ip addr flush dev eth0

管理路由

ip route 用法

#添加路由:

ip route add TARGET via GW dev IFACE src SOURCE_IP

 TARGET:

 主机路由:IP

 网络路由:NETWORK/MASK

#添加网关:

ip route add default via GW dev IFACE

#删除路由:

ip route del TARGET

#显示路由:

ip route show|list

#清空路由表:

ip route flush [dev IFACE] [via PREFIX]

范例:

ip route add 192.168.0.0/24 via 172.16.0.1

ip route add 192.168.1.100 via 172.16.0.1

ip route add default via 172.16.0.1

ip route flush dev eth0

5) ss 命令

来自于iproute包,代替netstatnetstat 通过遍历 /proc来获取 socket信息,ss 使用 netlink与内核

tcp_diag 模块通信获取 socket 信息

格式:ss [OPTION]... [FILTER]

选项:

-t: tcp协议相关

-u: udp协议相关

-w: 裸套接字相关

-xunix sock相关

-l: listen状态的连接

-a: 所有

-n: 数字格式

-p: 相关的程序及PID

-e: 扩展的信息

-m:内存用量

-o:计时器信息

格式说明

FILTER : [ state TCP-STATE ] [ EXPRESSION ]

TCP的常见状态:

 tcp finite state machine:

 LISTEN: 监听

 ESTABLISHED:已建立的连接

 FIN_WAIT_1

 FIN_WAIT_2

 SYN_SENT

 SYN_RECV

 CLOSED

EXPRESSION:

 dport =

 sport =

常用组合:

常用组合:

-tan, -tanl, -tanlp, -uan

常见用法

#显示本地打开的所有端口

ss -l

#显示每个进程具体打开的socket

ss -pl

#显示所有tcp socket

ss -t -a

#显示所有的UDP Socekt

ss -u -a

#显示所有已建立的ssh连接

ss -o state established '( dport = :ssh or sport = :ssh )'

#显示所有已建立的HTTP连接

ss -o state established '( dport = :http or sport = :http )'

[root@centos8 ~]#ss -no state established '( dport = :21 or sport = :21 )'

Netid               Recv-Q               Send-Q                                

  Local Address:Port                                   Peer Address:Port      

tcp                 0                     0                                    

[::ffff:10.0.0.8]:21                                 [::ffff:10.0.0.7]:46638    

            timer:(keepalive,119min,0)

#列出当前socket详细信息

ss -s

(4)实现静态路由实验

 

 

  1. 环境:

台主机:

A主机:eth0  VMnet11模式

R1主机:eth0 VMnet11模式,eth1 VMnet12模式

R2主机:eth0 VMnet12模式,eth1 VMnet13模式

R3主机:eth0 VMnet13模式,eth1 VMnet14模式

B主机: eth0 VMnet14模式

  1. 修改主机ip 及路由器网卡配置

主机A

主机B

Router1

Router2

 

 

 

 

 

 

 

 

Router3

使配置路由生效:

  1. 配置路由表

Route1

Router:2

Router3:

 

开启ip_forward

 

 Ping AB主机

 

 

动态路由配置

通过守护进程获取动态路由

安装quagga,通过命令vtysh配置

支持多种路由协议:RIPOSPFBGP

 

网络配置文件

(1) 网络基本配置文件

IPMASKGWDNS相关的配置文件:

/etc/sysconfig/network-scripts/ifcfg-IFACE

说明参考:

/usr/share/doc/initcripts-*/sysconfig.txt

常用配置

TYPE 接口类型;常见有的Ethernet, Bridge

NAME 此配置文件应用到的设备

DEVICE 设备名

HWADDR 对应的设备的MAC地址

UUID 设备的惟一标识

BOOTPROTO: 激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp

IPADDR 指明IP地址

NETMASK 子网掩码,:255.255.255.0

PREFIX 网络ID的位数, :24

GATEWAY 默认网关

DNS1 第一个DNS服务器地址

DNS2 第二个DNS服务器地址

DOMAIN 主机不完整时,自动搜索的域名后缀

ONBOOT 在系统引导时是否激活此设备

USERCTL 普通用户是否可控制此设备

PEERDNS

如果BOOTPROTO的值为“dhcp”,YES将允许dhcp server分配的dns服务器信息直接覆盖至/etc/resolv.conf文件,NO不允许修改resolv.conf

NM_CONTROLLED NMNetworkManager的简写,此网卡是否接受NM控制

(1) 配置当前主机的主机名

#centos6 之前版本

/etc/sysconfig/network

HOSTNAME=

#centos7 以后版

/etc/hostname

HOSTNAME

(2) 本地主机名数据库和IP地址的映射

优先于使用DNS前检查

getent hosts 查看/etc/hosts 内容

/etc/hosts

(3) DNS域名解析

/etc/resolv.conf

nameserver DNS_SERVER_IP1

nameserver DNS_SERVER_IP2

nameserver DNS_SERVER_IP3

search DOMAIN

(4) 修改 /etc/hostsDNS的优先级

/etc/nsswitch.conf

hosts: files dns

(5) 路由相关的配置文件

/etc/sysconfig/network-scripts/route-IFACE

两种风格:

(1) TARGET via GW

如:10.0.0.0/8 via 172.16.0.1

(2) 每三行定义一条路由

ADDRESS#=TARGET

NETMASK#=mask

GATEWAY#=GW

网卡别名

将多个IP地址绑定到一个NIC

每个IP绑定到独立逻辑网卡,即网络别名,命名格式: ethX:Y,如:eth0:1 eth0:2eth0:3

ifconfig命令

ifconfig eth0:0 192.168.1.100/24 up

ifconfig eth0:0 down

ip 命令

ip addr add 172.16.1.1/16 dev eth0

ip addr add 172.16.1.2/16 dev eth0 label eth0:0

ip addr del 172.16.1.2/16 dev eth0 label eth0:0

ip addr flush dev eth0 label eth0:0

为每个设备别名生成独立的接口配置文件,格式为:ifcfg-ethX:xxx

[root@centos8 ~]#cat /etc/sysconfig/network-scripts/ifcfg-eth0:1

DEVICE=eth0:1

IPADDR=10.0.0.100

PREFIX=8

[root@centos8 ~]#ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

       inet 10.0.0.8 netmask 255.255.255.0 broadcast 10.0.0.255

       inet6 fe80::20c:29ff:fe09:f5b prefixlen 64 scopeid 0x20<link>

       ether 00:0c:29:09:0f:5b txqueuelen 1000 (Ethernet)

       RX packets 2320 bytes 200266 (195.5 KiB)

       RX errors 0 dropped 0 overruns 0 frame 0

       TX packets 1891 bytes 279736 (273.1 KiB)

       TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

       inet 10.0.0.100 netmask 255.0.0.0 broadcast 10.255.255.255

       ether 00:0c:29:09:0f:5b txqueuelen 1000 (Ethernet)

注意:

建议 CentOS 6 关闭 NetworkManager 服务

网卡别名必须使用静态地址

  1. 多网卡 bonding

将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一IP地址是不可以的。通过 bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址

  1. Bonding 工作模式

7种模式:0-6 Mode

Mode 0 (balance-rr): 轮询(Round-robin)策略,从头到尾顺序的在每一个slave接口上面发送数据包。本模式提供负载均衡和容错的能力

Mode 1 (active-backup): 活动-备份(主备)策略,只有一个slave被激活,当且仅当活动的

slave接口失败时才会激活其他slave.为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见

Mode 3 (broadcast):广播策略,在所有的slave接口上传送所有的报文,提供容错能力

说明:

active-backupbalance-tlb balance-alb 模式不需要交换机的任何特殊配置。其他绑定模式需要配置交换机以便整合链接。如:Cisco 交换机需要在模式 02 3 中使用 EtherChannel,但在模式4中需要 LACPEtherChannel

  1. Bonding配置

详细帮助:

/usr/share/doc/kernel-doc- version/Documentation/networking/bonding.txt

https://www.kernel.org/doc/Documentation/networking/bonding.txt

 

  1. 创建bonding设备的配置文件

/etc/sysconfig/network-scripts/ifcfg-bond0

TYPE=bond

DEVICE=bond0

BOOTPROTO=none

IPADDR=10.0.0.100

PREFIX=8

#miimon指定链路监测时间间隔。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路

BONDING_OPTS="mode=1 miimon=100"

/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=none

MASTER=bond0

SLAVE=yes

ONBOOT=yes

/etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

BOOTPROTO=none

MASTER=bond0

SLAVE=yes

ONBOOT=yes

  1. 查看bond0状态:/proc/net/bonding/bond0
  2. 删除bond0

ifconfig bond0 down 禁用网卡

rmmod bonding   卸载bonding模块(可用lsmod 查看模块)

 

CentOS 7 以上版网络配置

CentOS 6之前,网络接口使用连续号码命名:eth0eth1,当增加或删除网卡时,名称可能会发生变化,CentOS 7以上版使用基于硬件,设备拓扑和设置类型命名

(1) 网卡命名机制

systemd对网络设备的命名方式

1. 如果FirmwareBIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,如:eno1

2. 如果FirmwareBIOSPCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,如:ens1

3. 如果硬件接口的物理位置信息可用,则根据此信息命名,如:enp2s0

4. 如果用户显式启动,也可根据MAC地址进行命名,如:enx2387a1dc56

5. 上述均不可用时,则使用传统命名机制

(2) 基于BIOS支持启用biosdevname软件

内置网卡:em1,em2  

pci卡:pYpX Yslot ,X:port

(3) 网卡组成格式

en: Ethernet 有线局域网

wl: wlan 无线局域网

ww: wwan无线广域网

o<index>: 集成设备的设备索引号

s<slot>: 扩展槽的索引号

x<MAC>: 基于MAC地址的命名

p<bus>s<slot>: enp2s1

(4) 使用传统命名方式:

(1) 编辑/etc/default/grub配置文件

GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

(2) grub2生成其配置文件

grub2-mkconfig -o /etc/grub2.cfg

(3) 重启系统

 

主机名

配置文件:

/etc/hostname

默认没有此文件,通过DNS反向解析获取主机名,主机名默认为:localhost.localdomain

设置主机名

hostnamectl set-hostname centos7.magedu.com

删除文件/etc/hostname,恢复主机名localhost.localdomain

显示主机名信息

hostname

hostnamectl status

 

网络配置工具 nmcli

图形工具:nm-connection-editor

字符配置 tui工具:

nmtui

nmtui-connect

nmtui-edit

nmtui-hostname

命令行工具:nmcli

以上工具都依赖NetworkManager服务,此服务是管理和监控网络设置的守护进程

nmcli命令

参考文档:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/configuring-networking-with-nmcli_configuring-and-managing-networking

nmcli命令相关术语

设备即网络接口

连接是对网络接口的配置,一个网络接口可有多个连接配置,但同时只有一个连接配置生效

格式:

nmcli [ OPTIONS ] OBJECT { COMMAND | help }

 device - show and manage network interfaces

 nmcli device help

 connection - start, stop, and manage network connections

 nmcli connection help

修改IP地址等属性:

nmcli connection modify IFACE [+|-]setting.property value

setting.property: ipv4.addresses ipv4.gateway ipv4.dns1 ipv4.method manual | Auto

修改配置文件执行生效:

nmcli con reload

nmcli con up con-name

范例:

#查看帮助

nmcli con add help

#使用nmcli配置网络

nmcli con show

#显示所有活动连接

nmcli con show --active

#显示网络连接配置

nmcli con show  "System eth0“

#显示设备状态

nmcli dev status

#显示网络接口属性

nmcli dev show eth0

#创建新连接defaultIP自动通过dhcp获取

nmcli con add con-name default type Ethernet ifname eth0

#删除连接

nmcli con del default

#创建新连接static ,指定静态IP,不自动连接

nmcti con add con-name static   ifname eth0 autoconnect no type Ethernet

ipv4.addresses 172.25.X.10/24 ipv4.gateway   172.25.X.254

#启用static连接配置

nmcli con up static

#启用default连接配置

nmcli con up default

#修改连接设置

nmcli con mod “static” connection.autoconnect no

nmcli con mod “static” ipv4.dns 172.25.X.254

nmcli con mod “static”  +ipv4.dns  8.8.8.8

nmcli con mod “static”  -ipv4.dns  8.8.8.8

nmcli con mod “static” ipv4.addresses “172.16.X.10/24  172.16.X.254”

nmcli con mod “static”  +ipv4.addresses 10.10.10.10/16

#DNS设置存放在/etc/resolv.confPEERDNS=no 表示当IP通过dhcp自动获取时,dns仍是手动设置,不自动获取等价于下面命令

nmcli con mod “system eth0” ipv4.ignore-auto-dns yes

nmcli实现bonding

#添加bonding接口

nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup

#添加从属接口

nmcli con add type bond-slave ifname ens7 master bond0

nmcli con add type bond-slave ifname ens3 master bond0

#注:如无为从属接口提供连接名,则该名称是接口名称加类型构成

#要启动绑定,则必须首先启动从属接口

nmcli con up bond-slave-eth0

nmcli con up bond-slave-eth1

#启动绑定

nmcli con up mybond0

 

网络组 Network Teaming

网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量

网络组不同于旧版中bonding技术,提供更好的性能和扩展性

网络组由内核驱动和teamd守护进程实现

多种方式 runner

broadcast

roundrobin

activebackup

loadbalance

lacp (implements the 802.3ad Link Aggregation Control Protocol)

网络组特点

启动网络组接口不会自动启动网络组中的port接口

启动网络组接口中的port接口总会自动启动网络组接口

禁用网络组接口会自动禁用网络组中的port接口

没有port接口的网络组接口可以启动静态IP连接

启用DHCP连接时,没有port接口的网络组会等待port接口的加入

 

#创建网络组接口

nmcli con add type team con-name CNAME ifname INAME [config JSON]

CNAME 连接名

INAME 接口名

JSON 指定runner方式,格式:'{"runner": {"name": "METHOD"}}'

METHOD 可以是broadcast, roundrobin, activebackup, loadbalance, lacp

#创建port接口

nmcli con add type team-slave con-name CNAME ifname INAME master TEAM

CNAME 连接名,连接名若不指定,默认为team-slave-IFACE

INAME 网络接口名

TEAM 网络组接口名

#断开和启动

nmcli dev dis INAME

nmcli con up CNAME

INAME 设备名 CNAME 网络组接口名或port接口

网络组示例

nmcli con add type team con-name myteam0 ifname team0 config '{"runner":

{"name": "loadbalance"}}' ipv4.addresses 192.168.1.100/24 ipv4.method manual

nmcli con add con-name team0-eth1 type team-slave ifname eth1 master team0

nmcli con add con-name team0-eth2 type team-slave ifname eth2 master team0

nmcli con up myteam0

nmcli con up team0-eth1

nmcli con up team0-eth2

teamdctl team0 state

ping -I team0 192.168.0.254

nmcli dev dis eth1

teamdctl team0 state

nmcli con up team0-port1

nmcli dev dis eth2

teamdctl team0 state

nmcli con up team0-port2

teamdctl team0 state

管理网络组配置文件

/etc/sysconfig/network-scripts/ifcfg-team0

DEVICE=team0

DEVICETYPE=Team

TEAM_CONFIG="{\"runner\": {\"name\": \"broadcast\"}}"

BOOTPROTO=none

IPADDR0=172.16.0.100

PREFIX0=24

NAME=team0

ONBOOT=yes

管理网络组配置文件

/etc/sysconfig/network-scripts/ifcfg-team0-eth1

DEVICE=eth1

DEVICETYPE=TeamPort

TEAM_MASTER=team0

NAME=team0-eth1

ONBOOT=yes

删除网络组

nmcli connection down team0

teamdctl team0 state

nmcli connection show

nmcli connectioni delete team0-eth0

nmcli connectioni delete team0-eth1

nmcli connection show

 

网桥

桥接原理

桥接:把一台机器上的若干个网络接口连接起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。网桥就是这样一个设备,它有若干个网口,并且这些网口是桥接起来的。与网桥相连的主机就能通过交换机的报文转发而互相通信。

配置实现网桥

工具包:bridge-utils,目前 CentOS 8无此包

yum install bridge-utils

#查看网桥

brctl show

#查看CAM(content addressable memory内容可寻址存储器)

brctl showmacs br0

#添加和删除网桥

brctl addbr | delbr br0

#添加和删除网桥中网卡

brctl addif | delif br0 eth0

#默认br0 down,必须启用

ifconfig br0 up

#启用STP

[root@centos7 ~]#brctl show

bridge name bridge id STP enabled interfaces

br0 8000.000c297e67a3  no  eth1

                          eth2

[root@centos7 ~]#brctl stp br0 on

[root@centos7 ~]#brctl show

bridge name bridge id STP enabled interfaces

br0 8000.000c297e67a3  yes  eth1

                          eth2

注意:NetworkManager只支持以太网接口接口连接到网桥,不支持聚合接口

 

nmcli命令创建软件网桥

nmcli con add con-name mybr0 type bridge ifname br0

nmcli con modify mybr0 ipv4.addresses 192.168.0.100/24 ipv4.method manual

nmcli con add con-name br0-port0 type bridge-slave ifname eth0 master br0

查看配置文件

cat /etc/sysconfig/network-scripts/ifcfg-br0

cat /etc/sysconfig/network-scripts/ifcfg-br0-port0

范例:

#1创建网桥

nmcli con add type bridge con-name br0 ifname br0

nmcli connection modify br0 ipv4.addresses 192.168.0.100/24 ipv4.method manual

nmcli con up br0

#2加入物理网卡

nmcli con add type bridge-slave con-name br0-port0 ifname eth0 master br0

nmcli con add type bridge-slave con-name br0-port1 ifname eth1 master br0

nmcli con up br0-port0

nmcli con up br0-port1

#3查看网桥配置文件

cat /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0

STP=yes

TYPE=Bridge

BOOTPROTO=static

IPADDR=192.168.0.100

PREFIX=24

cat /etc/sysconfig/network-scripts/ifcfg-br0-port0

TYPE=Ethernet

NAME=br0-port0

DEVICE=eth0

ONBOOT=yes

BRIDGE=br0

UUID=23f41d3b-b57c-4e26-9b17-d5f02dafd12d

#4安装管理软件包:

yum install bridge-utils

brctl show

#5删除br0

nmcli con down br0

rm /etc/sysconfig/network-scripts/ifcfg-br0*

nmcli con reload

 

网络测试诊断工具

测试网络连通性

ping

显示正确的路由表

ip route

跟踪路由

traceroute

tracepath

mtr

确定名称服务器使用

nslookup

host

dig

抓包工具

tcpdump

wireshark

安全扫描工具

nmap

netcat :网络界的瑞士军刀

流量控制工具

Tc

tcpdump

网络数据包截获分析工具。支持针对网络层、协议、主机、网络或端口的过滤。并提供andornot

等逻辑语句帮助去除无用的信息。

tcpdump [-adeflnNOpqStvx][-c<数据包数目>][-dd][-ddd][-F<表达文件>][-i<网络界面>][-r<

数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-w<数据包文件>][输出数据栏位]

参数说明:

-a 尝试将网络和广播地址转换成名称。

-c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作。

-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。

-dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。

-ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。

-e 在每列倾倒资料上显示连接层级的文件头。

-f 用数字显示网际网络地址。

-F<表达文件> 指定内含表达方式的文件。

-i<网络界面> 使用指定的网络截面送出数据包。

-l 使用标准输出列的缓冲区。

-n 不把主机的网络地址转换成名字。

-N 不列出域名。

-O 不将数据包编码最佳化。

-p 不让网络界面进入混杂模式。

-q 快速输出,仅列出少数的传输协议信息。

-r<数据包文件> 从指定的文件读取数据包数据。

-s<数据包大小> 设置每个数据包的大小。

-S 用绝对而非相对数值列出TCP关联数。

-t 在每列倾倒资料上不显示时间戳记。

-tt 在每列倾倒资料上显示未经格式化的时间戳记。

-T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型。

-v 详细显示指令执行过程。

-vv 更详细显示指令执行过程。

-x 用十六进制字码列出数据包资料。

-w<数据包文件> 把数据包数据写入指定的文件。

范例:

#不指定任何参数,监听第一块网卡上经过的数据包。主机上可能有不止一块网卡,所以经常需要指定网卡。

tcpdump

#监听特定网卡

tcpdump -i en0

#监听特定主机,监听主机10.0.0.100 的通信包,注意:出、入的包都会被监听。

tcpdump host 10.0.0.100

#特定来源、目标地址的通信

#特定来源

tcpdump src host hostname

#特定目标地址

tcpdump dst host hostname

#如果不指定srcdst,那么来源或者目标是hostname的通信都会被监听

tcpdump host hostname

#特定端口

tcpdump port 3000

#监听TCP/UDP,服务器上不同服务分别用了TCPUDP作为传输层,假如只想监听TCP的数据包

tcpdump tcp

#来源主机+端口+TCP,监听来自主机10.0.0.100在端口22上的TCP数据包

tcpdump tcp port 22 and src host 10.0.0.100

#监听特定主机之间的通信

tcpdump ip host 10.0.0.101 and 10.0.0.102

#10.0.0.101和除了10.0.0.1之外的主机之间的通信

tcpdump ip host 10.0.0.101 and ! 10.0.0.1

#详细示例

tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24

-w ./target.cap

(1)tcp: ip icmp arp rarp tcpudpicmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型

(2)-i eth1 : 只抓经过接口eth1的包

(3)-t : 不显示时间戳

(4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包

(5)-c 100 : 只抓取100个数据包

(6)dst port ! 22 : 不抓取目标端口是22的数据包

(7)src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24

(8)-w ./target.cap : 保存成cap文件,方便用wireshark分析

#限制抓包的数量,如下,抓到1000个包后,自动退出

tcpdump -c 1000

#保存到本地,tcpdump默认会将输出写到缓冲区,只有缓冲区内容达到一定的大小,或者tcpdump退出时,才会将输出写到本地磁盘,可以加上-U强制立即写到本地磁盘(一般不建议,性能相对较差)

tcpdump -n -vvv -c 1000 -w /tmp/tcpdump_save.cap

 

nmap

扫描远程主机工具,功能远超越用世人皆知的 Ping 工具发送简单的 ICMP 回声请求报文

官方帮助:https://nmap.org/book/man.html

格式:

nmap [Scan Type(s)] [Options] {target specification}

命令选项

-sT   TCP connect() 扫描,这是最基本的 TCP 扫描方式。这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息    

-sS   TCP 同步扫描 (TCP SYN),因为不必全部打开一个 TCP 连接,所以这项技术通常称为半开扫描(half-open)。这项技术最大的好处是,很少有系统能够把这记入系统日志  

-sF,-sX,-sN   秘密 FIN 数据包扫描、圣诞树 (Xmas Tree)、空 (Null) 扫描模式。这些扫描方式的理论依据是:关闭的端口需要对你的探测包回应 RST 包,而打开的端口必需忽略有问题的包    

-sP   ping 扫描,用 ping 方式检查网络上哪些主机正在运行。当主机阻塞 ICMP echo 请求包是ping 扫描是无效的。nmap 在任何情况下都会进行 ping 扫描,只有目标主机处于运行状态,才会进行后续的扫描

-sU   UDP 的数据包进行扫描,想知道在某台主机上提供哪些 UDP 服务,可以使用此选项    

-sA   ACK 扫描,这项高级的扫描方法通常可以用来穿过防火墙。    

-sW   滑动窗口扫描,非常类似于 ACK 的扫描    

-sR   RPC 扫描,和其它不同的端口扫描方法结合使用。

-b   FTP 反弹攻击 (bounce attack),连接到防火墙后面的一台 FTP 服务器做代理,接着进行端口扫描。

-P0   在扫描之前,不 ping 主机。    

-PT   扫描之前,使用 TCP ping 确定哪些主机正在运行    

-PS   对于 root 用户,这个选项让 nmap 使用 SYN 包而不是 ACK 包来对目标主机进行扫描。    

-PI   设置这个选项,让 nmap 使用真正的 ping(ICMP echo 请求)来扫描目标主机是否正在运行。

-PB   这是默认的 ping 扫描选项。它使用 ACK(-PT) ICMP(-PI) 两种扫描类型并行扫描。如果防火墙能够过滤其中一种包,使用这种方法,你就能够穿过防火墙。    

-O   这个选项激活对 TCP/IP 指纹特征 (fingerprinting) 的扫描,获得远程主机的标志,也就是操作系统类型

-I   打开 nmap 的反向标志扫描功能。    

-f   使用碎片 IP 数据包发送 SYNFINXMASNULL。包增加包过滤、入侵检测系统的难度,使其无法知道你的企图

-v   冗余模式。强烈推荐使用这个选项,它会给出扫描过程中的详细信息。    

-S <IP>   在一些情况下,nmap 可能无法确定你的源地址 。在这种情况使用这个选项给出指定 IP 地 址  

-g port   设置扫描的源端口

-oN   把扫描结果重定向到一个可读的文件 logfilename  

-oS   扫描结果输出到标准输出。    

--host_timeout   设置扫描一台主机的时间,以毫秒为单位。默认的情况下,没有超时限制    

--max_rtt_timeout   设置对每次探测的等待时间,以毫秒为单位。如果超过这个时间限制就重传或者超时。默认值是大约 9000 毫秒    

--min_rtt_timeout   设置 nmap 对每次探测至少等待你指定的时间,以毫秒为单位    

-M count   设置置进行 TCP connect() 扫描时,最多使用多少个套接字进行并行的扫描

范例:

#Tcp ack 扫描,并发2000,速度快

nmap -n -PA --min-parallelism 2000 172.16.0.0/16  

#仅列出指定网段上的每台主机,不发送任何报文到目标主机.

[root@centos8 ~]#nmap -sL 10.0.0.0/24

Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-23 12:28 CST

Nmap scan report for 10.0.0.0

Nmap scan report for 10.0.0.1

......

Nmap scan report for 10.0.0.254

Nmap scan report for 10.0.0.255

Nmap done: 256 IP addresses (0 hosts up) scanned in 1.04 seconds

#可以指定一个IP地址范围

[root@centos8 ~]#nmap -sP 10.0.0.1-10

Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-23 12:30 CST

Nmap scan report for 10.0.0.1

Host is up (0.000081s latency).

MAC Address: 00:50:56:C0:00:08 (VMware)

Nmap scan report for 10.0.0.2

Host is up (0.00034s latency).

MAC Address: 00:50:56:F0:1E:25 (VMware)

Nmap scan report for 10.0.0.6

Host is up (0.00031s latency).

MAC Address: 00:0C:29:4D:EF:2C (VMware)

Nmap scan report for 10.0.0.7

Host is up (0.00036s latency).

MAC Address: 00:0C:29:29:F9:26 (VMware)

Nmap scan report for 10.0.0.8

Host is up.

Nmap done: 10 IP addresses (5 hosts up) scanned in 2.89 seconds

#批量扫描一个网段的主机存活数

nmap -sP -v 192.168.1.0/24

nmap –v –sn ip/24

#有些主机关闭了ping检测,所以可以使用-P0跳过ping的探测,可以加快扫描速度.

nmap -P0 192.168.1.100

#扫描主机

nmap –v –A IP  

#一次性扫描多台目标主机

[root@centos8 ~]#nmap 10.0.0.6 10.0.0.7

Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-23 12:39 CST

Nmap scan report for 10.0.0.6

Host is up (0.00055s latency).

Not shown: 998 closed ports

PORT   STATE SERVICE

22/tcp open  ssh

111/tcp open rpcbind

MAC Address: 00:0C:29:4D:EF:2C (VMware)

Nmap scan report for 10.0.0.7

Host is up (0.00050s latency).

Not shown: 999 closed ports

PORT   STATE SERVICE

22/tcp open  ssh

MAC Address: 00:0C:29:29:F9:26 (VMware)

Nmap done: 2 IP addresses (2 hosts up) scanned in 101.01 seconds

#从一个文件中导入IP地址,并进行扫描

[root@centos8 ~]#cat hosts.txt

10.0.0.7

10.0.0.6

58.87.87.99

[root@centos8 ~]#nmap -iL hosts.txt

Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-23 12:43 CST

Nmap scan report for 10.0.0.7

Host is up (0.0024s latency).

Not shown: 999 closed ports

PORT   STATE SERVICE

22/tcp open  ssh

MAC Address: 00:0C:29:29:F9:26 (VMware)

Nmap scan report for 10.0.0.6

Host is up (0.0032s latency).

Not shown: 998 closed ports

PORT   STATE SERVICE

22/tcp open  ssh

111/tcp open rpcbind

MAC Address: 00:0C:29:4D:EF:2C (VMware)

Nmap scan report for 58.87.87.99

Host is up (0.016s latency).

Not shown: 998 filtered ports

PORT     STATE SERVICE

80/tcp   open http

3306/tcp open mysql

Nmap done: 3 IP addresses (3 hosts up) scanned in 120.33 seconds

#探测目标主机开放的端口,可指定一个以逗号分隔的端口列表(-PS22,443,80)

[root@centos8 ~]#nmap -PS22,80,443 10.0.0.1

Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-23 12:31 CST

Nmap scan report for 10.0.0.1

Host is up (0.00042s latency).

Not shown: 996 filtered ports

PORT     STATE SERVICE

135/tcp open msrpc

139/tcp open netbios-ssn

445/tcp open microsoft-ds

8082/tcp open blackice-alerts

MAC Address: 00:50:56:C0:00:08 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 12.65 seconds

#使用SYN半开放扫描

[root@centos8 ~]#nmap -sS 10.0.0.1

Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-23 12:33 CST

Nmap scan report for 10.0.0.1

Host is up (-0.052s latency).

Not shown: 996 filtered ports

PORT     STATE SERVICE

135/tcp open msrpc

139/tcp open netbios-ssn

445/tcp open microsoft-ds

8082/tcp open blackice-alerts

MAC Address: 00:50:56:C0:00:08 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 10.07 seconds

#扫描开放了TCP端口的设备

[root@centos8 ~]#nmap -sT 10.0.0.1

Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-23 12:34 CST

Nmap scan report for 10.0.0.1

Host is up (0.00040s latency).

Not shown: 996 filtered ports

PORT     STATE SERVICE

135/tcp open msrpc

139/tcp open netbios-ssn

445/tcp open microsoft-ds

8082/tcp open blackice-alerts

MAC Address: 00:50:56:C0:00:08 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 4.52 seconds

#扫描开放了UDP端口的设备

[root@centos8 ~]#nmap -sU 10.0.0.1

Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-23 12:34 CST

Nmap scan report for 10.0.0.1

Host is up (0.00046s latency).

Not shown: 999 open|filtered ports

PORT   STATE SERVICE

137/udp open netbios-ns

MAC Address: 00:50:56:C0:00:08 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 18.52 seconds

#只扫描UDP端口

nmap –e eth1 -sU -O 10.0.0.1  

#扫描TCPUDP端口

nmap -sTU -O 10.0.0.1  

#用于扫描目标主机服务版本号

[root@centos8 ~]#nmap -sV 10.0.0.7

Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-23 12:37 CST

Nmap scan report for 10.0.0.7

Host is up (0.0011s latency).

Not shown: 999 closed ports

PORT   STATE SERVICE VERSION

22/tcp open  ssh     OpenSSH 7.4 (protocol 2.0)

MAC Address: 00:0C:29:29:F9:26 (VMware)

Service detection performed. Please report any incorrect results at

https://nmap.org/submit/ .

Nmap done: 1 IP address (1 host up) scanned in 1.97 seconds

#查看主机当前开放的端口

nmap localhost    

#查看主机端口(1024-65535)中开放的端口

nmap -p 1024-65535 localhost  

#探测目标主机开放的端口

nmap -PS 10.0.0.1  

#探测所列出的目标主机端口

nmap -PS22,80,3306 10.0.0.1  

#探测目标主机操作系统类型

nmap -O 10.0.0.1

#探测目标主机操作系统类型

nmap -A 10.0.0.1

 

posted @ 2020-04-26 19:02  llliuhuiii  阅读(936)  评论(0编辑  收藏  举报