When I first tried installing GNS3 on Fedora, I checked the official GNS3 website — and surprisingly, Fedora wasn’t listed.
They only provide installation guides for:
- Ubuntu-based distros
- Debian-based distros
- Arch-based distros
But no Fedora 😅
Luckily, GNS3 is actually available on Fedora — directly from its official repositories. Here’s how you can install it and run your very first “Hello, World!” inside GNS3!
1. Installing GNS3 on Fedora
Even though Fedora isn't listed on the official website, Fedora includes GNS3 in its own package repositories.
You can install both the server and GUI with just one command:
sudo dnf install gns3-server gns3-gui
This gives you:
- gns3-server → backend
- gns3-gui → the graphical application
2. GNS3 Setup Wizard — Run Locally
When launching GNS3 for the first time, the setup wizard appears.
Choose:
👉 Run appliances on my local computer
This means the GNS3 server runs on your machine with:
- Host:
localhost/127.0.0.1 - Port:
3080 TCP - Server binary:
/usr/bin/gns3server
This is the simplest and fastest way to get started.
* Required Components (Dynamips & QEMU/KVM)
When you choose Run appliances on my local computer, the GNS3 server runs locally — but GNS3 still needs additional backend engines to actually run network devices.
🧩 Why Dynamips?
Dynamips is the emulator that allows GNS3 to run classic Cisco IOS images (like c3725, c7200, etc.).
If you want to practice CCNA/CCNP using real IOS images, Dynamips is essential.
🧩 Why QEMU/KVM (even on local setup)?
Even though you’re running the GNS3 server locally, you still need QEMU/KVM because most modern devices in GNS3 depend on them:
- Palo Alto (PA) VM
- FortiGate VM
- Linux VMs (Ubuntu, Alpine, Kali, etc.)
- Custom appliances from GNS3 marketplace
These devices cannot run with Dynamips and require full virtualization.
That’s where QEMU (emulator) and KVM (hardware acceleration) come in.
Fedora provides them via the @virtualization group.
4. Install Dynamips (via Snap)
Fedora doesn’t ship Dynamips in its default repositories, so the easiest way to install it is through Snap.
But since Fedora does not include Snap out of the box, you must enable it first.
📌 Step 1 — Installing snap on Fedora
Snap can be installed on Fedora from the command line:
sudo dnf install snapd
After installing Snap and setting it up, you need to refresh your session so Fedora recognizes Snap’s new paths. You can do this by:
- Logging out and logging back in, or
- Restarting your computer
Next, enable classic Snap support by creating a symbolic link:
sudo ln -s /var/lib/snapd/snap /snap
Again, log out and back in, or restart your system to make sure the change takes effect.
To test your system, install the hello-world snap and make sure it runs correctly:
$ sudo snap install hello-world
hello-world 6.3 from Canonical✓ installed
$ hello-world
Hello World!
📌 Step 2 — Install Dynamips via Snap
Once Snap is enabled, install Dynamips with:
sudo snap install dynamips
This installs the latest stable version directly from Snap’s repository because Fedora’s official packages do not include Dynamips.
5. Install QEMU/KVM
Fedora makes this part easy:
sudo dnf install @virtualization
This package group includes:
- qemu — the main emulator
- qemu-kvm — hardware-accelerated virtualization
- libvirt — management service for VMs
- virtualization tools — additional utilities GNS3 relies on
Together, these provide everything GNS3 needs to run modern virtual appliances like Linux VMs, firewalls, and more.
6. Install xterm for Device Consoles
GNS3 needs a terminal emulator to open console windows for devices like VPCS, Routers, and Switches.
There are actually several console options available (as shown below) — such as gnome-terminal, konsole, tilix, kitty, and more.
But for now, I’m installing xterm, because it’s simple and works out of the box on Fedora.
(I still don’t know the full comparison between all these terminals hehe 😅)
Install xterm with:
sudo dnf install xterm
Without a terminal emulator installed, some console windows may fail to open.
🎉 Your First "Hello, World!" in GNS3 🖥️💬
Let’s create the simplest possible network test using 2 VPCS nodes and 1 Ethernet switch.
This mini-topology will help you confirm that:
- VPCS works ✔️
- Switch works ✔️
- Console works ✔️
- Basic connectivity (ping) works ✔️
1️⃣ Create a New Blank Project
Open GNS3 → click New Blank Project → give it a name (e.g., hello-world).
2️⃣ Create the Topology
Drag and drop:
VPCS (twice) → creates PC1 and PC2
Ethernet Switch → any basic unmanaged switch
Your topology will look like this:
3️⃣ Connect the Devices
Use the “Add a Link” tool:
Connect PC1 → Switch
Connect PC2 → Switch
Any switch ports are fine (e0, e1, e2, etc.).
4️⃣ Start All Nodes & Assign IP Addresses to Each VPCS
After building the topology, click Start all nodes to power on your VPCS and the switch:
Next, open the console for each VPCS:
👉 Right-click VPCS → Console (this will open an xterm window)
📏 First time opening a VPCS console in xterm, you may notice the font is very small — hehe, same for me!
So if you want to increase the font size or change the font style, you can customize xterm easily.
Go to:
Edit → Preferences → General Preferences → Console Applications → Console Settings
Then edit the xterm command (Copy/Edit) and modify it, for example:
xterm -fa "Monospace" -fs 14 -T "{name}" -e "telnet {host} {port}"
Now assign IP addresses.
🖥️PC1
ip 192.168.1.10/24
🖥️PC2
ip 192.168.1.11/24
You can confirm:
show ip
5️⃣ Test Connectivity (“Hello, World!” Ping) 🎉
From PC1, ping PC2:
ping 192.168.1.11
If everything is correct, you’ll see:
84 bytes from 192.168.1.11 icmp_seq=1 ttl=64 time=0.324 ms
Congrats — that’s your Hello, World! Network inside GNS3! 🚀🌐














Top comments (0)