Network Configuration
Interface details
Section titled “Interface details”Ifconfig
List all the interfaces available on the machine
$ ifconfig -a
List the details of a specific interface
Syntax: $ ifconfig <interface>
Example:
$ ifconfig eth0eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx inet addr:x.x.x.x Bcast:x.x.x.x Mask:x.x.x.x inet6 addr: xxxx::xxx:xxxx:xxxx:xxxx/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:4426618 errors:0 dropped:1124 overruns:0 frame:0 TX packets:189171 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:382611580 (382.6 MB) TX bytes:36923665 (36.9 MB) Interrupt:16 Memory:fb5e0000-fb600000Ethtool - query the network driver and hardware settings
Syntax: $ ethtool <interface>
Example:
$ ethtool eth0Settings for eth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 1 Transceiver: internal Auto-negotiation: on MDI-X: on (auto) Supports Wake-on: pumbg Wake-on: g Current message level: 0x00000007 (7) drv probe link Link detected: yesip - show / manipulate routing, devices, policy routing and tunnels
Syntax: $ ip { link | ... | route | macsec } (please see man ip for full list of objects)
Examples
List network interfaces
$ ip link showRename interface eth0 to wan
$ ip link set dev eth0 name wanBring interface eth0 up (or down)
$ ip link set dev eth0 upList addresses for interfaces
$ ip addr showAdd (or del) ip and mask (255.255.255.0)
$ ip addr add 1.2.3.4/24 brd + dev eth0Adding IP to an interface
Section titled “Adding IP to an interface”An IP address to an interface could be obtained via DHCP or Static assignment
DHCP
If you are connected to a network with a DHCP server running, dhclient command can get an IP address for your interface
$ dhclient <interface>
or alternatively, you could make a change to the /etc/network/interfaces file for the interface to be brought up on boot and obtain DHCP IP
auto eth0iface eth0 inet dhcpStatic configuration(Permanent Change) using /etc/network/interfaces file
If you want to statically configure the interface settings(permanent change), you could do so in the /etc/network/interfaces file.
Example:
auto eth0 # Bring up the interface on bootiface eth0 inet static address 10.10.70.10 netmask 255.255.0.0 gateway 10.10.1.1 dns-nameservers 10.10.1.20 dns-nameservers 10.10.1.30These changes persist even after system reboot.
Static configuration(Temporary change) using ifconfig utility
A static IP address could be added to an interface using the ifconfig utility as follows
$ ifconfig <interface> <ip-address>/<mask> up
Example:
$ ifconfig eth0 10.10.50.100/16 up
Local DNS resolution
Section titled “Local DNS resolution”File: /etc/hosts contains a list of hosts that are to be resolved locally(not by DNS)
Sample contents of the file:
127.0.0.1 your-node-name.your-domain.com localhost.localdomain localhostXXX.XXX.XXX.XXX node-nameThe file format for the hosts file is specified by RFC 952
Configure DNS servers for domain name resolution
Section titled “Configure DNS servers for domain name resolution”File: /etc/resolv.conf contains a list of DNS servers for domain name resolution
Sample contents of the file:
nameserver 8.8.8.8 # IP address of the primary name servernameserver 8.8.4.4 # IP address of the secondary name serverIn case internal DNS server you can validate if this server resolve DNS names properly using dig command:
$ dig google.com @your.dns.server.com +shortSee and manipulate routes
Section titled “See and manipulate routes”Manipulate the IP routing table using route
Section titled “Manipulate the IP routing table using route”Display routing table
$ route # Displays list or routes and also resolves host names$ route -n # Displays list of routes without resolving host names for faster resultsAdd/Delete route
|Option|Description
|---|---|---|---|---|---|---|---|---|---
|add or del|Add or delete a route
|-host x.x.x.x|Add route to a single host identified by the IP address
|-net x.x.x.x|Add route to a network identified by the network address
|gw x.x.x.x|Specify the network gateway
|netmask x.x.x.x|Specify the network netmask
|default|Add a default route
Examples:
- add route to a host
$ route add -host x.x.x.x eth1 - add route to a network
$ route add -net 2.2.2.0 netmask 255.255.255.0 eth0 - Alternatively, you could also use cidr format to add a route to network
route add -net 2.2.2.0/24 eth0 - add default gateway
$ route add default gw 2.2.2.1 eth0 - delete a route
$ route del -net 2.2.2.0/24
Manipulate the IP routing table using ip
Section titled “Manipulate the IP routing table using ip”Display routing table
$ ip route show # List routing tableAdd/Delete route
|Option|Description
|---|---|---|---|---|---|---|---|---|---
|add or del or change or append or replace|Change a route
|show or flush|the command displays the contents of the routing tables or remove it
|restore|restore routing table information from stdin
|get|this command gets a single route to a destination and prints its contents exactly as the kernel sees it
Examples:
- Set default gateway to 1.2.3.254
$ ip route add default via 1.2.3.254 - Adds a default route (for all addresses) via the local gateway 192.168.1.1 that can be reached on device eth0
$ ip route add default via 192.168.1.1 dev eth0
Configure a hostname for some other system on your network
Section titled “Configure a hostname for some other system on your network”You can configure your Linux (or macOS) system in order to tie in an identifier <hostname> to some other system’s IP address in your network. You can configure it:
-
- the remote system's IP address `
For instance, you could add this line using the cat Unix tool. Suppose that you want to make a ping to a PC in yout local network whose IP address is 192.168.1.44 and you want to refer to that IP address just by remote_pc. Then you must write on your shell:
$ sudo cat 192.168.1.44 remote_pcThen you can make that ping just by:
$ ping remote_pc