网络与linux基础
网络一、查端口通信远程服务器的端口通不通 telnet ip 端口 查tcp端口nc 查udp的端口二、osi七层模型应用层用户网络接口表示层数据加解密压缩解压缩格式转换会话层传输层端到端的通信段tcp 数据报UDP网络层路由选择数据包数据链路层mac地址寻址物理层信息封装成帧物理层比特典型协议 应用层http80 https443 telnet23 dns53 dhcp67 68 ftp20 21 smtp 25 ssh 22传输层tcp 面向链接 可靠SYN SYNACK ACKudp(无连接不可靠)四次挥手断开连接FINACK ACK FINACK ACK网络层ip ARP RARP ICMP IGMP(组播)三、修改网卡配置文件 /etc/sysconfig/network-script/ifcfg-网卡名命令行 nmcli connection四、查看查看ip ip a /ifconfig查看网关 route -n /ip route查看DNS服务器地址 cat /etc/resolv.conf六、添加临时路由route add -net 目的网段 gw 下一跳地址永久路由方案一/etc/rc.d/rc.local方案二/etc/sysconfig/network-scripts/route-出网卡名称七、tcpdump抓包工具tcpdump -i 网卡名称 -nn 条件tcpdump -i ens33 -nn port 80 add host 192.168.1.1八、 网络网络类型局域网广域网网络的组成 终端主机打印机电话、交换机、路由器传输介质 网线双绞线 光纤单模光纤多模光纤 无线电波IP地址表示方式 点分十进制IP地址类型A类0-127B类128-191C类191-223单播地址D类224-239组播地址E类 240-255私网IPA10.0.0.0-10.255.255.255B172.16.0.0-172.31.255.255C192.168.0.0---192.168.255.255子网掩码A类255.0.0.0/8B类255.255.0.0/16C类255.255.255.0/24识别一个IP地址是否为有效IPIP地址 网络位、主机位子网掩码中的1对应的部分称为网络位子网掩码中的0对应的部分称为主机位从二进制角度讲主机位不全为0、或者不全为1称为有效IP全为0 称为网段、网络 代表一串连续的IP地址全为1 称为广播地址网关gateway: 网络出口ping测试通信-c 【数量】 指定icmp包的次数 -s 【字节数】 数据包大小-i 【秒数】指定两个数据包发送间隔 默认1秒 -W 【秒数】 设置超时时间-l 【网卡/IP】 指定发送数据包的网卡Linux基础一、linux系统启动过程BIOS加点自检读取MBR中的引导程序加载grub加载内核系统初始化运行login登录程序等待用户登录二、查看Linux的几种运行模式0 关机模式 1 单用户模式 2字符模式无网络无图形 3.完整字符模式标准4 预留 5 图形界面模式 6 重启模式查看系统内核版本 uname -runame -a 更详细查看系统发行版本 cat /etc/os-release查看cpu详细信息 /proc/cpuinfo查看内存详细信息 /proc/meminfostat 查元数据信息文件类型识别工具filewc 统计文件字符数 显示 行数 单词数 字符数wc -l 行数了解命令详细信息 man查看主机名配置文件 cat /etc/hostname切换用户 su - 用户查看用户登录信息who修改字符集 /etc/profile export LANGzh_CN.UTF-8 中文export LANGen_US.UTF-8 英文三、文件目录操作查看当前目录 pwd查看目录下文件ls [选项] [目录名称]选项 -a 所有文件 -l -h 查文件详细信息 -d显示目录详细信息 S 按文件大小排序显示 t按时间排序显示-普通文件d: 目录c: 字符设备文件、键盘鼠标显示器打印机b: 块设备文件硬盘分区U盘光盘l: 软连接/符号链接类似于快捷方式查看文件目录占用的硬盘空间du -h 文件 统计文件大小du -sh 目录: 统计目录大小du -ah 目录 统计目录下所有文件大小touch 文件名称创建空白文件mkdir 【选项】 目录名称创建目录-p 递归创建目录 -v显示创建过程大括号展开,命令引用大括号展开 touch /opt/db/{1..10}.sql命令引用 $(命令) touch /opt/web$(date %F%T)date %Y 年 2024 date %m 月 09 date %d 日 27 date %H 时 14 date %M 分 22 date %S 秒 37 date %H_%M_%S 14_23_21 date %F 2024-09-27 date %T 14:23:55 date %F_%T 2024-09-27_14:24:11 删除文件 rm -r目录 -f 强制删除cat 文件名 查看文件内容分页显示内容more 只能向下滚动less 支持上下滚动head/tail默认显示十行管道符 | 将前一个命令的执行结果交给后一条命令处理cp -r复制目录 -a递归复制保留权限mv 移动文件或者目录四、压缩解压缩压缩文件gzip 文件名 压缩 --- xxx.gzbzip 文件名 ------ xxx.bz2xz 文件名 ------ xxx.xz-d 解压缩创建压缩包tartar cf 归档文件.tar 源文件c 创建 f 指定归档文件名称调用gzip 压缩tar czf 文件名.tar.gz 源文件调用bzip2压缩tar cjf 文件名.tar.bz2 源文件调用xz 压缩tar cJf 文件名.tar.xz 源文件解压缩 tar xf 压缩包名 【-C 目录名称】-C 指定解压目录x解压五、vim编辑器三种模式命令模式插入模式末行模式末行模式操作set nu 显示行号%s/原字符/替换字符/g命令模式操作$跳到行尾 ^行首gg第一行27gg 跳到27行G最后一行yy p复制沾沾dd p剪切沾沾dd删除一行/内容 查找 n向下找 N向上找u撤销1.别名查看别名alias定义别名 alias 别名’真实命令‘永久定义别名所有用户生效 /etc/bashrc -- source /etc/bashrc单个用户定义别名 用户家目录/.bashrc删除别名 unalias 别名2.定制vim vim /etc/vimrcset nuset tabstop4六、文件查找过滤1.查找文件 find 目录 查找条件按文件名称 -name -iname:忽略大小写按文件大小查 -size 20M大于20M -20M 小于20M按文件类型找 -type 类型f文件 d 目录 b块设备文件 c字符设备文件修改时间 -mtime创建时间 -ctime多条件查找 -afind /var/log/ -name *.log -a -ctime -7执行操作 -exec 命令\;find /opt/ -name *.sql -exec rm -rf {} \;find /boot/ -size 20M -exec ls -lh {} \;2.文本排序去重去重uniq 文件排序 sort [选项] 文件-n 按自然数大小排序-r 倒叙 默认升序-k2 按每行第2列排序-t 指定分隔符默认空白-h 按照计算机K M G 单位排序3.grep文件过滤grep [选项] 条件 文件名称 文件名称条件[0-9] [a-z] [A-Z] [a-zA-Z] [0-9a-zA-Z] [rmt] 任意单个grep [0-9] /etc/fstab^xxx 以xxx开头xxx$ 以xxx结尾^$ 空行选项-i 忽略大小写-v 反向过滤取反-e 多条件过滤-n 显示行号七、用户操作/etc/password 用户信息用户名称xuidgid:说明信息家目录shell/etc/shadow 用户密码信息/etc/group 用户组信息1.创建用户 useradd [选项] 用户名称-s 指定shell 默认/bin/bash /sbin/nologin不允许与系统交互-M不创建家目录 系统用户-r 创建系统用户-G 指定用户附加组查看用户登录信息 who查看用户idid 用户名称修改用户密码 passwd 用户名称锁定用户 passwd -i 用户名称解锁用户 passwd -u 用户名称2.修改用户信息usermode-s 修改shell-G 修改附加组-aG加入多个组3. 删除用户 userdel -r 用户名称 -r同时删除用户相关文件4.用户组操作创建用户组 groupadd 组名删除用户组 groupdel 组名将用户加入组 gpasswd -a 用户名 组名将用户踢出组 gpasswd -d 用户名 组名八、硬盘操作硬盘类型 机械硬盘 转速 RPM 5400/7200/10000/120000RPM SSD固态硬盘数据块 block默认每个块4K 数据存储时会被转换成数据块、随机存储建立完分区需要partprobe让硬盘识别分区查看块设备 lsblk1.硬盘分区方便分类存储数据系统盘至少得有1个主分区 数据盘无所谓主分区 最多创建4个扩展分区 方便创建逻辑分区最多只能有1个 主分区 扩展分区 4逻辑分区 无数量限制2.常见文件系统windows NTFS ,fat32(淘汰)linux xfs ext43.MBR格式硬盘操作分区工具 fdiskn:新建分区 d:删除 p:显示 w:保存 q:退出创建文件系统/格式化mkfs -t 文件系统 设备名称硬盘挂载mount临时挂载mount 设备名称 挂载点卸载 umount 挂载点永久挂载 开机自动挂载 /etc/fstab设备名称 挂载点 文件系统 挂载信息 0 04.GPT格式分区1、分区表类型MBR 容量不能超过2T 分区表容量是固定64字节 所以 主扩展4 分区工具: fdiskGPT 支持容量大于2T的硬盘 分区工具: parted分区工具 parted// 指定分区表格式为gpt [rootmartin-host ~]# parted /dev/sdd mklabel gpt // 创建分区 parted 硬盘 mkpart 分区名称 起始大小 终止大小 [rootmartin-host ~]# parted /dev/sdd mkpart p1 1 500G [rootmartin-host ~]# partprobe /dev/sdd5.inode/i节点df -i 查看inode节点[rootmartin-host ~]# df -i /db/oracle/ 文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点 /dev/sdc5 51200 10 51190 1% /db/oracle查元数据信息 stat /etc/fstab6.链接文件软连接 相当于快捷方式硬链接 在源文件inode上加了个标识软硬链接区别软连接可以链接目录文件硬链接只可链接文件源文件删除软连接失效硬链接没事软连接支持跨分区硬链接不行7.dd命令测试硬盘读写dd if /dev/zeroof文件 bs4M count100九、LVM逻辑卷pv 物理卷操作pvscan 查看物理卷pvcreate 物理设备vg 卷组操作vgscanvgdisplay 详细信息vgcreate 卷组名 物理卷vgextend 卷组名 物理卷lv逻辑卷操作lvscanlvcreate -L 5G -n 逻辑卷名 卷 组名lvextend -L 20G 逻辑卷名 卷 组名 :扩展到20G扩展20G是 20Glvremove 删除逻辑卷逻辑卷扩容先扩卷组在逻辑卷文件系统扩展文件系统xfs :xfs_growfs 逻辑卷名称ext4 : resize2fs /dev/cloud/docker(逻辑卷名称)逻辑卷缩容XFS不支持1.数据备份2.卸载逻辑卷不支持在线3.检查文件系统是否损坏 e2fsck -f 逻辑卷4.先缩减文件系统大小resize2fs /dev/cloud/docker 5G缩减到5G5.在缩减逻辑卷大小lvredius6.重新挂载验证数据十、RAID冗余磁盘阵列加快数据读写速度提高数据可靠性RAID0至少两块盘没有数据冗余不可靠读写速度块利用率100%RAID1至少两块盘读写速度适中利用率50%,适合作系统盘数据可靠降低写数据RAID5至少三块盘读写快数据可靠磁盘利用率少一块盘n-1/n最多同时坏一块盘奇偶校验卷READ6 和READ5一样但是最多同时坏两块盘RAID10至少4快盘先READ1 在READ0 数据可靠读写速度快磁盘利用率50%适合作数据盘十一、主机网卡配置查看网关 route -n查dns cat /etc/resolv.conf网卡配置文件 /etc/sysconfig/network-script/ifcfg-ens33nmcli工具查看网卡配置nmcli connection show删除网卡配置nmcli connection delete ens33配置网卡nmcli connection add type ethernet ifname ens33 con-name ens33nmcli connection modify ens33 ipv4.address x.x.x.x/24nmcli connection modify ens33 ipv4.gateway x.x.x.xnmcli connection modify ens33 ipv4.dns x.x.x.xnmcli connection modify ens33 ipv.method manualnmcli connection modify ens33 autoconect onnmcli connection reloadnmcli connection up ens33路由设置配置静态路由 route add -net 目的网段 gw 下一跳地址查看路由表 route -n添加永久路由 /etc/rc.d/rc.local开启路由转发功能sysctl -avim /etc/sysctl.confnet.ipv4.ip_forward 1sysctl -p网卡绑定解决问题单块网卡单点故障单块网卡带宽有限提升带宽绑定方式bond centos6.x之前最多支持绑定2块网卡team centos7.x后最多支持绑定8块网卡team绑定的模式activebackup默认主备同一时间只有一块网卡正常接收流量另外网卡作为备用roundrobin/loadbalance 负载均衡模式所有网卡共同处理访问流量配置activebackup模式的网卡绑定删除物理网卡所有配置创建网卡绑定虚拟网卡team1指定工作模式为activebackupnmcli connection add type team ifname team1 con-name tesm1 config {runner:{name:activebackup}}添加物理网卡nmcli connection add type team-slave ifname ens36 con-name team1-ens36 master team1 nmcli connection add type team-slave ifname ens37 con-name team1-ens37 master team14.配置ip[rootlocalhost ~]# nmcli connection modify team1 ipv4.addresses 192.168.140.200/24 [rootlocalhost ~]# nmcli connection modify team1 ipv4.gateway 192.168.140.2 [rootlocalhost ~]# nmcli connection modify team1 ipv4.dns 223.5.5.5 [rootlocalhost ~]# nmcli connection modify team1 ipv4.dns 114.114.114.114 [rootlocalhost ~]# [rootlocalhost ~]# nmcli connection modify team1 ipv4.method manual [rootlocalhost ~]# nmcli connection modify team1 autoconnect on [rootlocalhost ~]# [rootlocalhost ~]# nmcli connection reload [rootlocalhost ~]# nmcli connection up team1产看绑定后的网卡信息ifconfig team15.查看网卡绑定状态 teamdctl team1 state十二、软件安装Linux安装包格式 centos : rpm包 Debian/Ubuntu: deb包 源码安装包 xxx.tar.gzrpm工具rpm -ivh 软件安装包rpm -q dhcp 查看软件是否安装rpm -qa 查看所有安装的软件查询文件由那个软件生成which ifconfigrpm -qf /usr/sbin/ifconfig查询软件生成的文件 rpm -ql 软件名卸载软件 rpm -e 软件名yum工具自动解决安装依赖yum install 软件 ;下载yum remove 软件 ;卸载yum update 软件 更新yum search 软件yum provides 软件 搜索编写yum源cat /ect/yum.repos.d/mysql80.repo [mysql80] namemysql80 baseurlftp://10.11.0.254/software/mysql8.0.42/ enabled1 gpgcheck0查看yum源 : yun repolist清理yum 缓存: yun clean all查看所有软件 yum list allyum缓存开启yum缓存vim /etc/yum.conf[main] cachedir/var/cache/yum/$basearch/$releasever keepcache1获取缓存安装包下载软件[rootlocalhost ~]# yum install openstack-glance [rootlocalhost ~]# mkdir /glance [rootlocalhost ~]# find /var/cache/yum/ -name *.rpm -exec cp {} /glance/ \;编写本地源 createrepo /本地目录/[rootlocalhost ~]# cat /etc/yum.repos.d/glance.repo [glance] nameglance baseurlfile:///glance enabled1 gpgcheck0源码软件的安装下载安装包 xxx.tar.gz xxx.tar.bz2解压缩切换软件解压目录cd 软件解压目录/配置软件安装路径功能参数./configure --prefix/usr/local/htop编译将代码转换成计算机可执行文件make安装生成软件相关文件make install十三、进程操作1.进程查看 ps -elf查进程树 pstree查看内存 free -m / free -h2.控制进程前后台运行将命令放入后台 nohup 命令 查看后台任务 jobs -l将命令调入前台 fg 1将正在运行的任务放入后台暂停执行ctrl z将后台暂停任务继续执行 bg 13.向进程发送信号kill [信号] PID默认是结束信号查看信号 kill -l 15正常结束 9强制杀死 18恢复进程 19挂起进程计划任务一次性任务前提依赖于atd服务正常运行 rpm -q at systemctl status atd创建一次性任务 : at 10:32[rootlocalhost ~]# at 10:32 at rm -rf /tmp/* at EOT job 1 at Sat Oct 19 10:32:00 2024 // 查看一次性任务 [rootlocalhost ~]# at -l 1 Sat Oct 19 10:32:00 2024 a root周期性任务创建周期性任务 crontab -e分 时 日 月 周 任务/每隔多少时间 */30 每隔半小时 10-12 连续时间 30 8,1012 * * * 每天早上8点半10点半 12点半查看周期性任务crontab -l注意写命令的全路径%默认识别为命令的结束符需要转义加\性能查看工具top动态显示进程 M :按内存占比倒叙显示进程P按CPU占比倒叙显示进程查看系统负载CPU负载top - 15:12:59 up 6:09, 1 user, load average: 0.02, 0.02, 0.13 最近1、5、15分钟的平均负载 负载值 CPU数量 * 2 正常查系统负载uptime查cpu数量nproc lscpu查看内存 free -h vmstat 1 3查看cpu mpstat 1 5查硬盘io iostat查网卡流量 sar -n DEV 1 3查网卡带宽 ethtool ens33十四、SSH协议介绍常用操作远程连接 ssh 用户名主机执行远程命令ssh root192.168.140.10 ifconfig ens33远程拷贝文件scp file01 root192.168.140.10:/tmp加密对称加密加密openssl enc -e -des -in /opt/file01(要加密的文件 -out /opt/file01_new(加密后文件)解密数据openssl enc -d -des -in /opt/file01_new -out /opt/file01非对称加密公钥加密私钥解密生成密钥对 ssh-keygen -t rsa将公钥拷贝到远端的服务器 ssh-copy-id root192.168.140.10---可以实现主机间的免密登录如果想要多个主机间相互实现免密登录需要在其中一个主机生成密钥对再把这个密钥对里面的公钥改名成authorized_keys分别拷贝到需要免密登录的主机用户的家目录就可以。ssh-copy-id做了什么将公钥文件拷贝到远端服务器对应用户的家目录改名为authorized_keys将密钥文件的权限修改为600ssh服务配置配置文件 /etc/ssh/sshd_config