简介这是一份GNS3网络模拟器完整安装及使用教程面向网络工程学习者、思科认证备考者及需要搭建虚拟实验环境的运维人员旨在解决模拟器部署、镜像导入和外部工具联调中的常见问题。教程以GNS3-2.2.7版本为主线系统讲解了主程序安装与配置、GNS3 VM虚拟机导入、VMware Workstation集成等基础环节并重点说明如何关联Wireshark进行报文抓取、如何借助xShell实现终端管理以及如何通过导入Dynamips和IOU镜像来模拟L2/L3交换机与C1700至C7200系列路由器。同时内容还介绍了GNS3整合的Dynamips、Dynagen、Pemu、Winpcap等核心组件并提及对VPCS、QEMU、Docker等多种模拟方式的支持帮助读者理解各组件的作用与适用场景。资源为单个PDF文档大小约2.09MB已有733人学习。全文以图文步骤形式组织适合零基础按图操作也可作为日常配置的查询手册收藏后即可按图索骥搭建完整的实验环境。1. 模拟器选型与GNS3的定位为什么先学它再学VM和Wireshark做网络实验的人应该都遇到过这种尴尬在物理机上搭了三台虚拟机想让它们互联互通结果折腾半天发现虚拟交换机根本不支持抓包路由器该有的协议一个都跑不了。VMware和VirtualBox这类虚拟机擅长的是“跑操作系统”不是“模拟网络设备”。而GNS3不一样它是个网络仿真器专门把思科IOS、IOU镜像、甚至Linux设备拉进同一张拓扑图里让路由交换协议真实运行。很多人第一次打开GNS3看到界面会误以为它和VM抢饭碗其实两件事的侧重点完全不同。GNS3负责把路由器、交换机、防火墙这些网络设备“画”出来并跑通协议VM负责给需要更高系统等级的节点提供运行环境Wireshark负责把链路上的报文抓下来给你看xShell负责让你能像操作真机一样操作设备。这篇把四条线串在一起讲适合正要搭第一套网络实验环境、又不想被一堆文档淹没的人。2. GNS3服务端与客户端先分清角色再动手装2.1 GNS3为什么拆成服务端和客户端两部分第一次装GNS3的人最容易犯的错就是只装了一个界面程序就开始拖设备结果发现路由器启动不了。GNS3的架构从设计上就分两头服务端叫gns3-server负责真正调度设备镜像、管理QEMU和Docker进程客户端叫gns3-gui负责画拓扑、发指令给服务端。默认安装会在本机同时拉起这两个进程但你要明白一件事服务端才是干活的人客户端只是个遥控器。这个拆分带来一个实际好处——服务端可以跑在远程服务器上客户端装在你自己的笔记本上。实验室里一台高性能服务器装服务端大家各连各的客户端拓扑互不干扰。不过个人学习阶段我建议先用单机模式跑通不要一上来就搞分布式否则网络配置上的坑会盖过实验本身。2.2 用包管理工具安装GNS3的最小命令集以Ubuntu 22.04为例GNS3在官方源里就有不需要去第三方网站碰运气。先更新索引再安装这样拿到的版本可被apt解决依赖关系sudo apt update sudo apt install gns3 gns3-server gns3-gui wireshark这里把Wireshark一起装了省得后面抓包时再配一遍权限。安装过程中dpkg会问你要不要允许普通用户运行Wireshark抓包选“是”。装完还要把当前用户加进两个组否则后面GNS3调用Wireshark和QEMU会各种报权限错sudo usermod -aG wireshark $USER sudo usermod -aG kvm $USER sudo usermod -aG libvirt $USER加完组要重新登录一次才生效。这一步经常有人跳过然后遇到“cannot open dumpcap”之类的玄学问题其实根子就在这里。如果你想在GNS3里跑VM虚拟机节点还要再装一个组件sudo apt install qemu-kvm libvirt-daemon-system2.3 首次启动向导IP、端口和权限的三个默认值装完后在终端输入gns3启动第一次会弹配置向导。新手全部点“下一步”就能跑但有几个选项你最好看一眼不然以后会绕远路。向导里那个“Server configuration”页面默认是“Run GNS3 on this computer”本地模式没问题。如果你在服务器上部署过gns3-server这里选“Connect to GNS3 remote server”填IP和端口3080。本地跑的话默认监听地址是127.0.0.1端口3080不要乱改。改了端口之后客户端连不上是最常见的事故现场之一。向导最后一步会要求指定“Router template”存放目录默认在~/.config/GNS3/3.x下。建议单独建一个和项目分离的镜像目录比如~/gns3-images这样清理项目时不会误删IOS镜像。启动后界面里的“Preferences”都要从图形界面配命令行改配置文件的做法不推荐格式太容易出错。3. 从镜像到拓扑GNS3里搭出第一张能抓包的网络图3.1 镜像的选择IOU、IOS和QEMU镜像到底有什么差异GNS3支持的设备类型很多新手最常接触的是三类IOS镜像跑在老式路由器模拟器上IOU镜像是思科官方为虚拟化设计的轻量版本QEMU镜像则用来跑VM节点和较新型号的设备。三者启动方式不同资源占用差异很大。我的建议是优先用IOU。IOU镜像启动速度最快一个二层交换机IOU内存占用才几十MB比IOS动辄一台占256MB内存划算太多了。GNS3界面的“File → Import appliance”可以直接导入从官方市场下载的.7z或.ios文件。注意不要随便从网盘拉一个IOS镜像就导入来历不明的镜像经常被植入后门或者被修改过寄存器跳转越到后面越折磨人。3.2 添加第一台路由器模板参数的空闲值不要乱抄导入镜像后用“Add a template”创建新设备模板。关键参数有两个内存大小和“idle PC”值。IOU路由器的内存给512MB足够跑OSPF、EIGRP都没问题。空闲值这个东西经常被新手抄网上现成数值结果路由器的CPU占用率全程100%拓扑卡到没法操作。正确的做法是把镜像停掉点工具栏的“Idle PC finder”它会自己跑一段探测然后给出一串候选值选其中带星号的。这个探测需要一两分钟别嫌慢。路由器接入拓扑后双击它就能启动控制台。第一个要敲的命令是show version确认IOS版本和你预想的一致然后conf t进入配置模式给接口配IPenable configure terminal interface fastEthernet 0/0 ip address 10.0.0.1 255.255.255.0 no shutdown end write memory注意IOU设备默认所有接口都是shutdown状态忘了no shutdown是新手翻车重灾区后面所有ping不通的问题里至少一半是这个原因。3.3 把VM虚拟机节点拉进拓扑与VMware、VirtualBox的联动方式GNS3里要跑一台真实的Linux或者Windows作为网络终端可以在拓扑里添加一个“VirtualBox VM”或“VMware VM”节点。两者都在左侧设备栏的“End Devices”分类下。GNS3本身不负责创建虚拟机它只负责调度已经存在于本机VM软件里的虚拟机镜像。先说VirtualBox的联动。在GNS3的Preferences里选“VirtualBox”指定VirtualBox的可执行文件路径然后“Refresh VMs”GNS3会列出VirtualBox里已注册的虚拟机。选择你想要的那台它就会出现在设备模板里。VMware的配置逻辑一样但有个常见坑GNS3要求VirtualBox的WebService端口以及VMware的高级配置里网络适配器必须设置成“仅主机模式host-only”。如果虚拟机网卡是NAT或桥接模式GNS3会在启动节点时报警告。VMware用户还需要保证VNC开启否则虽然能启动但接不进控制台。3.4 物理链路和“云”节点让真实主机和模拟拓扑互通到这里你已经有了一台IOU路由器和一台VM虚拟机把它们拖进拓扑页用工具栏的“Add a Link”连起来。连接时GNS3会问用哪个接口选“FastEthernet”就够。链路连线要选中节点间的空线段再右键“Start”否则即使节点都启动了链路也是断的。想要让真实主机直接参与实验用“Cloud”节点。把Cloud当成一个抽象层绑定到本机物理网卡、无线网卡或者回环接口然后Cloud再连到路由器物理网卡的机器就能和模拟设备互通。这在做跨机器实验时非常方便抓包也能抓到真实网卡流量。4. 抓包和远程终端Wireshark与xShell的接入姿势4.1 Wireshark在GNS3里的两种抓包方式GNS3和Wireshark集成得算顺手但抓包前要分清两种抓包对象。一种是抓链路流量在拓扑页右键某条链路选“Start capture”选好链路和端口GNS3会自动调用Wireshark开始实时抓。另一种是抓特定接口的流量需要提前在设备模板上开启接口的“Allow capturing”才能在该接口上右键捕获。链路抓包启动后Wireshark弹出来的瞬间会有一小段无流量窗口这不是卡死是链路刚好没有报文。如果确实没有流量检查两点线缆是否启动接口是否no shutdown。Wireshark默认过滤器会显示所有协议不要上来就加tcp.port 80这种太精确的过滤条件先看整体流量里有没有ARP和ICMP。4.2 从console到SSHxShell连接GNS3设备的两种路径xShell连接GNS3里的设备一般有两类场景。第一种场景是连接IOU路由器的控制台口GNS3里每个设备节点右键有“Console”选项默认通过本地回环地址加一个随机端口映射到设备。想用xShell连它需要在“Preferences → Console applications”里把Telnet命令替换成xShell。GNS3默认用系统自带telnet很多人后来换用xShell后忘了改这里的配置右键Console时弹出的还是老界面。第二种场景是设备配置完SSH后通过虚拟网络的IP地址直连。比如路由器f0/0接口配了10.0.0.1你可以在路由器的物理节点集成一台虚拟主机再在虚拟主机上用xShell SSH到10.0.0.1。这种玩法需要先给路由器配好SSH服务密钥生成和VTY线路配置是两处经常漏掉VTY线路那一半。4.3 xShell个人免费版的安装与默认配置的取舍xShell的个人免费版从官方渠道下载安装过程全程下一步就行。装完建议做两处调整把默认字体从默认的Terminal字体改成Consolas 11pt直接从“工具 → 选项 → 外观”里改把会话的“编码”改成UTF-8否则设备上显示的中文会乱码。免费版和专业版的差别主要在会话管理数量和RDP转发这些地方日常连十台设备做实验免费版完全够用。xShell还有个优势是支持自定义快捷键把“复制”和“粘贴”改成CtrlC和CtrlV以后在路由器上敲配置明显比SecureCRT顺手。5. GNS3连接不上虚拟机与抓包异常的排查手记5.1 GNS3提示failed to connect to remote vm根本无法启动节点现象点击启动VM节点时GNS3客户端报failed to connect to remote vm com.sun.jdi.connect.spi.closedconnectionexcep节点直接变红。原因这个报错看起来很像Java虚拟机通信错误实际场景里有两种较常见的情况。一是GNS3客户端配置的远程服务器IP没有对准VM所在主机的IP二是Windows防火墙拦了服务端和客户端之间的通信端口。很多人改了配置文件也没用因为Windows防火墙默认拦截了VMware和VirtualBox的进程外发请求。解决先确认GNS3的“Preferences → Server”里填的IP是本机VM宿主机的内网IP而不是127.0.0.1。再检查防火墙入站规则允许VMware或VirtualBox进程的TCP入站。VNC端口段也要放行默认配置里GNS3使用的VNC端口段通常在5900-5910左右。5.2 Wireshark抓了半天只有ARP请求没有应答现象拓扑里两台路由器之间连了链路抓包界面里只有持续的ARP请求请求目标MAC填的全是ff:ff:ff:ff:ff:ff但没有回包。原因路由器接口的IP配置了但接口协议状态是down。最常见的触发原因是接口没有被no shutdown其次是路由器的VLAN配置把接口划错了导致ARP请求发不出去。解决登录路由器控制台执行show ip interface brief看看接口状态是不是up/up。如果是administratively down进接口敲no shutdown如果是up/down说明物理层没通检查GNS3连线的两端是否连到了正确接口。每次改完配置后在GNS3里右键链路选“Restart”再重新抓包。5.3 用xShell连接IOU设备的console口总是提示拒绝连接现象在GNS3里右键设备选择“Console”xShell弹出来之后提示connection refused或者直接没有反应。原因GNS3的设备控制台是通过本地网络隧道转发的实际上监听在本机的本地回环地址加随机端口上。如果GNS3的“Console applications”设置里把命令写成了直接SSH到设备IP而不是写命令行参数去解析本地回环地址就会找不到正确的端口。解决正确写法是把GNS3的Console命令模板设为调用xShell。具体格式在各版本下略有差异保持默认模板再改xShell路径最稳。在“Preferences → Console applications”里找到Telnet那一栏把命令换成xShell安装目录下的可执行文件后面跟不跟参数要看版本提示。配置完以后重新启动GNS3客户端再试一次。5.4 VM虚拟机启动后控制台黑屏或界面假死现象VM节点能启动但VNC控制台黑屏拖拽鼠标也没反应。原因多数情况下是VM虚拟机内部的显示驱动和VNC兼容性不好。比如VMware虚拟机默认开启了3D加速GNS3的VNC图形通道不支持3D。解决在VirtualBox或VMware的虚拟机显示设置里关闭3D加速显存降低到VRAM 16MB。再检查GNS3的VM模板参数KVM和VirtualBox混合使用常出这种兼容问题统一到同一种虚拟化后端能少踩一半的坑。6. 进阶验证用两台路由器和主机验证数据转发行为按标题里的场景“两个路由器分别连接主机然后分析IP数据转发报文和ARP协议”我把验证方案写成一个可复现的小实验。拓扑设计两台上层IOU路由器命名为R1和R2R1的f0/0接主机AR2的f0/0接主机BR1的f0/1接R2的f0/0两端网段分别设为10.0.0.0/24和192.168.0.0/24中间互联网段用10.0.1.0/30。启动全部节点把主机A的网关指向10.0.0.1主机B的网关指向192.168.0.1。在主机A上ping 192.168.0.2然后在R1和R2之间的链路上抓包。你会看到两次ARP第一次是主机A请求网关10.0.0.1的MAC第二次是R1请求R2的f0/1接口IP的MAC第三次出现在R2请求网关192.168.0.1的MAC。每次ARP只发生在广播域内跨网段时的ARP请求不会被转发到另一边这就是三层转发最直观的证明。Wireshark里把过滤条件设为arp你还能观察到报文的opcode字段请求为1应答为2源MAC从主机网卡逐步变为路由器接口的MAC。这个现象验证了“帧以MAC寻址、数据包以IP寻址”的本质区别。配置过程中我给几条实测教训一是所有设备的接口必须no shutdown二是GNS3里的链路连接两端接口不能接错成同网段路由器接口三是Wireshark抓链路时要选中正确的线路方向抓反了可能只看到单向流量。我的习惯是每搭完一次拓扑就重命名链路把两端设备名和接口写进去比如“R1_f0/1_to_R2_f0/0”这样排错时不用一遍遍猜哪条线是连哪的。这算是个笨办法但对所有仿真环境都适用希望帮到你。本文还有配套的精品资源点击获取
企业数字化 ERP 产品动态
相关推荐
FPGA学习路线十年经验:从Verilog到系统设计的四个阶段 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:58:29
如何打造AI绘图助手:GPT Image Playground Agent多轮对话模式全解析 如何打造AI绘图助手:GPT Image Playground Agent多轮对话模式全解析 【免费下载链接】gpt_image_playground 基于 OpenAI gpt-image-2.5 API 的图片生成与编辑工具 项目地址: https://gitcode.com/gh_mirrors/gp/gpt_image_playground
GPT Image Playground … · 2026/9/25 1:58:29
pip不是内部或外部命令?一文彻底搞懂PATH环境变量配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:58:23
urql populateExchange 深度指南:用 @populate 指令自动填充 Mutation 查询字段 前端 【免费下载链接】urql The highly customizable and versatile GraphQL client with which you add on features like normalized caching as you grow. 项目地址: https://gitcode.com/gh_mirrors/ur/urql 点击查看 免费下载 populateExchange 是 urql 生态中… · 2026/9/25 3:32:21
全域智能管控平台权限管理:RBAC模型落地与安全管控实践 聊到权限管理,很多人第一反应就是"给谁开通什么功能",似乎建个用户列表再打个勾就完事了。但真正做过安防平台、物联网管控平台或者企业内部中台的人都会明白,权限管理从来不是界面交互问题,而是整个系统的安全底座。尤… · 2026/9/25 3:32:21
SSM+MySQL轻型卡车零部件销售平台:从架构设计到部署避坑指南 简介:这是一份基于Java SSM框架与MySQL数据库的轻型卡车零部件销售平台项目资料包,主要面向正在完成毕业设计或课程设计的计算机专业学生,以及希望熟悉SSM单体项目完整开发流程的Java学习者。平台实现了配件分类展示、订单管理、检修信息登记… · 2026/9/25 3:32:21
国密nginx搭建全攻略:从GmSSL编译到SM2双证书部署 最近几年做政企项目、金融类系统的朋友,基本都会碰到同一个需求:客户要求网站全链路支持国密算法,浏览器访问不再走传统的RSA体系,而是用SM2做密钥协商、SM3做摘要、SM4做数据加密。这时候你的第一反应大概率是“把nginx的ssl证书… · 2026/9/25 3:32:15
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37