在一片漆黑的界面下,我们该如何查看和配置系统网卡、IP地址、路由等信息呢?
最传统基本的网络命令,几乎所有旧的发行版都支持的配置命令:ifconfig
查看系统的所有网卡及IP配置信息:ifconfig
禁用网卡:ifconfig eth0 down,启用网卡:ifconfig eth0 up
为网卡配置IP地址:ifconfig eth0 192.168.1.56.NETmask 255.255.255.0
Ifconfig命令的替代者,最新版本的linux发行版都支持:
查看系统的所有网卡及IP配置信息:ip address
启用网卡:ip link set dev eth0 up
设置网卡IPv4地址:ip address add 1.2.3.4/24 brd + dev eth0
显示系统的路由信息:ip route show
设置默认路由:ip route add default via 1.2.3.254
当我们明明设置了IP地址和网关,但是就是ping不同www.dubai.com时,我们该怎么办呢?
是不是需要查询一下这个DNS服务器是否设置正确,查询验证DNS命令:dig。
当我们设置了IP,但是ping不同我们要访问的地址或域名,我们是否还有其它办法呢?当然有:
可以curl测试一下80端口:curl www.dubai.org,或者直接连接:nc www.dubai.org 80,或者还可以跟踪一下路由:traceroute www.dubai.org 。
当我们知道一个域名,如何知道它的IP地址呢?
host www.isolves.com
当我们运维的时候想看一下linux服务器到底开了哪些对外服务呢?
这个时候可执行sudo ss -lntup ,显示当前系统所有开启的tcp和udp端口以及相关的进程。
或者也可以执行列出系统打开文件的命令 sudo lsof -nP -i| grep LISTEN
,网络端口也可以视为文件。
当我们运维的时候,需要实时查看当前系统与外界的连接统计信息时怎么办?
当然是输入类似top的命令sudo iftop,如下图所示,实时连接情况和实时速率一览无余。
当我们需要知道到底哪个进程在与外界通信,并且实时速率是多少,怎么办?
当然是输入 nethogs命令了,如下图所示,每一个实时通信的进程网络速率一览无余,瞬间可以知道应用的数据量、访问量到底大不大。
当我们需要获取系统的历史流量信息,比如需要看一下按小时、日、月和年统计的流入流出的数据量时,该怎么办?
当然是安装vnstat程序了,如下图所示,默认可以显示按年、昨天和今天的流量统计,通过查看这个流量统计信息,可以对系统的运行情况有个大概判断,如果流量异常,可能系统异常。
当我们需要实时捕获流量信息,并且还需要能够解码数据传输协议时,该怎么办?
当然是tcpdump 莫属了,如下图所示,显示某个地址、某个端口的详细实时流量数据,瞬间捕获http包内容: