GNS3 实战:从零搭建 VPCS + 交换机 + NAT 上网实验拓扑(附环境排错全记录)

GNS3 实战:从零搭建 VPCS + 交换机 + NAT 上网实验拓扑(附环境排错全记录)

本文记录在 Windows 版 GNS3 2.2.61 上搭建「VPCS 主机互连 + NAT 访问外网」实验拓扑的完整过程,包含 VPCS/Dynamips/uBridge 路径缺失、NAT 接口报错等典型坑的修复方法,适合刚装好 GNS3 却跑不起实验的读者。

背景

GNS3 装好后,不装任何路由器镜像也可以做基础网络实验:用内置的 VPCS (轻量虚拟 PC)+ 以太网交换机 + NAT 节点,就能练习 IP 配置、ping 测试、验证主机出网。但全新安装的 GNS3 常常连 VPCS 都启动不了,本文先把实验搭起来,再逐一复盘踩过的坑。

最终拓扑:

复制代码
                 NAT1(绑定物理网卡)
                       |
                    Ethernet2
   PC1 ──Ethernet0─[ SW1 ]─Ethernet1── PC2
192.168.110.231/24        192.168.110.232/24

一、创建项目与节点

新建项目 lab-basic-nat,拖入 4 个节点(均为 GNS3 内置模板,无需额外镜像):

节点 模板 作用
PC1 / PC2 VPCS 虚拟主机,支持静态 IP / DHCP / ping
SW1 Ethernet switch 8 口二层交换机
NAT1 NAT 桥接到宿主机物理网卡,提供出网通道

连线关系:

  • PC1 Ethernet0 → SW1 Ethernet0
  • PC2 Ethernet0 → SW1 Ethernet1
  • NAT1 nat0 → SW1 Ethernet2

二、配置 IP 并验证连通性

打开 PC1 控制台(VPCS 是 telnet 控制台),配置静态地址:

bash 复制代码
# PC1
ip 192.168.110.231/24 192.168.110.1
save

# PC2
ip 192.168.110.232/24 192.168.110.1
save

验证三层结果:

bash 复制代码
PC1> ping 192.168.110.232     # 主机互连(经 SW1)
84 bytes from 192.168.110.232 icmp_seq=1 ttl=64 time=0.776 ms

PC1> ping 192.168.110.1       # 到达真实网络网关(经 NAT1 桥接)
84 bytes from 192.168.110.1 icmp_seq=1 ttl=64 time=6.862 ms

PC1> ping 223.5.5.5           # 访问公网
84 bytes from 223.5.5.5 icmp_seq=1 ttl=53 time=9.809 ms

三条全通,实验目标达成。

提示:VPCS 也支持 ip dhcp 自动获取地址------前提是 NAT 桥接的那个真实网络里有 DHCP 服务且允许新设备接入。本次环境 DHCP 未分配到地址(可能有准入控制),故改用静态 IP。

三、环境排错全记录(重点)

全新安装的 GNS3 很可能一个节点都起不来,以下是本次实际遇到并解决的 4 个问题。

1. No path to a VPCS executable has been set

server 不知道 vpcs.exe 在哪。编辑 %APPDATA%\GNS3\2.2\gns3_server.ini 补上模块配置,注意 section 名必须是 [VPCS] / [Dynamips] ,写在 [Server] 下无效:

ini 复制代码
[VPCS]
vpcs_path = D:\GNS3\vpcs\vpcs.exe

[Dynamips]
dynamips_path = D:\GNS3\dynamips\dynamips.exe

改完重启 gns3server 生效。同理,Could not find Dynamips(内置交换机依赖 Dynamips)也是这个问题。

2. Could not determine uBridge version

uBridge 是 GNS3 二层转发的核心进程,所有以太网链路(包括 VPCS 互连)都经过它。手动执行 ubridge.exe -v 发现直接闪退,退出码 -10737415150xC0000135,DLL 缺失)。它缺两个依赖:

  • cyggcc_s-1.dll:从 GNS3\cpulimit\ 目录复制一份到 GNS3\ubridge\ 即可
  • 32 位 wpcap.dll / Packet.dll:ubridge 是 32 位程序,需要 C:\Windows\SysWOW64\ 下的 32 位 WinPcap 库。系统只装了 64 位,重装 WinPcap 4.1.3WinPcap_4_1_3.exe /S 静默安装)补齐

修复后 ubridge.exe -v 正常输出 ubridge version 0.9.16

3. NAT interface vmnet8 is missing

NAT 节点默认绑定 VMware 的 vmnet8 虚拟网卡,没装 VMware 就报这个错。在 gns3_server.ini[Server] 段指定一块真实网卡:

ini 复制代码
[Server]
default_nat_interface = 以太网 2

接口名必须与 ipconfig 里看到的名称一致(支持中文)。注意 ini 文件必须保存为 UTF-8 编码,GNS3 用 utf-8 解析,GBK 保存中文会导致 server 启动直接崩溃。

4. 重启 server 后 API 401

如果 GUI 以 --local 模式拉起 server,localhost 连接免认证;手动重启时记得带上相同参数,并把 ini 里的 auth 置为 False(仅限本机使用场景):

powershell 复制代码
Stop-Process -Name gns3server -Force
Start-Process "D:\GNS3\gns3server.exe" -ArgumentList '--local','--config','C:\Users\Administrator\AppData\Roaming\GNS3\2.2\gns3_server.ini'

小结

  • 内置模板(VPCS / Ethernet switch / NAT)足够完成基础连通性实验,零镜像成本
  • VPCS 起不来 → 检查 ini 的 [VPCS] section 路径;交换机加不了 → 检查 [Dynamips]
  • 一切以太网链路都依赖 uBridge,它坏了所有实验都跑不通;32 位程序需要 SysWOW64 里的 wpcap.dll
  • NAT 节点本质是桥接宿主机网卡,default_nat_interface 指向能上网的那块物理网卡即可
  • 改 ini 注意两点:UTF-8 编码、键要放对 section
相关推荐
basketball61613 小时前
软考中级网络工程师 第6章 网络安全 备考总结
大数据·网络·web安全·网络工程师·软考
basketball6161 天前
软考中级网络工程师 第4章 无线通信网 备考总结
linux·服务器·网络·网络工程师·软考
代码AC不AC2 天前
【Linux】NAT与代理
linux·nat·代理
basketball6162 天前
软考中级网络工程师 第1章 计算机网络概论 备考总结
网络工程师·软考
阿拉斯攀登1 个月前
NAT 穿透详解:STUN / TURN / ICE
运维·服务器·网络·webrtc·nat
星恒讯工业路由器1 个月前
公网IP、NAT、端口映射:外网访问家里的“通关攻略”
网络·智能路由器·信息与通信·nat·端口映射·公网ip
碎碎念_4921 个月前
ACL包过滤、NAT技术、广域网协议
服务器·网络·安全·acl·nat
Irissgwe2 个月前
10、NAT、代理服务、内网穿透
网络·frp·内网穿透·nat·代理服务器·反向代理·正向代理
阿拉金alakin2 个月前
NAT 网络地址转换:工作流程与原理总结
dubbo·nat