EVE-NG Linux VM SSH troubleshooting
September 20, 2025
Customizing EVE-NG
Let’s delve into the most important part: customizing EVE-NG for DevNetOps. In particular, we will proceed to:
- Configure an internal network dedicated to device management.
- Import the labs from the GitHub repository dedicated to DevNetOps courses.
- Compile and install Python 3.10 (not required in EVE-NG 6)
- Create a user dedicated to development, with a dedicated Pythonenvironment.
- Utilize Visual Studio Code for remote development on the EVE-NG server.
Configure an Internal Management Network
In automation, each lab we create requires a seemingly trivial yet essential characteristic: the IP addresses of the devices must be accessible from the automation system. If the EVE-NG PRO version has a native feature (NAT Cloud) that simplifies this, in EVE-NG CE, we need to find a strategy to achieve the same result.
The goal is to configure an additional network on EVE-NG that allows us to connect the management interfaces of the devices we will use for our labs, whether they are virtual (internal to EVE-NG) or physical (PLC and other external physical devices). The diagram below summarizes our intention:
Firstly, let’s clarify the networking of EVE-NG and introduce some concepts in Linux in general.
A Linux system represents its network interfaces with various names, typically prefixed (eth, ens…) associated with an identifier number. Network interfaces can represent either a physical network card or a virtual network card. In our environment, we find that the physical network card is represented by eth0, but there are other network cards named pnet.
We can view the network interfaces of the system with one of the following commands:
ifconfig -a
ip link
The configured pnet interfaces are actually virtual switches (bridges) configured by default during installation:
In particular, we see that the bridge pnet0 is associated with the physical interface eth0. Or, in other words, anything associated with the bridge pnet0 will also be transmitted on the eth0 network. As we’ll see in the web interface, we can add Cloud networks. Cloud networks are simply the pnet bridges. In particular, the pnet0 network is also used for web access. In fact, the management IP address is associated with the bridge pnet0, as we can see using one of the following commands:
ifconfig pnet0
ip address show pnet0
We can then configure an IP address on the pnet9 network and connect the management interfaces of the devices to the Cloud9 network.
EVE-NG, based on Ubuntu Linux Server 20.04 LTS, configures networks via the /etc/network/interfaces file. In particular, we need to configure the part related to the pnet9 bridge as follows:
We use the APIPA network, defined to be local. In this sense, in an Enterprise context, we have reasonable certainty of not overlapping with other networks. The remaining pnet2-9 interfaces can be deleted.
We can now reload the modified network configuration:
/etc/init.d/networking restart
If we ever want to associate a physical interface with this bridge, we need to add the line:
bridge_ports eth1
Continue reading the post on Patreon .