HONET LOGO
GNS 3

Install GNS3 Server di Linux Server

01/03/2026

menjelaskan cara memasang GNS3 Server pada Rocky Linux 9.5 (tanpa GUI desktop), menjalankannya sebagai service systemd, dan mengaksesnya dari browser atau GNS3 GUI melalui port 3080.

Arsitektur & Alur Akses

Komponen utama:

  • GNS3 Server: berjalan di VM Rocky Linux dan mengelola project/topologi.
  • Client: laptop/PC untuk akses Web UI atau GNS3 GUI.
  • Node lab: router/appliance (QEMU), VPCS, switch, cloud bridge, dll.

Endpoint penting:

  • Web UI: http://:3080/static/web-ui/
  • API Docs: http://:3080/docs

Rekomendasi untuk lab kecil-menengah:

  • CPU: 2–4 vCPU (lebih banyak untuk appliance QEMU).
  • RAM: 8 GB (lebih lega jika banyak node).
  • Disk: 40–100 GB (tergantung image/appliance).
  • Nested virtualization aktif agar /dev/kvm tersedia.

Sebelum instalasi, pastikan VM mendapatkan fitur virtualisasi CPU dari host (VT-x/AMD-V) agar KVM bisa digunakan.

Verifikasi di Rocky Linux:

grep -E 'vmx|svm' /proc/cpuinfo | head
ls -l /dev/kvm

Instalasi GNS3 Server

Update OS & Aktifkan Repository

Langkah ini memastikan repo CRB dan EPEL aktif agar dependency build tersedia.

dnf -y update
dnf -y install dnf-plugins-core
dnf config-manager --set-enabled crb
dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

Catatan: CRB + EPEL membantu menyediakan paket tambahan yang sering dibutuhkan proses build di Rocky/RHEL.

Install Dependency (Build Tools + Virtualization)

dnf -y groupinstall "Development Tools"

dnf -y install \
  git curl wget cmake make gcc gcc-c++ \
  python3 python3-pip python3-devel \
  libpcap-devel elfutils-libelf-devel \
  qemu-kvm libvirt virt-install bridge-utils \
  firewalld

Aktifkan service:

systemctl enable --now libvirtd
systemctl enable --now firewalld

catatan: libvirtd digunakan untuk lingkungan virtualisasi, sedangkan firewalld untuk membuka akses port controller.

Buat User gns3 & Struktur Direktori

useradd -m -s /bin/bash gns3

mkdir -p /home/gns3/GNS3/{images,projects,appliances,symbols,resources}
mkdir -p /home/gns3/.config/GNS3
mkdir -p /var/log/gns3

chown -R gns3:gns3 /home/gns3/GNS3 /home/gns3/.config /var/log/gns3
chmod 700 /home/gns3/.config/GNS3

usermod -aG kvm,libvirt gns3

catatan: Menjalankan GNS3 sebagai user non-root lebih aman dan mencegah masalah permission saat membuat JWT secret key dan database controller.

Build & Install Komponen GNS3

Komponen yang dipasang: uBridge (wajib), Dynamips (opsional), dan VPCS (opsional).

Install uBridge

mkdir -p /usr/local/src/gns3
cd /usr/local/src/gns3

git clone https://github.com/GNS3/ubridge.git
cd ubridge
make
make install

Verifikasi:

which ubridge
ubridge -h || true

catatan: uBridge digunakan untuk bridging interface (mis. node Cloud) dan interkoneksi jaringan di GNS3

Install Dynamips (opsional)

cd /usr/local/src/gns3
git clone https://github.com/GNS3/dynamips.git
cd dynamips
mkdir -p build && cd build
cmake ..
make
make install

Verifikasi:

which dynamips
dynamips --help || true

catatan: Dynamips diperlukan jika menggunakan image IOS lawas berbasis Dynamips

Install VPCS (opsional)

cd /usr/local/src/gns3
git clone https://github.com/GNS3/vpcs.git
cd vpcs/src
./mk.sh
cp vpcs /usr/local/bin/vpcs
chmod +x /usr/local/bin/vpcs

Verifikasi:

which vpcs
vpcs -v || true

catatan: VPCS adalah host ringan untuk uji ping, traceroute, dan routing dasar.

Install gns3-server (Python venv)

python3 -m venv /opt/gns3-venv
/opt/gns3-venv/bin/pip install --upgrade pip
/opt/gns3-venv/bin/pip install gns3-server

/opt/gns3-venv/bin/gns3server --version

catatan: Virtual environment menjaga paket Python GNS3 tidak mengganggu Python bawaan sistem.

Buat Konfigurasi GNS3 Server (di HOME user)

Simpan konfigurasi di /home/gns3/.config/GNS3 agar file JWT dan database controller dapat dibuat tanpa permission error.

cat > /home/gns3/.config/GNS3/gns3_server.conf <<'EOF'
[Server]
host = 0.0.0.0
port = 3080

images_path = /home/gns3/GNS3/images
projects_path = /home/gns3/GNS3/projects
appliances_path = /home/gns3/GNS3/appliances
symbols_path = /home/gns3/GNS3/symbols
resources_path = /home/gns3/GNS3/resources

# Security: aktifkan auth jika server diakses dari jaringan
auth = True
user = gns3
password = GantiPasswordDiSini

[VPCS]
vpcs_path = /usr/local/bin/vpcs

[Dynamips]
dynamips_path = /usr/local/bin/dynamips

[Qemu]
enable_kvm = True
require_kvm = True
EOF

chown gns3:gns3 /home/gns3/.config/GNS3/gns3_server.conf
chmod 600 /home/gns3/.config/GNS3/gns3_server.conf

catatan: Jika server diakses dari jaringan, disarankan auth=True dan gunakan password kuat.

Buat systemd service

cat > /etc/systemd/system/gns3.service <<'EOF'
[Unit]
Description=GNS3 Server
After=network.target

[Service]
Type=simple
User=gns3
Group=gns3
Environment="HOME=/home/gns3"
Environment="XDG_CONFIG_HOME=/home/gns3/.config"
WorkingDirectory=/home/gns3
ExecStart=/opt/gns3-venv/bin/gns3server --config /home/gns3/.config/GNS3/gns3_server.conf --log /var/log/gns3/gns3.log
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable --now gns3
systemctl status gns3 --no-pager

catatan: Service ini membuat GNS3 otomatis berjalan saat boot dan menyimpan log ke /var/log/gns3/gns3.log.

Buka Firewall Port 3080

firewall-cmd --permanent --add-port=3080/tcp
firewall-cmd --reload

catatan: Port 3080 adalah port utama API/Web UI GNS3 Server.

Verifikasi Instalasi

Cek port listening:

ss -plnt | grep 3080

Cek log:

tail -300f /var/log/gns3/gns3.log

Cek akses dari browser:

  • http://<IP_VM>:3080/static/web-ui/
  • http://:3080/docs

Jika port 3080 listen dan log bersih dari error permission/DB, server siap digunakan. Web UI dapat digunakan untuk membuat project, menambah node (Cloud/NAT/VPCS), dan menggambar topologi dari browser.

Refrensi: https://github.com/GNS3/gns3-server