As of the date of this post, GNS3 does not provide a native client for macOS on Apple Silicon. This post aims to address that issue. While this post serves as a companion to GNS3 with macOS on Apple Silicon , the GNS3 client described here will also function with other types of remote GNS3 servers.

Prerequisites

Steps

  1. Open your favorite terminal emulator.

We will be working from the command line for the majority of the following steps.

  1. Change to the Downloads directory.
cd ~/Downloads
  1. Clone the gns3-gui-apple-silicon repo from GitHub.
git clone https://github.com/mweisel/gns3-gui-apple-silicon.git
  1. Change to the gns3-gui-apple-silicon directory.
cd gns3-gui-apple-silicon
  1. Get your GNS3 server version.

If using GNS3 on Apple Silicon , run the following command:

curl -s http://gns3.orb.local:3080/v3/version

output:

{"controller_host":"127.0.0.1","version":"3.0.0","local":false}
  1. Clone the gns3-gui repo from GitHub.

My GNS3 version is 3.0.0, so I run the following command:

git clone --depth 1 --branch v3.0.0 https://github.com/GNS3/gns3-gui.git src
  1. Display the version placeholder value in the gns3.spec file.
grep version gns3.spec

output:

    version='VER',
  1. Replace the version placeholder value.

Again, my version is 3.0.0, so I run the following command:

sed -i '' -e 's/VER/3.0.0/' gns3.spec
  1. Verify the change for the version value.
grep version gns3.spec

output:

    version='3.0.0',
  1. Create a Python virtual environment.
source init_venv.sh
  1. Verify PyInstaller is available.
pyinstaller --version
  1. Build the GNS3.app.
sh build_gns3_app.sh
  1. Deactivate the Python virtual environment.
deactivate
  1. Move the GNS3.app from the dist folder to the Applications folder.
Move GNS3.app
  1. Bring your own Telnet (BYOT).

The telnet binary is not included in the GNS3 application bundle. Refer to Alacritty with GNS3 on macOS for a solution.

  1. Verify the goods.
file -b /Applications/GNS3.app/Contents/MacOS/gns3

output:

Mach-O 64-bit executable arm64
GNS3.app Info