DEV Community

アダム・ジョンソン
アダム・ジョンソン

Posted on

🔥 How to Install GNS3 on Fedora + Your First "Hello, World!" in GNS3 🖥️⚡

When I first tried installing GNS3 on Fedora, I checked the official GNS3 website — and surprisingly, Fedora wasn’t listed.

gns3 official

They only provide installation guides for:

  • Ubuntu-based distros
  • Debian-based distros
  • Arch-based distros

But no Fedora 😅

official repo

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
Enter fullscreen mode Exit fullscreen mode

This gives you:

  • gns3-server → backend

gns3 server

  • gns3-gui → the graphical application

gns3 gui

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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!
Enter fullscreen mode Exit fullscreen mode

📌 Step 2 — Install Dynamips via Snap

Once Snap is enabled, install Dynamips with:

sudo snap install dynamips
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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.

list console

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
Enter fullscreen mode Exit fullscreen mode

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).

new project

2️⃣ Create the Topology

all devices

Drag and drop:

  • VPCS (twice) → creates PC1 and PC2

  • Ethernet Switch → any basic unmanaged switch

Your topology will look like this:

topology start

3️⃣ Connect the Devices

Use the “Add a Link” tool:

with cable

  • 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:

start all nodes

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}"
Enter fullscreen mode Exit fullscreen mode

xterm config

Now assign IP addresses.

🖥️PC1

ip 192.168.1.10/24
Enter fullscreen mode Exit fullscreen mode

🖥️PC2

ip 192.168.1.11/24
Enter fullscreen mode Exit fullscreen mode

You can confirm:

show ip
Enter fullscreen mode Exit fullscreen mode

show ip pc1

show ip pc2

5️⃣ Test Connectivity (“Hello, World!” Ping) 🎉

From PC1, ping PC2:

ping 192.168.1.11
Enter fullscreen mode Exit fullscreen mode

If everything is correct, you’ll see:

84 bytes from 192.168.1.11 icmp_seq=1 ttl=64 time=0.324 ms
Enter fullscreen mode Exit fullscreen mode

test ping

Congrats — that’s your Hello, World! Network inside GNS3! 🚀🌐

Top comments (0)