My love hate relationship with GNS3 has come to a next level!!
I have a server like configuration on my Ubuntu Machine , it has 64 GB memory so enough for my GNS3 practices.I used to VNC to this machine and run GNS3 on it. This was working just fine but since the day I bought my Ubuntu I wanted to run GNS3 in client server mode. And recently I did it, having prior experiences with GNS3, I was prepared that it is going to take some time but this time it was seamless and happened withing few mins.This saved me from the pain of maintaining GNS3 VM as Ubuntu doesn’t need GNS3 VM. Lets see how we can do it.
Client Machine : Macbook OS Big sur
Server Machine : Ubuntu 20.04
GNS3 Version : 2.2.22
NOTE : Both the client and server version of GNS3 should be same.
Server Side Configuration :
See the picture below. You need to take care of everything in red box in below picture.
Go to Preferences >>Server >>
- Host Binding : This is the local IP of the Ubuntu PC
- Port : This is the port over which clients will connect to Ubuntu machine
- Password option : I don’t want it as I am connecting locally
Check the “allow connections” from any local IP. This will include the range 192.168.1.0/24
The “Console port” and “UDP tunnel port” ranges are populated by default.

Firewall rules on Server
Now looking at the above screenshot, you might have guessed that there will be two phases in the connection. In first step the client will connect to GNS3 server over port 3080 and then the console connections will occur on port 5000 to 10000 , all TCP. So we must have rules to allow tcp connections from client to server over these ports.Since there is a range of ports to add hence the easiest method to add the complete local subnet or the specific IP from where you are trying to connect to server. So I preferred adding below rule in my server firewall.
#sudo ufw allow from 192.168.1.0/24
Client side config
Now as a last step, we need to tell client to use server to run projects. And for that below are the configurations.
Go to Preferences >>Server >>
- Select protocol as HTTP
- Mention the server IP in host text box
- Mention the port as 3080 TCP
- I did not check the authentication as I am not using it, you can use it.

Once all this done I see server is connected to my GNS3 on client, you can see this in Server Summary section on GNS3, and the below topology is running on Server which I am managing from Macbook client.

Conclusion:
GNS3 although is always hard to work with, but still remains the best tool in my learning journey, and I always wanted to setup client server mode in GNS3 because of its resource consumption issues. Now I have set it up lets see if it improves my experience.