层级 | 作用 |
---|---|
应用层 | 人为的打开一个或多个程序 |
表示层 | 将人类输入的高级语言翻译成二进制语言 |
会话层 | 建立、管理、中止会话 |
传输层 | 定义传输数据的协议端口号,并流控和校验 |
网络层 | 根据IP地址来找路 |
数据链路层 | 根据mac地址判断是否是我要找的计算机 |
物理层 | 数据转换为bit流 |
应用层、传输层、网络层、数据链路层、物理层
类型 | 范围 |
---|---|
A类 | 0.0.0.0-127.255.255.255 |
B类 | 128.0.0.0-191.255.255.255 |
C类 | 192.0.0.0-223.255.255.255 |
类型 | 范围 |
---|---|
A类 | 10.0.0.0-10.255.255.255 |
B类 | 172.16.0.0-172.31.255.255 |
C类 | 192.168.0.0-192.168.255.255 |
端口 | 协议 | 注释 |
---|---|---|
21 | FTP | FTP服务器所开放的控制端口 |
23 | TELNET | 用于远程登录,可以远程控制管理目标计算机 |
25 | SMTP | SMTP服务器开放的端口,用于发送邮件 |
80 | HTTP | 超文本传输协议 |
110 | POP3 | 用于邮件的接收 |
端口 | 协议 | 说明 |
---|---|---|
69 | TFTP | 简单文本传输协议 |
111 | RPC | 远程过程调用(远程指挥) |
①TCP、UDP协议在传输层
②TCP报文段中三个控制位:FIN(断开位)、ACK(确认位)、SYN(同步位)
vlan ID数量:4096个
可用ID范围:1-4094
①access主要设备:计算机——作用:只允许一个vlan通过
②trunk主要设备:交换机和交换机——作用:允许多个vlan通过
①优先级 ②1秒
传输层:tcp/udp头部+上层数据(段)
网络层:ip头部+tcp/udp头部+上层数据(包)
数据链路层:mac头部+ip头部+tcp/udp头部+上层数据+校验和(帧)
直连路由、静态路由、动态路由
PC1向PC2发送SYN报文(SYN(同步位)=1,seq(序列号)=x);
PC2向PC1发送SYN+ACK报文(SYN=1,ACK(确认位)=1,seq=y,ack(确认号)=x+1);
PC1向PC2发送ACK报文(ACK=1,seq=x+1,ack=y+1)
UDP协议:快,不可靠
TCP协议:慢,可靠
①隔绝广播风暴
②提供网络安全性
③简化网格管理
检测网络双向连通性
检测地址冲突;将IP地址转换成mac地址
对IP数据中报文的IP地址进行转换
①冲突域:两台机器同时发出数据时产生冲突,说明在同一个冲突域
②广播域:一个机器发送广播,所有能够收到的机器在同一广播域
能够将数据包转发到正确的目的地,并在转发过程中选择最佳路径的设备
提供更多接口
可以实现不同vlan间互通,路由功能+高速转发
T568B:白橙、橙、白绿、蓝、白蓝、绿、白棕、棕
学习(学习源mac地址)
查询(查询mac地址表)
转发(查询失败广播泛洪)
刷新(默认300s刷新一次mac地址表)
已知单播帧————单播
未知单播帧————广播
没有数据传输时,服务端的SYN和ACK报文可以一起发送,但是挥手时有数据传输,ACK和FIN报文不能同时发送,需要分为两步,所以多了一步流程
①首先需要解析出baidu.com对应的ip地址
(知道默认网关的mac、使用arp获取默认网关的mac地址)
②组织数据发送给默认网关(IP地址还是DNS服务器的,但是mac地址是默认网关的mac地址)
③默认网关拥有转发数据的能力,把数据转发给路由器
④路由器根据自已的路由协议,来选择一个合适的较快的路径转发数据给目的网关
⑤目的网关(DNS服务器所在的网关),把数据转发给DNS服务器
⑥DNS服务器查询解析出baidu.com对应的IP地址,并把它原路返回给请求这个域名的客户端
⑦得到了baidu.com对应的ip地址后,会发送tcp的三次握手,进行连接
⑧使用http协议发送请求数据给web服务器
(经过:1.请求连接2.接收请求3.处理请求4.访问资源5.构建响应报文6.发送响应报文7.记录日志)
⑨浏览器接收到数据后通过浏览器自已的渲染功能来显示这个网页
⑩浏览器关闭tcp连接,即四次挥手
没安装————安装
缓存位置不对(hash)——清缓存
默认文件夹里不存在——移到默认文件夹
当你执行命令时,首先去判断是不是别名 ,如果是,直接执行;
不是,判断是否是内部命令,如果是,直接执行;
不是,去看hash表,如果hash表有,直接执行,有,但是找不到,报错;
没有,去外部命令规定的文件夹找命令,如果没有,报错。
总:别名>内部命令>hash表>外部命令
①目录
/etc:配置文件保存位置
/mnt:挂载目录
/boot:系统启动目录
/var/log:登陆文件放置的目录
/dev:设备文件保存位置
/root:root 的主目录
/bin:存放二进制文件
/home:普通用户
②文件
/etc/passwd:存放用户信息
/etc/shadow:存放用户密码
/etc/fstab:永久挂载
/etc/exports:NFS共享存储服务配置文件
/etc/hosts:域名解析配置文件:主机名与IP地址的映射
ls -t
ll -tr
*:代表任意长度字符
?:代表单个一个字符
[]:代表一个字符
cd /opt/
绝对:cd /mnt/
相对:cd …/mnt/
In -s /etc/passwd /mnt
注:ln命令 -s软连接 源文件绝对路径 目标文件地址
cp -a /etc /opt/
注:-a 保留所有权限,包括软连接文件
目录不可以做硬链接
grep -rw root 文件名
例:grep -rw root /etc/passwd
tail -f /var/log/messages(默认十行,如需指定行数使用tail -n 20 /var/log/messages)
cat /etc/fstab |grep ‘^#’
du -d1 /var
知识点:-d1 只显示目录下的第一层
ls -lrt /etc
ls -d /etc/rc[0-6]*
知识点:-d 仅列出目录本身,而不是列出目录内的文件数据
which ls
①将人类使用的高级语言翻译成二进制。(在用户和内核之间充当“翻译官”)
②bin/bash
find /var/log -name “*.log” -type f -exec mv {} /mnt ;
find /var/log/ -size +100M -mtime +10 =type f -name*.log
find -mtime +7 -type f -size +10G -delete
cd ~
touch abc.txt
touch 123.txt
tar -zcvf abc123.tar.gz abc.txt 123.txt
cd ~
tar -jxvf abc123.tar.bz2 -C /opt
vim 1.txt
:%s /^\n
mv ~/abc.txt /opt/123.txt
可以锁定密码,锁定账号
添加用户
user add -u————指定uid创建
-e————指定用户的基本组名
-d——————指定用户的宿主目录位置
-s——————指定用户登录shell
设置密码
passwd 用户名或echo 密码 | passwd --stdin 用户名
修改用户账户属性
usermod -u————修改用户uid
-d—————修改家目录
-g————修改用户基本组名
-L————锁定用户
-U————解锁用户
删除用户
userdel -r 用户名
删除组
gpasswd -a——向组内添加一个用户
-d——从组删除一个用户
-M ————指定多个组员添加到组、
删除组
groupdel
cp——执行
passwd——读
zjf——写
iostat
输入模式 末行模式 命令模式
cat /etc/fstab |grep -v "^KaTeX parse error: Expected group after '^' at position 14: " 或 grep -v '^̲’ /etc/fstab
ifconfig ens33 |head -2 |tail -1
或
ifconfig ens33 |grep netmask
du -d1 /etc |sort -n
或
ll -S /etc/
①删文件 (删除没有用的大文件,删除后也未释放空间,删除之前echo“ ”>大文件,将文件重定向为空,删除后to /osf/grep delete 显示打开的文件并过滤删除的文件,kill杀死这个寻找到的过程)
②申请加硬盘
③上报
wc -l /etc/fstab
或
cat /etc/fstab |wc -l
知识点:wc命令 -l 只统计行数 对 /etc/fstab 文件进行处理
tar zcvf 1.tar.gz ./*
知识点:tar使用归档 z代表使用gzip 压缩 c建立归档 v显示详细过程 f代表使用归档 1.tar.gz 代表自定义的名字 ./* 代表当前文件夹下的所有
判断端口连通性
(1)网络:ping 服务的ip地址(127.0.0.1);ping网关
(2)服务:查看服务的状态(如关闭,开启即可);服务如起不来(配置文件);服务是好的,网络没问题,查看端口
(3)端口:端口被占用;被防火墙策略隔离
telnet 10.0.0.1 3306
实现IP地址和主机名(域名)之间的映射
/etc/resolv.conf
kill
chmod +x
ping -c 10 www.aliyun.com
tar zcf config.tar config/
①nslookup
②host
/etc/hosts
hostnamectl set-hostname
bash
或
vim /etc/hostname
reboot
showmount -e 10.0.0.1
pvcreate、lvcreate、vgcreate、lvextend、pvdisplay等
/etc/sysconfig/network-scripts/eth0
ICMP协议
pwd
mkdir a
cd a
touch 1 2 3
cat 1.txt 2.txt > 3.txt #上下合并
或
paste 1.txt 2.txt > 3.txt #左右合并
ps aux |wc -l
mount /dev/sr0 /mnt
cd /etc/yum.repo.d
mkdir bak
mv *.repo bak
vim local.repo
[local]
name=local
baseurl=file:///mnt
gpgcheck=0
yum clean all && yum makecache
ls -a
uname -r
#临时挂载
mount /dev/sda1 /mnt
#永久挂载
blkid /dev/sda1 #查看UUID号
vim /etc/fstab #永久挂载
UUID=? /mnt xfs defaults 0 0
mount -a #重新加载
①fdisk #2T以下
②gdisk #2T以上
#例如磁盘名为sdb
fdisk /dev/sdb
#创建
n
回车
回车
回车
+5G
p
w
#格式化
mkfs.xfs /dev/sdb1
#挂载(此处演示临时)
mount /dev/sdb1 /mnt
#查看验证
df -hT #查看挂载情况
lsblk #查看分区
yum install -y 软件名
#安装软件(需要注意依赖关系)
-i #安装 -v #显示过程 -h #人性化显示
grep ‘password’ /etc/shadow
sed -n ‘3p’ /etc/passwd
查看当前文件夹的总磁盘占用量
保留权限递归复制(目录一定要-r)
①reboot
②init 6
inode号用完了
知识点:每生成一个文件都占用一个inode号,且inode号不可再生,一旦分区数量就确定下来了,数量和磁盘大小有关
树状图显示进程和PID号
统计文件内容中的字节数、字数、行数
RAID等级 需要硬盘数量 可用容量 容错能力 读性能 写性能 坏几个
RAID 0 N≥2 N 无 提升 提升
RAID 1 N(偶数) N/2 最多损坏一块盘 提升 下降
RAID 5 N≥3 N-1 最多损坏一块盘 提升 下降
RAID 6 n>=4 (n-2)/n 最多坏2 读高 写低 很高可用
RAID 10 N≥4(偶数) N/2 每组最多损坏一个盘 提升 提升
清理无用文件
知识点:每生成一个文件都占用一个inode号,且inode号不可再生,一旦分区数量就确定下来了,数量和磁盘大小有关
读 r 4
写 w 2
执行 x 1
ss -ntap |grep 80
或
nestat -ntap |grep 80
①添加硬盘(记得scan刷新新硬盘)
②分区(2T以下:fdisk/2T以上:gdisk)
③创建物理卷(pvcreate)
④创建卷组(vgcreate)
⑤创建逻辑卷(lvcreate)
⑥格式化逻辑及(mkfs)
⑦挂载逻辑卷(mount)
⑧查看挂载情况(df -h)
①开机自检BIOS
②MBR引导
③GRUB菜单
④加载内核
⑤init初始化进程
644
/etc/sysconfig/network-scripts/
#方法一
pstree -p
#方法二
cd /proc/PID号
cat status
#方法三
grep -i threads /proc/PID号/status
查询ftp属于哪个安装包
passwd test
或
echo ‘密码’ |passwd --stdin test
#方法一
cat /etc/resolv.conf
#方法二
nslookup 127.0.0.1
#方法三
cat /etc/sysconfig/network-scripts/网卡
#方法一
route -n
#方法二
ip route show
#方法三
cat /etc/sysconfig/network-scripts/网卡
ifconfig ens33:0 IP地址 子网掩码
回环网卡,即127.0.0.1,进行本地网络回环测试,看自己的物理网卡是否有物理故障
第一字段:设备
第二字段:挂载点
第三字段:文件系统类型
第四字段:挂载选项权限(default)
第五字段:转储频度,是否备份(0)
第六字段:自检次序(0)
知识点:/etc/fstab文件内容为永久挂载
①ll
②stat
①which cp
②whereis cp
#第一步
#查看文件是否正在使用(进程占用)
ps -aux
#第二步
kill对应进程
#或者
删除文件不彻底,可以使用命令
lsof |grep delete
echo “” > 文件名
切换到上一级目录
查询当前目录下的文件、文件夹
显示httpd软件包所有文件列表
ifconfig 网卡名
排序
字符替换、压缩和删除(-d)
表示前一条命令的执行状态,0为正常,1为异常
查看当前定时任务列表(周期性计划内容)
last
lastb
①users
②who
③w
④cat /var/log/messages
①ssh支持压缩;talnet不支持压缩
②ssh加密用公钥;talnet明文传送
③ssh默认端口号为22;talnet默认端口号为23
yum remove 软件名
先执行命令ls,在执行cd /opt
①检查安装环境并选择安装功能
./configure
②编译安装进硬盘
make && make install
①通配符用于文件名路径匹配
②正则表达式用于文本匹配字符串
备份文件并在原处编辑
#方法一
cat /etc/passwd
#方法二
vim /etc/passwd
#方法三
less /etc/passwd
#方法四
more /etc/passwd
反向输出文件内容
hexdump -C -n 512 /dev/sda
①less
②more
tail -fn0 /var/log/messages
cut -d’:’ -f3 /etc/paswwd
左右合并文件
按数字从大到小顺序排序(即倒序排序)
去除连续的重复
#方法一
ifconfig ens33 |sed -n ‘2p’ |awk ‘{print $2}’
#方法二
ifconfig ens33 |grep netmask |awk ‘{print $2}’
#方法三
ifconfig ens33 |awk ‘NR==2{print $2}’
uid 用户名
或
cat /etc/passwd |grep 用户名
①sed适合按列操作;awk适合按行操作
②sed是一个非交互式的编辑器;awk是一个程序语言
xfs
①管道(pipe)、流管道(s_pipe)、有名管道(FIFO)
②套接字(socket)
③消息队列
④共享内存
⑤信号(signal)
⑥信号量
①Network Time
②Chrony
DELL、IBM、浪潮、联想、华为
图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。
SVN是一个开源版本控制系统代码版本管理工具,它能记住你每一次的代码修改,查看所有的修改记录,恢复到任何历史版本,恢复已经删除的文件。
MAVEN是一个项目管理工具,可以构建工程,管理jar,编译代码,自动运行单元测试,打包生成报表,部署项目,生成web站点。
GIT是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。
cat /var/log/nginx/access.log |cut -d " " -f1 |sort -n |uniq -c |sort -nr |head
①nginx -s USR1 进行日志分割脚本
②split命令
①fsck
②e2fsck:修复ext系列文件
③xfs_repair:修复xfs文件
&>
①桌面用户首选Ubantu
②服务器首选RHEL或Centos
③安全要求高则选择Debian或FreeBSD
④使用数据库高级服务和电子邮件网络英语选择SUSE
①atime:读取或执行文件,任何对inode的访问
②ctime:写入文件,更改属主、权限或链接设置(更改状态,随inode内容更改而更改)
③mtime:写入文件
①检查是否安装ifconfig:ls /sbin |grep ifconfig
没安装就安装工具:yum install -y net-tools
②HASH缓存丢失:清空缓存
③命令不在$PATH下
④命令损坏:重新安装,同理为①
ps aux |grep Z
①挂载选项错误:重新挂载
②磁盘损坏:fsck命令先修,修不好就换盘(先拷贝数据)
①ab
②stress
ps aux |grep ‘root’ |wc -l
或
pstree -u root |wc -l
①top定位进程
②定位线程
③分析,kill
①使用top命令查看哪些进程占用了大量的CPU资源
②分析这些进程的日志和配置确定它们为什么会占用大量的CPU资源
③根据分析结果,调整这些进程的配置或优化它们的代码,以减少它们对CPU资源的占用
④如果您无法通过调整配置或优化代码来解决问题,您可以考虑增加服务器的硬件资源,如增加CPU核心数或升级CPU
99.9代表要停机约8.76小时,可用性达到99.9%
危险,有覆盖原文件的风险:要养成备份的习惯
连服务器编译(不要使用XShell等远程连接工具)
cd /proc #清缓存
echo 1 > /proc/sys/vm/drop_caches #值为1、2、3都可以
密钥(mac地址)没更新
①搭建PXE批量网络装机,自动装机
②初始化(IP地址、主机名、网卡名、本地yum仓库、内核参数优化调整等)脚本执行安全加固和系统调优或ansible
③安装必备软件
④网络调试(搭建DHCP)
①物理巡检:磁盘闪灯(绿黄红)、温度湿度、安全等
②软件巡检:脚本检测(五大性能、Keepalived等数据库、服务能否正常登录使用)
③使用Zabbix、普罗米修斯进行监控
物理内存不够用时,从Swap分区取出部分空间使用(将磁盘上的空间当作内存,救急的时候用)
swapon #打开
swapoff #关闭
systemctl start httpd
systemctl enable httpd
或
systemctl enable --now httpd
buff:写缓存
cache:读缓存
du -d
或
du --max-depth
find / -mtime +7 -name ‘*.log’ -type f
141.管道符(|)的作用是什么?
连接左右两个命令:将左边命令的结果,当右边命令待处理的结果
ps aux |grep svn
pstree -p |grep svn |wc -l
144.回到上一次的文件夹
cd -
df -hT
crontab -e
或
free -s 3 #每三秒显示一次
①Centos6系统类型为sysvinit;Centos7系统类型为systemd
②Centos6第一个进程为init;Centos7第一个进程为systemd
③Centos6普通用户UID起始范围为500+;Centos7普通用户UID起始范围为1000-60000
④Centos6程序用户UID起始范围为1-499;Centos7程序用户UID起始范围为201-999
⑤Centos6网卡名称(eth0);Centos7网卡名称(ens33)
⑥Centos6自带的防火墙工具是iptables;Centos7自带的防火墙工具是firewall
⑦Centos6默认使用的文件系统为ext4;Centos7的默认文件系统为xfs
true > 文件名
或
echo ‘’ > 文件名
①du指文件占用的磁盘空间大小
②ls显示的文件真实大小(会比du显示的小)
①物理环境:磁盘闪红灯
②badblocks命令:检查磁盘中损坏的区块
进入急救模式,重设密码
top命令查看CPU(一般75%-80%以上就算高负载)
①客户端广播发送discover报文寻找服务端
②服务端回应offer报文
③客户端发送request服务请求(只回应第一个响应的服务端)
④服务端回复ACK报文
⑤客户端配置
超级用户(UID=0)、普通用户、程序(系统)用户
看UID是否等于0
grep -rw ‘root’ /etc/
dd if=/dev/sda of=/mnt/mbr.bak count=1 bs=512
find -inum 12345678 -type f -delete
或
find -inum 12345678 -type f -exec rm {} ;
wheel
①File:文件名
②Size:字节
③Blocks:文件使用数据块总数
④Block:读写大小
⑤文件类型
⑥设备编号
⑦Inode号
⑧Links:硬链接次数
⑨Access:权限
⑩UID、GID、属主、属组
⑪atime:访问时间
⑫mtime:修改时间
⑬ctime:状态时间
说明这个/tmp文件夹中文件只有root和属主可以删除
root的umask默认为022;非特权用户为022
①文件夹最小权限为 执行(x 1)
②文件最大权限为读写(666)
③文件夹最大权限为读写执行(777)
hexdump -C -n 512 #查看前512字节
①可能会有进程正在使用:kill进程号
②磁盘损坏
③有人在使用挂载目录:fuser -km 强杀
动态显示系统处理器(内存、CPU等),五次刷新后自动退出
top #内存
iotop #磁盘读写
vmstat #进程、虚拟内存、CPU活动、磁盘读写等
free -m #系统内存使用情况 显示单位为MB
fdisk #磁盘空间
df -hT #磁盘使用情况
find #查找文件
netstat /ss #查看网络连接情况
ps aux #进程
du -sh #当前目录下的所有文件占用磁盘大小和总大小
wc -l #统计文件内的行数
lsblk #磁盘分区情况
uname -r #内核
(1)在脚本内使用spawn开启修改密码
(2)捕获,设置密码
(3)再次捕获,设置密码
当执行kill命令时,向内核传递一个信号,最终内核收到kill信号,由内核执行来终止进程
usermod -L 用户名————锁用户
passwd -l 用户名—————锁密码
passwd -S 用户名
(1)atime :使用这个文件时就会更新时间
(2)mtime:修改文件的内容或数据就会更新
(3)ctime:只要修改文件权限或者属性时就会更新时间
查询过程:看本机缓存(hosts)如没有在dns的域名服务器(运营商)如dns没有到根域服务器查(根域服务器知道但不会直接告诉,去顶级域查)到达二级域(域名是唯一的)如在不知道子域知道(IP地址)子域反馈结果(返回用户结果——域名服务器——本地缓存——用户)
迭代:根——顶级域——二级域(每一次都比上一次知道的更多
递归:反馈结果给用户
双层for循环完成,外面循环控制几次比较内循环比较相邻位置大小排序
split -l————按行拆分指定行数拆分
split -b————指定文件大小拆分
ss -nta | grep -v ‘^state’ | cut -d " " -f 1 | sort |uniq -c
^state:取反不包含
-f 1:只保留第一字段
sort:排序
uniq -c:统计重复次数,去重
ss -nt | tr -s " " | cut -d " " -f 4 | sort -n | uniq -c
-s :多个空格压缩一个
-f 4 :取第四列
sort -n:排序
uniq -c:去重
使用split 命令进行文件分割
sed -n ‘d’ 文件名
cat /dev/null > 文件名
(1)grep -v “^$” 文件名
(2)cat 文件名 | tr -s “\n"
(3)sed ‘/^$/d’ 文件名
cat /etc/sysconfig/network-scripts/ifcfg-ens33 | sed '/^IPADDR/c IPADDR=10.10.10.10'
echo zzxxcc | sed -r 's/(zz)(xx)(cc)/\2\3\1/'
xxcczz
cat bbh.txt | sed -r 's/(.*)-(.*)(\.jar)/\2/'
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DwFgJT93-1686796126498)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230612165443070.png)]
getline是内置的函数
没有重定向和管道符相当于打印奇偶行
有重定向就是从指定文件获取内容,管道符相当于赋值变量,打印出变量赋值后的内容。
格式:awk ‘(条件表达式)?(A表达式或者值):(B表达式或者值)’
?前的相当于if的条件判断,比较结果:相当于else但其中的为真为假条件都会打印出来,就是条件判断语句
awk '{print $1, $7, $9}' /var/log/messages
[root@test5 opt]# cat test.txt
1 www.kgc.com
2 mail.kgc.com
3 ftp.kgc.com
4 linux.kgc.com
5 blog.kgc.com
[root@test5 opt]# cat test.txt | awk -F'[ .]+' '{print $2}'
www
mail
ftp
linux
blog
指定变量方式
[root@test1 opt]# vim zdssh.sh
#!/usr/bin/expect
set ip 192.168.198.12
set user root
set passwd 000000
set timeout 5
spawn ssh $user@$ip
expect {
"yes/no" {send "yes\n";exp_continue}
"password" {send "${passwd}\n"}
}
interact
[root@test1 opt]# chmod 777 zdssh.sh
[root@test1 opt]# ./zdssh.sh
spawn ssh [email protected]
[email protected]'s password:
Last failed login: Thu Jun 8 22:16:50 CST 2023 from 192.168.198.11 on ssh:notty
There were 4 failed login attempts since the last successful login.
Last login: Thu Jun 8 22:01:11 2023 from 192.168.198.1
[root@test2 ~]# #如想退出终端在脚本命令中将interact修改为expect eof
使用传参的方式进行ssh免交互登录
[root@test1 opt]# vim ssh.sh
#!/usr/bin/expect
set timeout 5
set hostname [lindex $argv 0]
set password [lindex $argv 1]
spawn ssh $hostname
expect {
"connection refused" {send_user "ssh访问被拒绝\n"}
"No route to host" {send_user "主机名/ip地址有误\n"}
"yes/no" {send "yes\n";exp_continue}
"password" {send "$password\n"}
}
interact
[root@test1 opt]# chmod 777 ssh.sh
[root@test1 opt]# ./ssh.sh 192.168.198.14 123 #未开启的终端地址会直接报错
spawn ssh 192.168.198.14
ssh: connect to host 192.168.198.14 port 22: No route to host
主机名/ip地址有误
五元素:源IP、目标IP、源端口、目标端口、协议
四元素:源IP、目标IP、源端口、目标端口
(1)INPUT:处理入站数据包
(2)OUTPUT:处理出站数据包
(3)FORWARD:处理转发数据包
(4)POSTROUTING链:在进行路由选择后处理数据包
(5)PREROUTING链:在进行路由选择前处理数据包
注:表里面有链,链里面有配置规则,一旦匹配立即停止
linux自带的抓包工具,有两种方式:
(1)指定抓包,后加协议、设备、网段、端口、后加储存位置(因为linux中没有对应分析工具,一般存储在桌面用相应的工具打开
vim zdssh.sh
#!/usr/bin/expect
set ip 192.168.198.12
set user root
set passwd 000000
set timeout 5
spawn ssh $user@$ip
expect {
"yes/no" {send "yes\n";exp_continue}
"password" {send "${passwd}\n"}
}
interact
[root@test1 opt]# chmod 777 zdssh.sh
[root@test1 opt]# ./zdssh.sh
spawn ssh [email protected]
[email protected]’s password:
Last failed login: Thu Jun 8 22:16:50 CST 2023 from 192.168.198.11 on ssh:notty
There were 4 failed login attempts since the last successful login.
Last login: Thu Jun 8 22:01:11 2023 from 192.168.198.1
[root@test2 ~]# #如想退出终端在脚本命令中将interact修改为expect eof
使用传参的方式进行ssh免交互登录
[root@test1 opt]# vim ssh.sh
#!/usr/bin/expect
set timeout 5
set hostname [lindex $argv 0]
set password [lindex $argv 1]
spawn ssh $hostname
expect {
"connection refused" {send_user "ssh访问被拒绝\n"}
"No route to host" {send_user "主机名/ip地址有误\n"}
"yes/no" {send "yes\n";exp_continue}
"password" {send "$password\n"}
}
interact
[root@test1 opt]# chmod 777 ssh.sh
[root@test1 opt]# ./ssh.sh 192.168.198.14 123 #未开启的终端地址会直接报错
spawn ssh 192.168.198.14
ssh: connect to host 192.168.198.14 port 22: No route to host
主机名/ip地址有误
五元素:源IP、目标IP、源端口、目标端口、协议
四元素:源IP、目标IP、源端口、目标端口
(1)INPUT:处理入站数据包
(2)OUTPUT:处理出站数据包
(3)FORWARD:处理转发数据包
(4)POSTROUTING链:在进行路由选择后处理数据包
(5)PREROUTING链:在进行路由选择前处理数据包
注:表里面有链,链里面有配置规则,一旦匹配立即停止
iptables -A INPUT -s 192.168.198.12 -p tcp --dport 22:80 -j REJECT 禁止192.168.198.12访问20和80端口,多端口时端口小的写在前面
iptables -A INPUT -s 192.168.198.12 -p tcp --dport 22:80 -j ACCEPT 允许192.168.198.12访问20和80端口,多端口时端口小的写在前面
linux自带的抓包工具,有两种方式:
(1)指定抓包,后加协议、设备、网段、端口、后加储存位置(因为linux中没有对应分析工具,一般存储在桌面用相应的工具打开
(2)动态抓包:例如:tcpdump -i ens33 -so -w ./ens33.cap