利用Python脚本批量登录交换机教程:轻松掌握网络设备管理技巧

听说99%的网工都来这里充电

利用Python脚本批量登录交换机教程:轻松掌握网络设备管理技巧

之前分享过利用python脚本登录一台交换机,

有同学说希望出个批量的。今天,它来了!

看好喔!好好学!

说不定,老板就给你加鸡腿了!

一、实验环境搭建

按照下图,在 ensp 模拟器上搭建环境。为演示批量修改设备,龙哥在此实验 4 台路由器。若你电脑性能足够好,也可多用几台路由器。之后标注好 IP 地址。

2、物理电脑(即我台式电脑)与ensp做好桥接:

给每台路由器进行初始化配置,首先要配置修改设备的默认名称;接着要配置管理 IP 地址;然后要配置 SSH 以及登录的用户名和密码。

以 R2 为例,对于小白以及其他设备,可参考 R2 的配置。修改设备名,同时配置 IP 地址。

[Huawei]SYS R2

[R2]

[R2]int g0/0/0

在 R2 的 GigabitEthernet0/0/0 接口上进行配置,设置 IP 地址为 192.168.56.20 ,子网掩码为 24 。

[R2-GigabitEthernet0/0/0]

[R2-GigabitEthernet0/0/0]qu

[R2]

以R2为例,配置SSH,其他设备参考如下即可:

[R2]rsa local-key-pair create

The key name will be: Host

% RSA keys defined for Host already exist.





如果密钥模数大于 512 。

需要花费几分钟的时间。

Input the bits inthe modulus 的默认值为 512,而这里是 2048。

Generating keys...

.......+++

..............+++

.....++++++++

...............++++++++

[R2]user-interface  vty  0 4

[R2-ui-vty0-4]使用的认证模式为 aaa。

[R2-ui-vty0-4] 支持 inbound 的 ssh 协议。



[R2]aaa

[R2-aaa]local密码 cipher 伴随着 along123 一起出现,同时还有 along 这个密码。

[R2-aaa]local沿着特权级别 15 前行。

[R2-aaa]local-user along service-type ssh



[R2]

[R2]stelnet server enable 

[R2]

上述配置完成后,建议首先使用 secureCRT 登录各个设备,以验证网络连通性是否正常,同时验证 ssh 连通性是否良好。

这里以R1为例,验证一下。测试时,你们可以每台都验证一下。

这样验证有好处。如果待会我们写的 python 脚本有问题,那么就与网络和 ssh 配置无关了,这样便于后续进行排错。

二、准备好批量IP清单

1、这里我先创建4台路由器管理ip的清单,用txt创建:

注意!这个 ip 清单需放置于与你即将创建的 python 脚本相同的目录中。例如,我即将创建一个名为 router-lab.py 的 python 脚本。

三、编写python脚本

import paramiko

import time

from getpass import getpass



user = input('Username:')

pw = getpass('password:')



f = open("ip-list.txt","r")

for line in f.readlines():

      ip = line.strip()

ssh 被设定为 paramiko.SSHClient() 这个对象。

ssh 设定缺失主机密钥策略为 paramiko.AutoAddPolicy() 。

使用 ssh 进行连接,连接的主机名为 ip,用户名是 user,密码是 pw。

      print("恭喜您成功登录ensp的路由器!", ip)

      command =  ssh.invoke_shell()

      command.send("system\n")

      command.send("vlan 20\n")

      command.send("quit\n")

      command.send("ospf\n")

      command.send("area 0\n")

      command.send(网络地址为 192.168.56.0 ,子网掩码为 0.0.0.255 。)

      command.send("quit\n")

      time.sleep(2)

output 接收到来自 command 的数据,数据大小为 65535 。

      print(output.decode("ascii"))





ssh.close()

注意:python写for循环时,一定要注意缩进格式。

代码解释:

f = open("ip-list.txt","r")

定义一个文件对象为 f,用 r 表示,以只读的形式打开 ip-list.txt 文件,此文件就是刚刚我们创建的 ip 清单,也就是你要批量管理的 ip 地址。

for line in f.readlines():

ip = line.strip()

利用 for 循环语句,f.readlines 能够逐行读取 f 文件对象,然后将读取到的内容赋给 line。

我理解 line.strip()的作用是移除空格或换行符,接着将其复制给 ip。

其他代码这里不再解释,可以参考往期的:

四、执行脚本与验证

1、执行前的确认

从上述代码能得知,我们的目标是批量为设备创建 vlan20 ,同时创建 ospf 协议,并将管理网段宣告到 area 0 中。

所以,在还未执行之前,我们能够登录设备进行查看。经查看,确实不存在 vlan 20 以及与 ospf 相关的配置。

2、接下来,我们开始执行代码:

用编辑器执行也可以或双击python脚本也行

然后在弹出的窗口输入用户名和密码即可:

然后观察运行情况:

可知,我们可以通过登录路由器来查看配置,确认其是否生效。具体来说,我们可以再次通过登录路由器来进行检查。

上述这些截图中,我们可以知道,确实生效了。

怎么样?你学“废”了吗?不要再说 网工很忙,没时间泡妞啦!

你可能想看:
« 上一篇
下一篇 »

相关推荐

python爬虫教程PDF,Python爬虫书PDF

2026年09月02日

36阅读

外国教程python,python编程教学视频

2026年09月02日

29阅读

python简明教程沈洁元,python详细基础教程

2026年09月02日

25阅读

python库包教程,python 包

2026年09月02日

30阅读

python教程大全集,python教程600集

2026年09月02日

29阅读

python入门教程完整版,python零基础入门全套教程视频

2026年09月02日

26阅读