The way computers talk to one another.

Every computer on a network has it's own address. IP address -- Internet Protocol
ubuntu gnome 3 change IP - Google Search
How to Configure Networking in GNOME

There are ip address ranges that are designated for internal (private) networks.

192.168.1.x is a common one.


What's a good layout for ip assignments? Example documentation


Keep your layout in your own csv file. eg.




for sharing, a spreadsheet is a lot easier. can still track it in version control in the meantime


a text file is also ok whatever is easiest to keep up to date



Good for network diagrams

What about keeping the data in an SVG?

Or a web-based SVG interface backed by a database?

Interface Configuration

Often it's pretty straightforward to use a GUI. If you want to configure an interface via a CLI, it's necessary to know where the OS stores the configuration settings. This varies from OS to OS.


On a Raspberry Pi, disable cloud config: To disable cloud-init's network configuration capabilities, write a file /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:

network: {config: disabled}

Find the interface in use

ip address


The netplan configuration is located in /etc/netplan

cd /etc/netplan

sudo cp 01-network-manager-all.yaml 01-network-manager-all.yaml.dhcp

Modify the netplan configuration.

sudo vi 01-network-manager-all.yaml

add a section like:

      dhcp4: no
      addresses: []
        addresses: [,]

To apply the configuration and have changes take effect, run:

sudo netplan apply 

adapted via

Copy SSH keys to the new machine

Configure a firewall

Remote Connections

Ngrok looks like a cool service that can expose a local service via a remotely accessible address

Following along with:

Sign in:

On the server with the service you want to access,

unzip /path/to/
chmod +x ngrok


sudo snap install ngrok

Start up the forwarding

ngrok tcp 22

Connect to the service from any remote system:

ssh <YOUR_USERNAME> -p 11111

Open Ports

On a linux machine you can install netstat to see what ports are currently open:

sudo apt install net-tools

netstat -pan | egrep " LISTEN "

netstat -tulnp

t – Show TCP u – Show UDP l – Show only listening processes (netstat can show both listening and all established connections, i.e. as a client too) n – Do not resolve network IP address names or port numbers p – Show the process name that is listening on the port

Similar to netstat, but the focus is on processes:

ss -nutlp

lsof -i


To scan open ports from another (external) machine that's on the same network

nmap [ip of machine to scan]

Common Ports

By convention, common services utilize specific ports to publish and connect to the service. Some examples include:

SSH 22 DNS servers 53 tcp potential trojan (probably dns) ipps 631 Internet Printing Protocol over HTTPS


Firewalls block external traffic from entering internal networks and hosts.


iptables -xvn -L


To resolve a name associated with an IP address, try nslookup:


To go the other way and find the IP of a configured domain name, dig can help:

dig +short

Don't forget! You can always add the host & ip to your /etc/hosts file and then it will resolve and you can test the service before the dns entries propagate! 😃


sudo apt install inetutils-traceroute 

Traffic Analysis


To see what is happening on a network, use wireshark Wireshark · Go Deep.

sudo apt install wireshark

To see statistics on TCP connection duration:

'Statistics' -> 'Conversations'

Other tools
Looking for an open source Network Traffic Analyzer : networking
GitHub - robcowart/elastiflow: Network flow analytics (Netflow, sFlow and IPFIX) with the Elastic Stack
pmacct project: IP accounting iconoclasm
Manito Networks / flowanalyzer · GitLab
ntop – High Performance Network Monitoring Solutions based on Open Source and Commodity Hardware.