main
gns3-remote-install-redux
Revised version of the OG upstream GNS3 remote installer.
What's different
- Single primary apt pass: packages, repos, and groups rolled up from flags before install runs (as much as possible)
- Preflight: checks root, OS, needed commands, ports, modules, CPU virt extensions. Reports every error condition at once
- Auto-loads KVM:
modprobe+ persist to/etc/modules-load.d/, unless--without-kvm - Retry + verify: apt retries 3x with backoff; services verified with
systemctl is-active; GNS3 API curled post-install - WireGuard: adds modern VPN option
- EC crypto: P-384 by default for OpenVPN (faster keygen, no DH params).
--legacy-rsaif needed - Encrypted configs: VPN configs are encrypted with one-time passphrase. A copy+paste one-liner is printed to console to curl and decrypt the file at once.
--unsafe-configsto skip - Scoped firewall: UFW rules allow VPN from 0.0.0.0/0, others scoped to SSH source + local subnets
- Sysctl hardening: rp_filter, syncookies, ICMP redirect rejection, source route disable
- Landing page: ephemeral web page gives server info, version-matched client downloads, VPN configs, warnings, and resources. Auto-expires via systemd timer. Uses Python httpd.server module, instead of installing nginx package.
- Reconfigure: enhanced idempotence. detects prior install, stops services, re-runs cleanly
- Testable:
main()guarded so functions can be sourced for BATS or plain bash tests
Usage
sudo ./gns3-remote-install-redux.sh [OPTIONS]
Flags
| Flag | Default | Description |
|---|---|---|
--with-openvpn |
off | Install and configure OpenVPN |
--with-wireguard |
off | Install and configure WireGuard |
--with-welcome |
off | Install GNS3-VM welcome console UI |
--without-kvm |
KVM on | Disable KVM hardware acceleration |
--without-docker |
Docker on | Skip Docker CE installation |
--without-firewall |
UFW on | Skip automatic UFW rule configuration |
--without-system-upgrade |
upgrade on | Skip apt upgrade |
--unsafe-configs |
encrypted | Serve VPN configs unencrypted |
--legacy-rsa |
EC P-384 | Use RSA-2048 + DH for OpenVPN |
--unstable |
stable PPA | Use the GNS3 unstable PPA |
--custom-repository REPO |
ppa |
Use a custom GNS3 PPA name |
-h, --help |
Show help |
Requirements
Ubuntu Server 24.04 LTS (amd64). Run as root or with sudo.
License
Based on the original GNS3 remote installer (GPLv3).
Languages
Shell
75.5%
Python
14.8%
HTML
9.7%