linux网络配置与维护

一、基础知识

计算机网络:通过各种不同的通信设备和线材介质将处于不同地理位置且功能独立的多个计算机系统连接起来,然后通过成熟完善的网络软件体系如网络协议(TCP/IP)或网络操作系统实现网络中资源共享。

规模上网络划分:局域网、城域网和广域网(Internet)。
使用功能上网络划分:(1)对等网:没有明显的客户机和服务器的区分,相互共享/访问资源,相互验证安全;缺点是不易于统一的管理资源和验证。(2)服务器-客户端(C-S模式):服务器为整个网络提供需求服务,这种方式易于管理资源和验证,但开销比较高,服务器配置比较高。服务器因功能不同而叫法不同,如文件服务器,邮件服务器,病毒防御服务器等。

网络拓扑结构:总线型、星行和环形结构(通过中间的多站访问单元,构成逻辑上是令牌环路,而不是直接将主机首尾链接形成环形,这样没有竞争机制,网络稳定性好)。

MAC地址(Media AccessControl):计算机网络中的硬件地址,用来定义网上设备的位。属于OSI 模型的数据链路层,将地址被烧录到网卡的ROM中,因此,这个地址是不能变的,在出厂的时候由厂商决定了(前24位是机构唯一性标识符(OUI),由专业机构分配,后24位由厂商指定),因此一个网卡有一个全球唯一的MAC地址。因为定的标准不同所以MAC的第一位或最后一位称为“I/G”位,I/G全称是“Individual/Group”,如果这个MAC是单播的,则该位置0,如果这个MAC是广播或者组播的,则该位置1。

IP地址
IP地址:网络通讯领域里,IP地址是为了确定一个具有网络设备或网络计算机所处的具体位置。在Internet上,每一个节点的都依靠唯一的IP地址互相区分和联系,而且这些节点在世界范围内是唯一的。IP地址由国际组织NIC(network information center)负责统一分配。IP地址包括两部分:网络ID和主机ID,用子网掩码区分。

网络硬件设备工作原理
中继器、集线器、网桥、二层交换机、路由器和三层交换机

二、TCP/IP网络基础

计算机网络体系结构:指通过网络传输数据时,从数据通信源点到目标点所经历的一种标准框架,该框架定义了网络数据的应用、表达、回话、传输协议、寻址及网络连接介质的电气属性等。

1、OSI七层模型

物理层:传输介质,组网
数据链路层:帧,MAC地址寻址,数据成帧,数据监测,重发 ARP
网络层:将网络地址转化为物理地址,网络地址寻址,路由转发 IP协议
传输层:提供端对端的数据交换,连接 端口
会话层:提供点对点的连接
表示层:数据格式化
应用层:应用程序,服务
在这里插入图片描述2、TCP/IP的五层模型。四层
物理层:
    物理介质,组网。光钎,双绞线。
数据链路层:
    MAC:48位二进制数,12十六进制表示,确定设备位置
    数据成帧,封装 以太网包头
网络层
    IP协议: 网络寻址
            网络地址,主机地址
            IP地址分类: ABCDE
                    子网划分
            子网掩码
                    与运算
             路由
                    静态路由:手工路由表
                    动态路由:路由协议学习 OSPF RIP
                     默认路由:缺省路由 0.0.0.0
              路由器。网关
                 ARP 地址解析 ip------->mac

传输层
        端口:数据包区分,IP+端口
        UDP:简单,容易实现,不可靠传输
        TCP:可靠传输
        TCP:报文格式:20字节

应用层
        数据格式格式化

        以太网包头+IP包头+TCP/UDP包头+数据包
在这里插入图片描述

服务端响应
在这里插入图片描述

         VLAN:VLAN是一组与位置无关的逻辑端口。VLAN就相当于一个独立的三层网络。
         TRUNK:Trunk是在网络设备之间承载多于一种VLAN的端到端的连接,将VLAN延伸至整个网络。

访问一个网址的主要过程:
1、主机向DNS服务器发起域名解析请求,以得到相对应的IP地址
2、应用层应用HTTP协议发送数据
3、数据到达传输层封装成数据段,主机使用1024以后的随机源端口号,目标端口号为80
4、数据段到达网络层封装成数据包,加入主机源IP地址和目标IP地址
5、数据包到达网络接口层首先封装成数据帧,加入源MAC地址和目标MAC地址(注:此目标MAC地址为本地网关的MAC地址,源和目的MAC地址在数据转发的过程中,会由路由器不断的改变)。封装后将数据转换为物理层的数据流,通过互联网发送至目标服务器。

三、三次握手和四次挥手

三次握手

所谓三次握手即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包以确认连接的建立。在socket编程中,这一过程又客户端执行connect来触发,整个流程如下图所示:
在这里插入图片描述
1、建立连接,客户端发送 syn包(SYN=1),SYN_SENT,等待服务器确认。同步序号seq=x
2、服务器收到syn包,确认syn包(ACK=1)序号 ack=x+1,发送 SYN=1,seq=y,SYN_REVD状态
3、客户端收到服务器的SYN+ACK包,发送ACK(ack=y+1),seq=x+1,服务器端和客户端基础连接状态

SYN攻击
          在三次握手过程中,服务器发送SYN-ACK之后,收到客户端的ACK之前的TCP连接称之为半连接(half-open connect)。此时服务器处于Syn_RECV状态。当收到ACK后,服务器转入ESTABLISHED状态。Syn攻击就是攻击客户端在短时间内伪造大量不存在的IP地址,向服务器不断的发送syn包,服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直至超时,这些伪造的SYN包将长时间占用连接队伍,正常的SYN请求被丢弃,目标系统运行缓慢,严重引起网络堵塞甚至系统瘫痪。
          syn攻击是一个典型的DDOS攻击。检测SYN攻击非常的方便,当你在服务器上看到大量的半连接状态时,特别是源IP地址随机的,基本上可以断定这是一次SYN攻击。在linux下可以如下命令检测是否被Syn攻击netstat -n -p |grep SYN_RECV,一般较新的TCP/IP协议栈对这一过程进行修正来防范Syn攻击,修改tcp协议实现。主要方法有SynAttackProtect保护机制、SYN cookies技术、增加最大半连接和缩短超时时间等,但是不能完全防范syn攻击。

四次挥手

TCP的连接的拆除需要发送4个包,因此称为四次挥手(four-way handshack)。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手动作。
在这里插入图片描述

1、客户端请求释放连接,停止发送数据。发送FIN=1,seq=u。进入FIN-WAIT-1,
2、服务器收到释放连接请求。发出确认报文,ACK=1,ack=u+1,seq=v,进入CLOSE-WAIT
3、客户端收到服务端的确认请求报文,进入FIN-WAIT-2.
4、服务器端发送完数据。发送释放连接请求,FIN=1 ACK=1 seq=w,ack=u+1,服务器进入LAST-ACK
5、客户端收到服务器端的释放连接请求,发出确认,ACK=1 seq=u+1,ack=w+1,进入TIME-WAIT(2MSL最长报文等待时间),进入CLOSE
6、服务器端收到客户端的ACK=1之后,直接进入CLOSE

四、网络相关命令

1、netstat:显示本机的网络连接,运行端口,路由表等信息
   -a:列出系统中所有连接
   -t:列出TCP连接
   -u:列出UDP连接
   -l:列出所有正在监听的服务
   -n:用端口显示服务,而不是服务名
   -p:显示服务的进程ID PID
   -s:按协议统计
   -c:每隔固定时间执行命令
   -r:路由信息

在这里插入图片描述#各字段释义
Proto:数据包的协议,分为TCP和UDP
Recv-Q:表示收到的数据已经在本地接收缓存,但是还没有被进程取走的数据包数量
Send-Q:对方没有收到的数据包,或者没有ACK回复的,还在本地缓冲区的数据包数量
Local Address:本地IP:端口,通过端口可以知道本级开启了哪些服务
Foreign Address:远程主机:端口也就是远程那个IP使用那个端口连接到主机
State:连接状态,主要是已经建立连接(ESTABLISED)和监听两种状态(LISTEN)
PID/Program name:主要是进程ID和进程命令

在这里插入图片描述#字段释义:
Proto:协议,一般为unix
RefCnt:连接到此Socket的进程数量
Flags:连接标识
Type:Socket访问类型
State:连接状态,已经建立连接(ESTABLISED)和监听两种状态(LISTEN)
I-Node:程序文件的Inode号
Path:Socket程序的路径,或者相关数据的输出路径

实例

列出所有的端口,包括监听的和未监听的
在这里插入图片描述列出所有的tcp协议的端口
在这里插入图片描述寻找特定程序运行的端口
在这里插入图片描述查看本机路由信息
在这里插入图片描述

2、ss:显示当前网络接口状态
   -t:tcp协议连接
   -u:UDP连接
   -l:监听状态的连接
   -a:所有连接
   -p:显示PID
   -m:显示连接使用的内存信息

实例

查看所有TCP协议的连接
在这里插入图片描述查看所有协议监听以及列出进程号 CentOs6
在这里插入图片描述查看所有基于ssh建立连接信息 CentOs6
在这里插入图片描述
3、traceroute:获取当前主机到目标主机经过的路由

在这里插入图片描述在这里插入图片描述
4、mtr
   -r:以报告的形式显示
   -a:以那个IP地址发送数据包
   -s:指定ping包大小

在这里插入图片描述

  • 第一列:显示的是IP地址和本机域名,这点和tracert很像
  • 第二列:显示的点击每个对应IP的丢包率
  • 第三列:snt:10设置每秒发送数据包的数量,默认值是10,可以通过参数 -c来指定。其中-c的说明是:-report-cycles COUNT
  • 第四列:显示的是最近一次的返回时延
  • 第五列:是平均值,这个应该是发送ping包的平均时延
  • 第六列:是最好的或者说时延最短的
  • 第七列:是最差的或者说时延最长的
  • 第八列:是标准偏差

5、wget,scp
   -nd --no-directories,忽略目录层级
   -r :下载目录结构
   -c :断点续传
   -O filename :重命名为filename
   -q :不输出任何信息
   -t num :重试次数num 默认是20次 -t 0 不限制
   --limit-rate=num
   -b :后台下载

6、iproute家族
   iproute是linux下一个网络管理工具包合集,用于取代先前的如ifconfig、route、ifup、ifdown、netstat等历史网络管理工具。该工具包功能强大,它通过网络链路套接字接口与内核进行联系。iproute的用户界面比net-tools的用户界面要更直观。对网络资源比如链路、IP地址、路由和隧道等用“对象”抽象进行了恰当的定义,因此可以使用一致的语法来管理不同的对象。

  • -V:显示指令版本信息
  • -s:输出更详细的信息
  • -f:强制使用指定的协议族
  • -4:指定使用的网络层协议是IPv4协议
  • -6:指定使用的网络层协议是IPv4协议
  • -0:输出信息每条记录输出一行,即使内容较多也不换行显示
  • -r:显示主机时,不使用IP地址,而使用主机的域名。

五、linux网络配置文件

网卡信息文件
网卡名称:biosdevname和net.ifnames两种命名规范
net.ifnames的命名规范为:设备类型+设备位置+数字
设备类型:
en表示Ethernet
wl表示WLAN
ww表示无线广域网WWAN
在这里插入图片描述
在这里插入图片描述主机名文件
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值