- 博客(43)
- 收藏
- 关注
原创 BGP基础配置
但是此时使用环回建邻,因为路由器工作机制会导致在建邻完成后,设备发送notification报文报错,重新重复建立连接 所以要修改TTL。所以,nexthop属性为12.0.0.1,而R3无法验算到该地址信息,认为该路由不可。R2将路由传递给R3时,因为同属于相同的AS内部,根据BGP的AS-BY-AS规则而言,此时所有的路径。:让R2传递给R3时,将下一跳属性进行修改,修改为R2本地。要通告的路由量比较大的时候,使用这种方式非常低效。的基础的通告路由的方式。使用环回接口建立IBGP对等体关系。
2025-01-04 13:51:03
346
原创 ospf综合实验
只需要将rip导入ospf中(因为rip下并没有设备只是环回在r12设备上)首先配置r1-r12的ip信息(r5在下面单独配置)现根据题目要求按照区域进行网络划分(如图)ip配置完成后进行区域ospf配置。r5(并需要在r4上配置缺省路由)r12(并开启rip)net配置 缺省路由。
2024-12-31 18:48:00
356
原创 园区网大综合实验
进行 sw1 sw2 sw3 sw4 vlan基本配置。首先按照题目要求划分网络环境(如图所示)在r1 0/0/0接口做nat设置。ip配置 r1 isp。
2024-12-25 21:36:36
256
原创 hcia实验例题
根据题目要求动态路由协议 使用ospf在r3 r4 r5建立邻居关系。在r2路由器配置vlan虚拟网络接口并启动arp广播协议。pc1可以访问3.3.3.0 24网段 而 pc2不行。先根据题目要求配置网络规划(如图所示)pc1和pc2使用DHCP下发地址。在交换机配置vlan需求。
2024-12-19 16:31:08
214
原创 ubuntu的用户使用
是Debian软件包管理器的基础常用于安装、卸载和提供与.deb软件包相关的信息需要注意的是dpkg本身是一个底层的工具,并不具备从远程包仓库下载包以及处理包的依赖关系。apt够简化ubuntu系统上的软件管理过程,其最大优势就是可以自动解决软件的依赖关系·apt是建立在dpkg之上的软件管理工具,但是它不能安装本地的deb文件。安装好系统后默认已经配置好了网络软件仓库,但是在生产环境中一般不允许在网络中直接安装软件。搭建本地软件仓库的方法如下;在登录系统时一般使用在安装系统时建立的普通用户登录。
2024-12-02 21:13:22
538
原创 SHELL脚本中的变量与运算
在编写程序时,通常会遇到被操作对象不固定的情况 我们需要用一串固定的字符来表示不固定的值这就是变量存在的根本意义 变量的实现原理就是内存存储单元的一个符号名称。从变量的作用范围来划分,变量分为函数级变量,环境级变量,用户级变量和系统级变量 函数级变量只在函数内生效通常用local来定义。程序中的所有数在计算机内存中都是以二进制的形式储存的 位运算就是直接对整数在内存中的二进制位进行操作。系统级变量是系统中的永久设定,所有用户都可以使用,系统变量通常被保存到/etc/profile中。变量 即可把变量取消。
2024-12-02 19:21:59
302
原创 shell脚本基础
脚本幻数,即脚本解释器,脚本运行的最优先指令,负责对脚本中其他命令进行解释 程序主题,程序主体通常由命令,执行逻辑控制器和数据组成 注释,脚本中的说明文字,不参与脚本执行,只是对脚本中的代码进行说明。多使用内部命令,如:echo、eval、exec、export、read、shift、exit。通常情况下,成功的命令返回0,而不成功的命令返回非0值。/bin/sh 或 #!脚本中尽量不要用中文注释,防止本机或切换系统环境后中文乱码的困扰。行为良好的UNIX命令,程序和工具都会返回0作为退出码来表示成功。
2024-12-01 14:16:38
368
原创 SHELL脚本中的常用命令
作用是从指定的URL下载文件。wget命令非常稳定,一般即便网络波动也不会导致下载失败,而是不断 尝试重连,直到整个文件下载完毕。linux命令watch是周期性的用来执行某命令,并把某命令执行结果输出到屏幕上。使用watch命令,可以 周期性的监测并输出某命令的执行结果到屏幕上,省得手动一遍一遍运行某命令,提高工作效率。xargs 命令作用是将标准输入数据转换成命令行参数,能够处理管道或者标准输入并将其转换成特定命令 的命令参数。检测站点是否存活 wget -q -T 3 -t 2 --spider。
2024-12-01 12:25:01
409
原创 Linux下的火墙管理及优化
iptables的规则是至上而下的读取方式,遇到与数据包信息匹配的规则后直接采用iptables的规则默认保存在内存中,如果需要永久保存需要把策略以字符的形式保存到/etc/sysconfig/iptables中。它作为一个通用的、抽象的框架,提供一整套的hook函数的管理机制,使得诸如数据包过滤、网络地址转换(NAT)和基于协议类型的连接跟踪等等。iptables服务是用户管理内核空间的iptables的管理工具,通过iptables书写内核空间的iptables策略。
2024-11-27 23:46:08
784
1
原创 SElinux
SELinux 主要由美国国家安全局(NSA)开发,当初开发的目的是为了避免资源的误用传统的访问控制在我们开启权限后,系统进程可以直接访问。在系统SElinux开启后会为服务添加新的功能开关,我们把这个开关叫做sebool。当我们对权限设置不严谨时,这种访问方式就是系统的安全漏洞。在系统SElinux开启后会规定服务使用端口。会对程序本身的不安全功能做限制。会对进程本身部署安全上下文。会对服务使用端口进行限制。查看服务被允许使用的端口。在开启SElinux后。会对文件部署安全上下文。
2024-11-25 21:29:50
977
原创 nfs网络文件系统
NFS(Network File system,网络文件系统)是由SUN公司研制的UNIX表示层协议,它允许网络中的计算机(不同的计算机、不同的操作系统)之间通过TCP/IP网络共享资源,主要在unix系列操作系统上使用。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。autofs这个服务是在客户端的上面,它会持续的检测某个指定的目录,并预先设置当使用到该目录的某个子目录时,将会取得来自服务器端的NFS文件系统资源,并进行自动挂载的操作。
2024-11-25 20:41:35
454
原创 DNS域名解析服务器
为了提高域名服务器的可靠性,DNS域名服务器都把数据复制到几个域名服务器来保存,其中的一个就 是主DNS服务器(Master name server),负责解析至少一个域。3.通常DNS是以UDP这个较快速的数据传输协议来查询的,但是没有查询到完整的信息时,就会再次 以TCP这个协议来重新查询所以启动DNS时,会同时启动TCP以及UDP的port53。当客户设定当前dns服务器为dns解析服务器时,正向解析即为客户提供PRT记录 客户提供域名,dns服务器负责把域名解析成对应IP。
2024-11-25 19:20:29
940
原创 WEB服务器的部署及优化
就是一个公认的公证单位,你可以自行产生一把密钥且制作出必要的证书数据并向CA单位注册, 那么当客户端的浏览器在浏览时,该浏览器会主动向CA单位确认该证书是否为合法注册过,如果 是,那么该次连接才会建立,如果不是,浏览器会发出警告信息,告知用户应避免建立连接。3.HTTP协议工作于B/S架构上,浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务端发送请 求(Request)Web服务端根据接收到的请求数据后,向客户端发送响应信息(Response)/var/run/nginx.pid;
2024-11-17 13:32:08
854
原创 shell 远程连接服务
SSH(Secure Shell Protocol,安全的壳程序协议)它可以通过数据包加密技术将等待传输的数据包加密 后再传输到网络上。SSH有很多功能,它既可以替代Telnet,又可以为FTP、Pop,甚至为PPP提供和一个安全的“通道”。SSH(Secure Shell),安全外壳协议,是一种建立在应用层基础上的安全协议,通过对密码进行加密传 输验证,可以在不安全的网络中对网络服务提供安全地传输环境,实现SSH客户端和SSH服务器的连接, 所以SSH是基于客户端-服务器模式。-o #指定连接参数 #
2024-11-17 10:53:59
959
原创 rhce 延时任务 和定时任务
l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。定时任务执行时如果遇到系统处于关闭状态,那么在开启时crond任务会检测未执行的任务并且立即执行。系统中默认只存在黑名单/etc/cron.deny,写入此文件中的用户会被禁止使用定时任务。系统中默认只存在黑名单/etc/at.deny,写入此文件中的用户会被禁止使用at任务。定时任务信息存放在系统中/var/spool/cron目录中,存放文件和发起人名称一致。
2024-11-13 20:15:51
505
原创 HCIA(ACL)
为解决动态NAT同一时间一个公网IP只能对应一个私网IP的问题,在边界路由器上维护一张源端口号和私网IP地址的映射关系表,因为端口号的取值范围是1-65535,故有65535个,静态NAT和动态NAT最大的区别在于---地址映射表的内容是可变化的,而不是写死的,所以动态NAT不在意一对一的关系,而是实现多对多的转化。访问控制----在路由器的入或者出的接口上,匹配流量,之后产生动作---允许或拒绝。NAT-----网络地址转换,在边界路由器上,进行公有地址和私有地址间的转化。
2024-10-31 18:11:03
578
原创 HCIA(RIP路由协议和OSPF)
交换机加入vid的观念之后 交换机的转发过程:交换机会先记录源数据帧中的源MAC地址与进入接口的映射关系,并且一同查看其VID,随后查看目标MAC地址是否在MAC地址表中存在记录,若存在记录,将比对目标MAC地址对应接口的VID和源MAC地址对应接口的VID是否相同,若相同则直接单播,若不同,则进行泛洪(仅在源MAC地址对应接口的VID的范围内的所有接口进行发送)若接口带宽大于参考带宽,则度量值默认为1,所以在接口带宽大于参考带宽的网络中,可以认为的修改参考带宽。手工汇总------区域汇总;
2024-10-31 18:09:12
372
原创 HCIA(DHCP服务)
在汇总中若包含网络中实际不存在的网段时,可能使数据包有去无回,造成链路资源的浪费(合理的子网划分可以尽量减少路由黑洞),则可以将这些网段进行汇总计算,之后仅编辑汇总过后的网段的静态路由,即可达到减少路由条目提高转发效率的目的。①V1版本为有类别路由协议---不携带子网掩码 V2版本为无类别路由协议---更新时携带子网掩码。①空接口--null0,路由器的一个虚拟接口,如果一条路由被指向noll0接口,则代表将该流量丢弃。:一条不限定目标的路由条目,查表时,若本地路由条目均不匹配,则直接匹配缺省路由。
2024-10-31 18:06:29
1185
原创 HCIA
2.若PC1试图ping通PC3,在已知IP地址的情况下,会优先进行子网掩码的判断,若不在同一个广播域,则封装目标MAC地址为自己的网关,发送至网关处,随后路由器根据目标IP查询本地路由表,IPV4: 32位二进制构成,以点分十进制标识。(1)节点增加设备-----HUB集线器 ---安全 延时 地址 冲突。Telnet---TCP23---- SSH----TCP---22---远程登录协议。是一个典型的C/S(client/server)结构 ------DNS客户端------
2024-10-17 19:12:14
618
原创 【无标题】
print(f"当前进程的id:{os.getpid()},父进程id{os.getppid()},进程名称{self.name}")p = multiprocessing.Process(target=work, name=f"进程{i}", args=())print(f"当前进程的id:{os.getpid()},父进程id{os.getppid()}")print(f"当前进程:{os.getpid()} 已结束")print(f"当前进程:{os.getpid()} 已结束")
2024-09-18 15:33:35
564
原创 网络编程
当我们发送 4000字节的内容 一个数据包上线 1500字节,所以发送内容会分为 3个包,每个包都有一个编号。4.等待客户端连接,客户端连接后会产生一个专门跟客户端通信的套接字。print("客户端已断开连接")s = input("请输入你要发送的信息:")th1 = MyThread("我是线程1号")th2 = MyThread("我是线程2号")s = input("请输入一个字符串")s = input("我:")2.开启线程处理udp信息接收。1.创建tcp的套接字对象。1.创建udp套接字。
2024-09-18 11:47:59
595
原创 列表生成器、生成器函数、装饰器和闭包
(2)闭包使用的场景2,当需要一个函数工厂时,就可以使用闭包。所谓的函数工厂,既可以生产函数也可以修改函数。(1)闭包使用的场景1,当我们想要在函数以外使用函数中的局部变量时,我们可以是使用闭包。找出1~10之间所有偶数,返回一个列表,包含以这个偶数为半径的圆的面积。print(f"已售卖{num}手股票")写除100以内的偶数的列表推导式、列表生成器。①在函数中写一个内部函数,这个内部函数就是闭包。(3)通过创建闭包函数实现函数修改的功能。②闭包函数要使用外部函数的局部变量。3.内部有保存状态的隐变量。
2024-09-18 10:51:04
381
原创 正则表达式
s = r"我今年18岁...\我喜欢6岁那年的夏天,\我的电话号码是18812345678"s = r"我今年18岁...我喜欢6岁那年的夏天,我的电话号码是18812345678"result = re.findall(r"\\", s) # 匹配一个至少有一位的数字。s = "我今年18岁, 我喜欢6岁那年的夏天,我的电话号码是18812345678"s = "我今年18岁, 我喜欢6岁那年的夏天,hello"print("search的结果", result){m,n} 出现m次或者n次[m,n]
2024-09-17 19:36:26
883
原创 异常问题
search_file("/Users/musicbear/imgtest_副本", "1111.jpeg")异常处理可以帮我们抓住程序中的导致崩溃的代码错误,保证程序能够继续征程运行,从而提升代码的健壮性。raise Age200Error("人类的年龄不能超过200岁")1.保证程序的健壮性,即使出现了导致程序的崩溃的错误,只要主动抓捕的异常,仍旧可以保证程序正常运行。num1 = int(input("请输入一个数字1:"))num2 = int(input("请输入一个数字2:"))
2024-09-17 15:30:47
997
原创 面向对象的三大基本特征之二继承 和 面向对象的三大基本特征之三多态
python中不存在函数重载,但是在面向对象中可以通过@Property装饰间接的实现函数的重载。私有属性:可以被继承到,但是我们无法直接使用,只能通过父类定义的公有方法来进行操作。函数的重写:当实例调用的函数在父类和子类中都存在,优先调用自己的。继承可以帮助我们高效的重复利用已经写好的代码,让我无需写重复的代码。函数重写,可以在内部调用父类的同名函数。子类的构造函数必须调用父类的构造函数。被继承的类可以称作:超类,父类,基类。函数的重载:同名不同参函数。print("汪")print("喵")
2024-09-13 22:45:45
364
原创 【无标题】
(2)面向对象: 视角不再是解决某问题,而是包含了多个问题的系统,这个系统我们称之为对象 函数和变量,在类视角中,就是方法和属性。③当实例被str()转为字符串时,触发__str__函数,转化的结果就是__str__的返回值。(1)提升代码可读性,只暴露一些关键的方法和属性,供人使用,使用者无需关心的方法和属性全部隐藏起来。②受保护的属性:变量名前面有一个_就是受保护的属性,在类外部不建议嗲用,可以被继承。3、实例方法 是每一个实例都拥有的方法,实例方法中可以随意的操作实例属性。
2024-09-13 22:28:11
682
原创 hash模块和学生登陆系统
encrypt_pwd = hashlib.md5(password.encode()).hexdigest()判断用户的账户是否存在于文件中。confirm = input("请再次输入密码进行确认:")account = input("请输入注册的用户名:")password = input("请输入密码:")print("该账户已存在,请重新注册")account = input("请输入你的账户:")passwd = input("请输入你的密码")print("前后密码不一致,请重新注册")
2024-09-13 21:58:20
332
原创 序列化、反序列化和requests模块
message = {'id':'18039291010',"nickname":"猴","头像":"http://123.png"}print(f"开始获取第{count}个视频页面")dc = {'name': '张三', 'age': 18}print(f"开始下载第{count}个视频")爬虫的本质即使模拟人类上网的行为从网页中获取数据。print("页面数据获取成功")print("开始下载b站首页数据")print(f"下载成功")print("首页数据下载完毕")1.拉回整个网页的数据。
2024-09-13 21:55:16
743
原创 文件流操作
file:/C:/Users/Shinelon/Desktop/python%20课程/1.txtread_file = open("头像1.png", "rb")copy_dir("/Users/musicbear/imgtest", "/Users/musicbear/imgtest_副本")write_file = open("头像1的副本.png","wb")read_file = open("头像1.png","rb")12,读取1.txt的所有内容,然后读取到的内容写到2.txt当中。
2024-09-09 21:44:28
1054
原创 sys模块、os.path模块
1, ①绝对路径:从根目录开始(在linux系统中根目录是 / 在windows中C:/ D:/ E:/...)描述一个文件的位置信息。print(os.path.abspath(os.curdir))通过相对路径返回一个绝对路径。3,是python垃圾回收机制(计数回收法为主)使用到的一个数据引用次数。print(os.getcwd()) 当前工作目录的绝对路径。print(os.curdir) 返回当前工作目录的相对路径。4,判断文件是否是目录文件。5,判断文件是否是普通文件。
2024-09-09 18:52:49
976
原创 os 模块
(并发) ② 多进程:多个cpu同时处理多个事情。7, 执行终端/命令行中的所有命令,操作系统中的所有命令都可以在system函数中以字符串的形式执行。在linux中os.sep = / 在windows中os.sep = \\。3,cpu的数量cpu_count,常用于决定同时可以使用几个cpu进行多进程编程。print(os.getppid())谁把当前程序运行起来 谁就是它的parent。print(os.getcwd())获取的是绝对路径。print(os.curdir)获取的相对路径。
2024-09-09 18:17:14
315
原创 Math模块、time模块和包和模块
4、\r 表示回到当前行的行首,然后后面书写的内容会覆盖掉以前的行内容。练习:做一个电子表,将当前时间显示在console控制台中。1、获取一个从1970年1月1号 0:0:0到现在的秒数。1、如果要表示一个常量,每一个字母都要大写。2、strftime 将时间对象转为字符串。3、strptime 将字符串转为事件对象。print(f"当前时间:{
2024-09-09 17:12:05
417
原创 字符串
1, """ """ 1.可以做文档和函数的主旨 2.支持换行常用于做命令行程序的才功能 menu = "1\n2\n3\n" print(menu)5,①startswith("xx") 判断字符串是否以xx开头 引号前面如果是r,表示原意输出 print(r"\r\n")"" 和 '' 功能上完全等价 在""/'' 中可一直直接使用 ''/""无需转义符。print(f"{s}是一个图片文件")s = s.replace(",我叫张三", "")
2024-09-09 16:48:15
793
原创 random 模块
要用random.random()生成一个n-m之间随机区间:n + (m - n)* random.random()3、random.randrange在起点和终点的范围内按照步长来进行随机。2、random.choice在一个序列中随机的选择一个元素。1、返回[0-1)之间的随机数。
2024-09-06 20:40:17
258
原创 匿名函数、递归函数
自己调用自己的函数就叫递归函数递归本质分治思想,它的思路通常跟我们正常思维不一样递归必须具备两个条件①自己调用自己②要有终止递归的条件。3、map函数,他会将传入的序列中的每一个元素通过一个lambda函数进行修改。列表中的每一个元素都是圆的半径,请生成一个新列表保存,每一个半径对应的面积。4、filter函数,他会根据lambda函数过滤条件对序列进行筛选。①语法结构:lambda:参数1,参数2....参数n:一行代码。2、生成一个只有质数的新列表。2、求第n项斐波那契数列的值。2、lambda函数。
2024-09-06 20:23:41
755
原创 函数返回值、值传递、引用传递、局部变量和全局变量
1、值传递:所有的不可变数据类型都是值传递(number(int,float),str,bool,tuple)所以使用高内聚还是高耦合的代码取决于,你开发的系统他的追求是高性能,易于开发。1、python的返回值可以返回单个值,也可以返回多个值。内聚性:内聚性越高表示代码对外界以来越低,耦合性越低,传参数的时候,实参将自己 副本 传递到函数中参与运算。传参数的时候,实参将自己传递到函数中参与运算。局部变量只能在函数中使用,出了函数无法使用。本质上返回多个值,是返回一个元组。
2024-09-06 19:41:10
389
原创 函数--参数
def add(*args, a, b, c):此时a,b,c出现在可变参数之后,他们不再是位置参数而是 命名参数。调用具有默认值参数的函数时,可以省略默认值参数的传参,如果觉得默认值参数不好用,我们可以主动传参替换掉默认值。默认值参数的可以当做是一个全局的变量,每调用一次都会修改原有的内容,下一次调用在修改后结果上继续。所以默认值参数,虽然不禁止参数数据类型为可变,但是建议默认值参数的数据类型为不可变。参数:位置参数, 默认值参数,可变参数,关键字参数,命名参数,默认值参数 在形参列中提前给参数赋值。
2024-09-06 15:44:51
390
原创 元组 、集合和字典容器
dc = {'姓名':'lyh','年龄':18,'身高':183,'体重':183}集合中存储多个、没有顺序的、不能重复的、可以是不同类型的多个数据!1、元组是一种特殊的列表,他是一旦复制就不可以变化的列。dc.setdefault('姓名1',"李四")④"修改"元组:修改的只是元组中的可变数据。dc.pop('姓名') # 删除指定的键。print(dc.get('姓名'))dc['哈哈'] = 'hehe'④修改数据(集合中无法直接修改)dc['姓名'] = "张三"print(dc['姓名'])
2024-09-05 23:21:53
360
原创 容器一 列表
-10,-9,-8,-7,-6,-5,-4,-3,-2,-1] tuple 负数时。当step是 正数 时,缺省的start就是 左端点,缺省的end就是 右端点。当step是 负数 时,缺省的start就是 右端点,缺省的end就是 左端点。所谓切片就是将序列(list,str,tuple)中指定的子序列提取出来。第②种:pop 根据序号删除元素,如果序号缺省,默认删除最后一个元素。6、查找 :返回元素的序号,如果元素不存在,抛出异常。第③种:extend 将参数列表中的元素扩充到ls中。
2024-09-05 17:58:45
339
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人