linux系统总结:
1.3.每层对应的协议:
应用层:http(80tcp)ftp(20 21tcp)20端口用来传输,只有在传输数据时才显示。
tftp(69udp)dns(53tcp udp)ssh(22)telnet(23)
传输层:tcp,udp
网络层:icmp,arp
1.4.常见的udp协议端口号:
NTP–网络时间协议 123
DHCP–动态主机配置协议 67
SNMP–简单网络管理协议 161
TFTP–简单文件传输协议 69
RPC–远程调用协议 111
1.5传输层 tcp udp
控制位 | 含义 |
---|---|
URG | 紧急位 |
ACK | 确认位 |
PSH | 急切位 |
RST | 重置位 |
SYN | 同步位 |
FIN | 断开 |
(1)三次握手:
(2)四次挥手:
ARP(Address Resolution Protocol)协议是指通过IP地址解析当前IP地址所对应的MAC地址的协议。在以太网中,每个网卡都有固定的MAC地址,而IP地址则是动态的,通过ARP协议可以将IP地址与MAC地址建立起对应关系。
ARP协议的工作原理:在ARP协议中,当需要给远程主机发送数据时,会首先查询ARP缓存,如果有对应关系,则直接发送数据,否则需要发送ARP请求以获取目标主机的MAC地址,并将获取到的MAC地址保存到ARP缓存中,供以后使用。若发送方需要知道目标主机的MAC地址(即ARP缓存中没有对应的IP-MAC对),则发送ARP请求广播到网络中,包括对应目标IP地址的ARP请求。当目标主机收到该ARP请求时,如果该ARP请求中的IP地址与目标主机的IP地址相符,则将该ARP请求中的MAC地址返回给请求方,并建立IP地址与MAC地址的对应关系。此时,主机的ARP缓存中就可以存放IP-MAC对了。
ICMP(Internet Control Message Protocol)协议是一个IPv4协议,用于在IP网络中传递错误报文和操作性消息。它是一种辅助协议,用于与源或目的地主机通信,支持IP协议元数据的传输。通过ICMP协议,可以在网络层上处理连接的错误和状态信息,并及时通知用户。
作用:测试网络和计算机之间的连接性。
ICMP协议在TCP/IP网络中扮演着重要的角色,支持网络的连通性和对网络问题的快速响应。通过使用ICMP协议,可以及时了解网络的状况和管理网络。
UDP和TCP协议的主要区别是两者在如何实现信息的可靠传递方面不同:
TCP 是面向连接的传输控制协议; 而UDP 提供了无连接的数据报服务。TCP 具有高可靠性,确保传输数据的正确性,不出现丢失或乱序:UDP在传输数据前不建立连接,不对数据报进行检查与修改,无须等待对方的应答,所以会出现分组丢失、重复、乱序,应用程序需要负责传输可靠性方面的所有工作。UDP 具有较好的实时性,工作效率较 TCP 协议高。UDP 段结构比 TCP的段结构简单,因此网络开销也小。
TCP协议可以保证接收端毫无差错地接收到发送端发出的字节流,为应用程序提供可靠的通信服务。对可靠性要求高的通信系统往往使用 TCP 传输数据。
TCP 协议传输更加稳定可靠,UDP 协议传输效率更高。这两个协议各有特点,在实际应用中根据实际应用的需要,选择不同的传输层协议中。
(1)区别系统内的进程
(2)服务端,端口号,固定
(3)客户端随机
(4)前1000不能使用
(6)65536个端口号,0-65535
(1)常用命令:du、df、top、free。kill(面试,-3进程运行完终止,-9立刻终止)
系统卡顿:top看系统使用情况
nohup:忽略挂起信号运行指定的命令。
mpstat:是一个Linux系统性能监测工具,用于查询Linux系统的平均负载、CPU处理器使用情况、与设备输入输出有关的性能信息等。使用mpstat命令可以检测系统的性能瓶颈并优化系统性能。
选项 | 作用 |
---|---|
-P | 对于具有多个处理器的系统,指定处理器的编号(0-最大编号) |
-u | 输出CPU使用率和内存统计数据 |
-P ALL | 显示所有处理器的信息 |
-I | 指定要监控的项目,如老化(CPU缓存失效)和CPU中断等 |
-t | 在显示输出结果中添加时间戳 |
-V | 输出mpstat的版本信息 |
-I ALL | 显示所有可能的选项 |
top:是一个Linux系统的基本监视工具,它可以实时显示系统的进程状态、CPU使用情况、内存使用情况、交换空间使用情况等,通过top命令可以查看进程占用资源情况,进行性能监测、排查异常情况。
选项 | 作用 |
---|---|
-d | 指定top命令的更新频率,默认是3秒 |
-b | 以批处理模式运行top命令,适用于在脚本中使用top命令 |
-u | 仅显示指定用户的进程信息 |
-p | 仅显示指定PID的进程信息 |
free:用于查看系统内存占用情况,包括物理内存和交换分区的使用情况,并以易读的方式进行展示。使用free命令可以及时了解系统的内存使用情况,进行性能监测和性能优化。
选项 | 作用 |
---|---|
-m | 以MB为单位显示内存使用情况 |
-b | 以字节为单位显示内存使用情况 |
-g | 以GB为单位显示内存使用情况 |
-h | 以易读的方式显示内存使用情况 |
-s | 指定刷新内存使用情况 |
nload:是一种类似于top和htop的命令行监测工具,它可以用来监测网络流量的情况。使用nload可以及时了解数据流量的情况,进行网络流量优化。
iostat:可以用来监测系统的磁盘输入输出(IO)信息,包括磁盘的传输速率、I/O操作次数等信息。通过iostat命令可以监测系统的磁盘性能,及时排查磁盘性能问题。
cpuinfo:可以用来查看CPU的型号、核心数量、频率等信息。使用cpuinfo命令可以及时了解系统的CPU情况,进行性能优化和资源管理。
iotop:是一个Linux I/O监视工具,可以显示I/O使用情况,并按进程分类显示,从而查看系统的I/O压力。使用iotop命令可以及时了解系统的I/O性能,优化系统的I/O资源。
taskset:可以设置指定进程运行在特定的CPU上,从而进行CPU资源的分配和管理。使用taskset命令可以进行进程性能优化和CPU资源管理。
vmstat:用于实时监测系统的虚拟内存使用情况,包括内存和磁盘的使用情况等,并输出相应的指标数据。通过vmstat命令可以及时了解系统的内存和磁盘使用情况,进行系统优化。
uptime:可以显示系统的负载信息,包括系统运行时间、平均负载等。通过uptime命令可以及时了解系统的状态,进行性能优化和系统管理。
nice:可以设置进程的优先级,从而进行资源调度和管理。使用nice命令可以优化系统资源的使用情况,调整进程的执行顺序。
ulimit:可以限制进程资源的使用,包括限制CPU使用时间、堆栈大小、最大文件大小等。使用ulimit命令可以对进程的资源使用进行管理和限制,防止系统资源被过度占用造成性能问题。
time:可以计算出指定命令所花费的时间,在调优和性能测试时非常有用。可以通过观察运行该命令所用的时间,来分析系统性能和程序性能。
主动模式:服务器主动对客户端发起连接
被动模式:服务器被动地等待客户端的数据连接,客户端主动连接服务器。
21:连接
20:传输
基础命令:
2.1典型的C/S模式:
在网络中架设一台专用的 DHCP 服务器,负责集中分配 各种网络地址参数(主要包括 IP地址、子网掩码、广播地址、默认网关地址、DNS 服务器地址): 其他主机作为 DHCP客户机,将网卡配置为自动获取地址,即可与 DHCP 服务器进行通信,完成自动配置过程。
DHCP 是 C/S 模式,DHCP 服务端和客户端需要保持通信,DHCP 基于 UDP 协议,双方都有可能会主动向对方发起通信,因此双方都需要监听端口。Server 端: DHCP Server (运行 dhcp 服务)UDP 服务:监听端口 67 (bootps)client 端: DHCP client (运行 dhcp 程序)UDP 服务:监听端口 68(bootpc)
2.2DHCP的分配方式:
自动分配是当 DHCP 客户机第一次成功地 从 DHCP 服务器获取到一个 IP 地址后,就永久地使用这个 IP 地址。手动分配是由 DHCP 服务器管理员专门指定 IP 地址。动态分配是当 DHCP 客户机第一次从 DHCP 服务器获取到 IP地址后,并非永久地使用该地址,而是在每次使用完后,DHCP 客户机就会释放这个 IP 地址,供其他客户机使用
2.3DHCP工作原理:
广播进行,先到先得 一个网络中只能有一个DHCP四次回话
(1)客户机请求 IP 地址 当一个 DHCP 客户机启动时,客户机还没有 IP 地址,所以客户机要通过 DHCP获取一个合法的地址。此时DHCP客户机以广播方式发送 DHCP Discover 发现信息来寻找 DHCP 服务器,
(2) 服务器响应 当 DHCP 服务器接收到来自客户机请求 IP 地址的信息时,它就在自己的 IP 地址池中查找是否有合法的 IP 地址提供给客户机。如果有,DHCP 服务器就将此 IP 地址做上标记, 加入到 DHCP Offer的消息中,然后 DHCP 服务器就广播一则 DHCP offer 消息
(3)客户机选择 IP 地址 DHCP客户机从接收到的第一个DHCP offer消息中提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个 DHCP 客户机。之后 DHCP 客户 机会向服务器发送 DHCPRequest 消息。
(4)服务器确定租约 DHCP 服务器接收到 DHCP Request 消息后,以 DHCP ACK消息的形式向客户机广播成功确认,该消息包含有 IP 地址的有效租约和其他可配置的信息。当客户机收到 DHCP ACK消息时,它就配置了 IP 地址,完成 TCP/IP 的初始化。
(1)DNS是什么?
DNS域名系统 (Domain Name System缩写DNS, DomainName被译为域名) :是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
正向解析: 根据域名查找对应的IP地址
反向解析:根据IP地址查找对应的域名(域名的反向解析不是很常用,只在一些特殊场合才会用到,比如可用于反垃圾邮件的验证。)
TCP是用来做区域传送,多用于主从同步在一个区中主DNS服务器从自己本机的数据文件中读取该区的DNS数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息
(2)UDP是用来做DNS解析的
域名:通常由一个完全合格域名 (FODN) 标识。EODN
正向解析查询过程:o先查本机的缓存记录o查询hosts文件o查询dns域名服务器,交给dns域名服务器处理以上过程成为递归查询: 我要一个答案你直接会给我结果@这个dns服务器可能是本地域名服务器,也有个缓存,如果有直接返回结果,如果没有则进行下一步o求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器@求助顶级域服务器,顶级域服务器返回可能会知道结果的二级域服务器然他去找二级域服务器0求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的ip地址返回给本地域名服务器o本地域名服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端
两种查询方式:
(1) 递归查询递归查询是一种 DNS 服务器的查询模式,在该模式下 DNS服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果 DNS 服务器本地没有存储查询 DNS信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
总结,就是客户机发送请求后自己只用等待结果即可,中间具体过程交给服务器实现。
(2)迭代查询:DNS 服务器另外一种查询方式为迭代查询,当客户机发送查询请求时,DNS服务器并不直接回复查询结果,而是告诉客户机另一台 DNS 服务器地址,客户机再向这台 DNS服务器提交请求,依次循环直到返回查询的结果为止
总结,客户机的请求需要自己挨个去查询才能得到结果,服务器没有结果时候只会给你提供其它服务器的地址,而不会帮你去请求查询,这与递归截然相反
递归查询:主机向本地域名服务器的查询一般都是采用递归查询。
所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查旬的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文了即替主机维续查询),而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。
迭代查询:本地域名服务器向根域名服务器的查询的迭代查询。
迭代查询的特点: 当根域名服务器收到本地域名服务器发出的迭代查有请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器。“你下一步应当向哪一个域名服务器进行查询”。然后上本地服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地或名服务器再向顶级域名服务器查询。顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的IP地址要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。最后,知道了所要解析的IP地址或报错,然后把这个结果返回给发起查询的主机。
递归: 客户端只发一次请求,要求对方给出最终结果。
法代:客户端发出一次请求,对方如果没有授权回答,它就会返回一个能解答这个查询的其它名称服务器列表,客户端会再向返回的列表中发出请求,直到找到最终负责所查域名的名称服务器,从它得到最终结果。
授权回答:向dns服务器查询一个域名,刚好这个域名是本服务器负责,返回的结果就是授权回答。
从递归和迭代查询可以看出:客户端-本地dns服务端: 这部分属于递归查询。本地dns服务端—外网: 这部分属于迭代查询。
递归查询时,返回的结果只有两种:查询成功或查询失败迭代查询,又称作重指引,返回的是最佳的查询点或者主机地址。
用户进程通过客户端来访问磁盘的文件
Portmap:主要功能进行端口映射
Rpc.nfsd:它是基本的NFS守护进程,主要功能是管理客户端是否能登录服务器。
Rpc.mount:主要功能是管理NFS文件系统,当客户端顺利通过NFSD,登录NFS服务器后,在使用NFS提供文件前,必须通过使用权限的验证。会读取NFS配置文件/etc/exports来对比客户端的权限。
DHCP,tftp,FTP。。
(1)需求:每天ping3次,服务器a,看是否能ping通?
要求ping一个指定的IP地址,IP地址随机,如果ping通告诉主机在线,如果ping不通,告诉主机不在线。
[root@test1 ~]# vim if.sh
ping -c 3 -W 2 $1
if [ $? -eq 0 ]
then
echo "$1 online"
else
echo "$1 offline"
fi
[root@test1 ~]# sh if.sh 192.168.174.12
PING 192.168.174.12 (192.168.174.12) 56(84) bytes of data.
64 bytes from 192.168.174.12: icmp_seq=1 ttl=64 time=0.040 ms
64 bytes from 192.168.174.12: icmp_seq=2 ttl=64 time=0.059 ms
64 bytes from 192.168.174.12: icmp_seq=3 ttl=64 time=0.034 ms
--- 192.168.174.12 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.034/0.044/0.059/0.012 ms
192.168.174.12 online
或者:
[root@test1 ~]# sh if.sh 192.168.174.13
PING 192.168.174.13 (192.168.174.13) 56(84) bytes of data.
From 192.168.174.12 icmp_seq=1 Destination Host Unreachable
From 192.168.174.12 icmp_seq=2 Destination Host Unreachable
From 192.168.174.12 icmp_seq=3 Destination Host Unreachable
--- 192.168.174.13 ping statistics ---
3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2000ms
pipe 3
192.168.174.13 offline
useradd,passwd,for
a=date
b=/etc/sysconfig/network-scripts/ifcfg-ens33
选择循环(for/while),分支(if fi)
包过滤防火墙。
(1)四表:
表名 | 作用 |
---|---|
raw表 | 确定是否对该数据包进行状态跟踪 |
mangle表 | 为数据包设置标记 |
nat表 | 修改数据包中的源,目标IP或端口 |
filter表 | 确定是否放行该数据包(过滤) |
(2)五链:
链名 | 作用 |
---|---|
INPUT | 处理入站数据包 |
OUTPUT | 处理出站数据包 |
FORWARD | 转发数据包 |
POSTROUTING | 在路由选择后处理 |
PREROUTING | 在路由选择前处理 |
开放端口:iptables -I INPUT -p tcp --dport 端口号 -j ACCEPT
拒绝端口:iptables -D INPUT 2
防火墙(Firewalld)技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。
硬件防火墙:通过硬件和软件的组合,基于硬件的防火墙保护整个内部网络安全。
软件防火墙:通过纯软件,单独使用软件系统来完成防火墙功能,保护安装它的系统。
另外:因为iptables是开源的,就安全系数来讲软件防火墙只能用于辅助硬件防火墙,无法做到真正的安全效果。此外软件防火墙也是需要占用硬件资源运行
防火墙技术的功能主要在于及时发现并处理计算机网络运行时可能存在的安全风险、数据传输等问题,其中处理措施包括隔离与保护,同时可对计算机网络安全当中的各项操作实施记录与检测,以确保计算机网络运行的安全性,保障用户资料与信息的完整性,为用户提供更好、更安全的计算机网络使用体验。
firewalld防火墙是Centos7系统默认的防火墙管理工具,取代了之前的iptables防火墙,也是工作在网络层,属于包过滤防火墙
firewalld和iptables都是用来管理防火墙的工具(属于用户态)来定义防火墙的各种规则功能,内部结构都指向netfilter网络过滤子系统(属于内核态)来实现包过滤防火墙功能。
firewalld提供了支持网络区域所定义的网络连接以及接口安全等级的动态防火墙管理工具。
它支持IPv4、IPv6防火墙设置以及以太网桥(在某些高级服务可能会用到,比如云计算),并且拥有两种配置模式:运行时配置与永久配置。
firewalld与iptables 的区别:
1、iptables主要是基于接口,来设置规则,从而判断网络的安全性。
firewalld是基于区域,根据不同的区域来设置不同的规则,从而保证网络的安全。与硬件防火墙的设置相类似。
2、iptables在/etc/ sysconfig/iptables中储存配置,
firewalld将配置储存在/etc/firewalld/ ( 优先加载)和/usr/lib/ firewalld/ ( 默认的配置文件)中的各种XML文件里。
3、使用iptables每一个单独更改意味着清除所有旧有的规则和从/etc/sysconfig/iptables里读取所有新的规则。
使用firewalld却不会再创建任何新的规则,仅仅运行规则中的不同之处。因此firewalld可以在运行时间内,改变设置而不丢失现行连接。
4、iptables防火墙类型为静态防火墙,firewalld防火墙类型为动态防火墙
firewalld数据处理流程:
firewalld对于进入系统的数据包,
会根据数据包的源IP地址或传入的网络接口等条件,将数据流量转入相应区域的防火墙规则。
对于进入系统的数据包,首先检查的就是其源地址。
firewalld检查数据包的源地址规则
1.若源地址关联到特定的区域(即源地址或接口绑定的区域有冲突),则执行该区域所制定的规则。
2.若源地址未关联到特定的区域(即源地址或接口绑定的区域没有冲突),
则使用传入网络接口的区域并执行该区域所制定的规则。
3.若网络接口也未关联到特定的区域(即源地址或接口都没有绑定特定的某个区域),
则使用默认区域并执行该区域所制定的规则.
区域优先级:
源地址绑定的区域 > 网卡绑定的区域 > 默认区域
(只要没有绑定过指定区域的网卡,都适用于于默认区域的规则。默认区域可自定义,不修改则为public)
firewalld防火墙的配置方法
1、使用firewall-cmd 命令行工具。
2、使用firewall-config 图形工具。
3、编写/etc/firewalld/中的配置文件。
systemctl start firewalld.service #开启防火墙服务
区域管理
1、显示当前系统中的默认区域
firewall-cmd --get-default-zone
2、显示默认区域的所有规则
firewall-cmd --list-all
3、显示当前正在使用的区域及其对应的网卡接口
firewall-cmd --get-active-zones
4、设置默认区域
firewall-cmd --set-default-zone=block
firewall-cmd --get-default-zone #查看当前的默认区域。
学习Linux网络和网络部分需要从以下几个方面入手:
理解计算机网络体系结构及其基本协议(如TCP/IP协议),了解网络的基本概念(如IP、子网、路由、端口等),以及网络应用层(如HTTP、FTP、SMTP、DNS等)的基本原理。
掌握Linux系统的基本网络配置,如IP地址的配置与设置、网关的配置、DNS服务的配置、网络接口的管理、网络服务的配置等。
掌握Linux中常用的网络命令,如ifconfig、ping、netstat、traceroute、dig、tcpdump等,可以通过这些命令了解系统网络的运行状态、诊断网络问题、以及分析网络数据。
掌握shell脚本的功能和基础命令,分清for循环和while循环的使用逻辑,学会使用文本三剑客。
学习Linux网络和网络部分需要从以下几个方面入手:
理解计算机网络体系结构及其基本协议(如TCP/IP协议),了解网络的基本概念(如IP、子网、路由、端口等),以及网络应用层(如HTTP、FTP、SMTP、DNS等)的基本原理。
掌握Linux系统的基本网络配置,如IP地址的配置与设置、网关的配置、DNS服务的配置、网络接口的管理、网络服务的配置等。
掌握Linux中常用的网络命令,如ifconfig、ping、netstat、traceroute、dig、tcpdump等,可以通过这些命令了解系统网络的运行状态、诊断网络问题、以及分析网络数据。
掌握shell脚本的功能和基础命令,分清for循环和while循环的使用逻辑,学会使用文本三剑客。
学习Linux网络安全及性能优化,在网络安全方面可以了解如何防范网络攻击、如何使用防火墙、如何进行日志监控等。在性能优化方面可以了解如何进行网络带宽的优化、如何优化TCP/IP协议、如何排查网络性能问题等。