Networking

Networking

Resolve a domain to IP address(es)

dig +short www.example.com

# or
host www.example.com

Get DNS TXT record a of domain

dig -t txt www.example.com

# or
host -t txt www.example.com

Send a ping with a limited TTL to 10 (TTL: Time-To-Live, which is the maximum number of hops that a packet can travel across the Internet before it gets discarded.)

ping 8.8.8.8 -t 10
traceroute google.com

Check connection to host (e.g. check connection to port 80 and 22 of google.com)

nc -vw5 google.com 80
# Connection to google.com 80 port [tcp/http] succeeded!

nc -vw5 google.com 22
# nc: connect to google.com port 22 (tcp) timed out: Operation now in progress
# nc: connect to google.com port 22 (tcp) failed: Network is unreachable

Nc as a chat tool!

# From server A:
$ sudo nc -l 80
# then you can connect to the 80 port from another server (e.g. server B):
# e.g. telent <server A IP address> 80
# then type something in server B
# and you will see the result in server A!

Check which ports are listening for TCP connections from the network

#notice that some companies might not like you using nmap
nmap -sT -O localhost

# check port 0-65535
nmap  -p0-65535 localhost

Check if a host is up and scan for open ports, also skip host discovery.

#skips checking if the host is alive which may sometimes cause a false positive and stop the scan.
$ nmap google.com -Pn

# Example output:
# Starting Nmap 7.01 ( https://nmap.org ) at 2020-07-18 22:59 CST
# Nmap scan report for google.com (172.217.24.14)
# Host is up (0.013s latency).
# Other addresses for google.com (not scanned): 2404:6800:4008:802::200e
# rDNS record for 172.217.24.14: tsa01s07-in-f14.1e100.net
# Not shown: 998 filtered ports
# PORT    STATE SERVICE
# 80/tcp  open  http
# 443/tcp open  https
#
# Nmap done: 1 IP address (1 host up) scanned in 3.99 seconds

Scan for open ports and OS and version detection (e.g. scan the domain "scanme.nmap.org")

$ nmap -A -T4 scanme.nmap.org
# -A to enable OS and version detection, script scanning, and traceroute; -T4 for faster execution

Look up website information (e.g. name server), searches for an object in a RFC 3912 database.

whois google.com

Show the SSL certificate of a domain

openssl s_client -showcerts -connect www.example.com:443

Display IP address

ip a

Display route table

ip r

Display ARP cache (ARP cache displays the MAC addresses of device in the same network that you have connected to)

ip n

Add transient IP addres (reset after reboot) (e.g. add 192.168.140.3/24 to device eno16777736)

ip address add 192.168.140.3/24 dev eno16777736

Persisting network configuration changes

sudo vi /etc/sysconfig/network-scripts/ifcfg-enoxxx
# then edit the fields: BOOTPROT, DEVICE, IPADDR, NETMASK, GATEWAY, DNS1 etc

Refresh NetworkManager

sudo nmcli c reload

Restart all interfaces

sudo systemctl restart network.service

To view hostname, OS, kernal, architecture at the same time!

hostnamectl

Set hostname (set all transient, static, pretty hostname at once)

hostnamectl set-hostname "mynode"

Find out the web server (e.g Nginx or Apache) of a website

curl -I http://example.com/
# HTTP/1.1 200 OK
# Server: nginx
# Date: Thu, 02 Jan 2020 07:01:07 GMT
# Content-Type: text/html
# Content-Length: 1119
# Connection: keep-alive
# Vary: Accept-Encoding
# Last-Modified: Mon, 09 Sep 2019 10:37:49 GMT
# ETag: "xxxxxx"
# Accept-Ranges: bytes
# Vary: Accept-Encoding

Find out the http status code of a URL

curl -s -o /dev/null -w "%{http_code}" https://www.google.com

Unshorten a shortended URL

curl -s -o /dev/null -w "%{redirect_url}" https://bit.ly/34EFwWC

Perform network throughput tests

# server side:
$ sudo iperf -s -p 80

# client side:
iperf -c <server IP address> --parallel 2 -i 1 -t 2 -p 80

To block port 80 (HTTP server) using iptables.

sudo iptables -A INPUT -p tcp --dport 80 -j DROP

# only block connection from an IP address
sudo iptables –A INPUT –s <IP> -p tcp –dport 80 –j DROP

Last updated