I have drafted some of the Network status related tools/commands in Linux along with some hands-on
👉 Just a note that I will be using CentOS7
✨Commands for checking network status
-
ifconfig
ifconfig
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.129 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::f19a:98c6:d308:da7d prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:b1:be:7a txqueuelen 1000 (Ethernet)
RX packets 199 bytes 18537 (18.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 177 bytes 18785 (18.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 32 bytes 2592 (2.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 32 bytes 2592 (2.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
We can use ifconfig ens32 down
to deactivate the ens32
ifconfig ens32 down
using up
instead of down
will change the status to active again
-
netstat
netstat -antp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1306/master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1146/sshd
tcp 0 396 192.168.1.129:22 192.168.1.1:61202 ESTABLISHED 1407/sshd: root@pts
tcp 0 76 192.168.1.129:22 192.168.1.1:49870 ESTABLISHED 1589/sshd: root@pts
tcp6 0 0 ::1:25 :::* LISTEN 1306/master
tcp6 0 0 :::22 :::* LISTEN 1146/sshd
the 't' option makes it to show only the tcp
packets
✨Command for checking the routing table
route
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.2 0.0.0.0 UG 100 0 0 ens32
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 ens32
We can also check ssh
status
netstat -antp | grep sshd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1146/sshd
tcp 0 100 192.168.1.129:22 192.168.1.1:49870 ESTABLISHED 1589/sshd: root@pts
tcp6 0 0 :::22 :::* LISTEN 1146/sshd
ESTABLISHED
status shows that we are connected to this Linux system using SSH
✨Ping testing command
ping
ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=128 time=41.9 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=128 time=42.1 ms
we can add the -c
+ 'no of times you want' to limit how many times the ping message displays
✨Checking Address Resolution Protocol
arp
arp -a
gateway (192.168.1.2) at 00:50:56:e6:7d:7d [ether] on ens32
? (192.168.1.1) at 00:50:56:c0:00:08 [ether] on ens32
✨Checking the DNS name
nslookup
nslookup
> www.google.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: www.google.com
Address: 172.217.24.228
Name: www.google.com
Address: 2404:6800:4005:80c::2004
if the nslookup
command doesn't work initially, we will have to install the bind-utils
package
We can also use another format
dig www.google.com
✨Checking the network daemon
systemctl status network
â—Ź network.service - LSB: Bring up/down networking
Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
Active: active (exited) since Mon 2023-02-06 10:28:01 KST; 2min 14s ago
Docs: man:systemd-sysv-generator(8)
Process: 1015 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=0/SUCCESS)
Feb 06 10:28:00 Linux-2 systemd[1]: Starting LSB: Bring up/down networking...
Feb 06 10:28:01 Linux-2 network[1015]: Bringing up loopback interface: [ OK ]
Feb 06 10:28:01 Linux-2 network[1015]: Bringing up interface ens32: [ OK ]
Feb 06 10:28:01 Linux-2 systemd[1]: Started LSB: Bring up/down networking.
Some Hands-on
- âś” Editing the ifcfg-ens32 NIC config file
cd /etc/sysconfig/network-scripts
vi ifcfg-ens32
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
NAME=ens32
UUID=dcfd3416-5a10-4265-9102-294e578c015e
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.1.129
PREFIX=24
GATEWAY=192.168.1.2
DNS1=8.8.8.8
removed all of the IPv6 settings as we aren't using it
we can notice that we can also change the IPaddress, Gateway information and DNS
A small test we can perform is that we can edit our IP address here,
IPADDR=192.168.1.150
If we restart the daemon, we will be kicked out of the SSH as the IP was set differently.
If we SSH using the .150 IP,
Connecting to 192.168.1.150:22...
Connection established.
we can see that the connection was successful
- 👉 setting up a new network interface
Created a new network adapter inside the VM and checked the network manager inside the cli,
nmcli connection
NAME UUID TYPE DEVICE
Wired connection 1 3fe514bc-907a-362c-b85d-b999e6450132 ethernet ens33
ens32 dcfd3416-5a10-4265-9102-294e578c015e ethernet ens32
we can confirm a new ens33
device
We will be copying this UUID
Now, we can duplicate the ifcfg
file inside the network-scripts
directory for the ens33
adapter
cd /etc/sysconfig/network-scripts
cp ifcfg-ens32 ifcfg-ens33
Editing inside this file,
vi ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
NAME=ens33
UUID=3fe514bc-907a-362c-b85d-b999e6450132
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.130
PREFIX=24
GATEWAY=192.168.1.2
DNS1=8.8.8.8
replaced the UUID with the one that we copied before
After saving this file, we can restart the daemon
systemctl restart network
Finally, checking the ens33
adapter
ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.130 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::20c:29ff:feb1:be84 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:b1:be:84 txqueuelen 1000 (Ethernet)
RX packets 35 bytes 2100 (2.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 309 bytes 49826 (48.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
now we can SSH via this network adapter IP address as well
There is another way to configure using the nmtui
command that comes with a rather simple GUI
- 👉 Using IP Binding
- Providing multiple IP addresses to one NIC
- Used mostly in Linux systems that run different services so that each service can get a unique IP address
We will copy the config file for the ens33
interface
cd /etc/sysconfig/network-scripts
cp ifcfg-ens33 ifcfg-ens33:0
Editing the new config file
vi ifcfg-ens33:0
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
NAME=ens33:0
UUID=3fe514bc-907a-362c-b85d-b999e6450132
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.1.131
PREFIX=24
GATEWAY=192.168.1.2
DNS1=8.8.8.8
only the IP address and the name + device section was altered
Now if we restart the daemon and check the network details,
systemctl restart network
ifconfig
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.131 netmask 255.255.255.0 broadcast 192.168.1.255
ether 00:0c:29:b1:be:84 txqueuelen 1000 (Ethernet)
ens33
is a single network interface but we have given a **virtual* IP to that interface*
đź’ˇ We can add more virtual interfaces by creating the config files using :1, :2 and so on after the ens33
interface name
We can also remove virtual interfaces by simply deleting the config file
rm -rf ./ifcfg-ens33:0
Top comments (0)