每个linux管理员都应该知道的9个网络命令
ip
ip
命令取代了旧的ifconfig
和route
命令。ip
命令允许你配置、添加、删除和查看网络接口。 例如,如果你发出命令ip a
,你将看到所有网络接口的所有配置。这可能有点压倒性,所以要只获取你需要的信息,请使用ip link show
。
要查看特定接口,你可以发出命令
ip address show dev ens5
,这将为你提供更详细的信息,但仅适用于名为ens5
的网络接口。
你还可以使用命令
ip route
查看路由表。
ip
命令还允许你启用和禁用网络接口。要启动接口 ens5,命令是:
sudo ip link set ens5 up
要关闭相同的接口,命令将是:
sudo ip link set ens5 down
netstat
netstat
命令允许你检查网络连接、路由表、接口统计信息、伪装连接、多播成员资格等。这是一个非常好的工具,可以帮助你解决网络问题。例如,你可以使用netstat
通过以下命令侦听所有tcp端口:
netstat -at
当流量进来时,
netstat
打印记录。
netstat
命令也可用于仅显示当前正在侦听的端口。这是通过以下命令完成的:
netstat -l
你还可以指定侦听TCP或UDP端口,如下所示:
netstat -lt
netstat -lu
监听所有端口的所有统计信息:
netstat -s
要将进程 ID(PID) 添加到输出:
netstat -pt
nmap
nmap
应用程序用于网络发现、审计和管理。nmap
可以处理的更有用的任务是远程机器上打开了哪些端口和操作系统/服务检测。
要检查并查看远程计算机上打开了哪些端口,请发出命令:微信搜索公众号:架构师指南,回复:架构师 领取资料 。
nmap SERVER
其中SERVER是远程服务器的IP地址或域。
输出将列出服务器上所有打开的端口,例如:
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
你还可以使用以下命令检查网络上的主机:
nmap -sn 110/24
输出将显示如下结果:
Nmap scan report for 111
Host is up(00096s latency).
Nmap scan report for 1135
Host is up(0038s latency).
Nmap scan report for 1142
Host is up(0032s latency).
Nmap scan report for 1150
Host is up(0051s latency).
Nmap scan report for 1153
Host is up(0031s latency).
Nmap scan report for 1160
Host is up(0038s latency).
Nmap scan report for 1167
Host is up(0035s latency).
Nmap scan report for 11108
要找出主机正在使用哪些操作系统,请添加 -O 标志,例如:
sudo nmap -O 11120
你应该会看到如下内容:
Running: Linux X
OS CPE: cpe:/o:linux:linux_kernel:32
OS details: Linux 32
因为我扫描的主机上的内核是 5.8.0-41,所以输出可能非常具有欺骗性。你可以使用以下命令获取有关该主机的更多详细信息:
sudo nmap -A 11120
traceroute
如果你使用 ping 命令(这是每个管理员都应该知道的非常基本的网络命令)并且它显示丢失的数据包,你将需要使用
traceroute
来查找这些数据包所采用的路由。这是一个非常方便的工具,可以找出路由中的哪一跳导致问题。
如果你发出命令:
traceroute rumenz.com
你将看到数据包从当前机器到 rumenz.com 的每一跳的列表。你将看到从一跳到另一跳所花费的时间(以毫秒为单位),或者如果一跳有问题,你将看到数据包失败的确切位置。
上述命令的输出应该不会花费太多时间。如果是这样,你就知道存在问题以及问题出在哪里。
tcpdump
tcpdump 是一个数据包嗅探工具,它将显示通过网络传输的网络数据包。tcpdump 命令可以实时读取内容,也可以从之前捕获的会话中读取内容。
要侦听所有接口上的网络数据包,请发出命令:
sudo tcpdump -i any
这种命令的问题是它会显示大量的信息。因此,你可能希望将数据包捕获到文件中,以便稍后查看。
sudo tcpdump -i any -w capture.pcap
在你感觉已经捕获了足够多的数据包后,你可以使用 [Ctrl]+[c] 组合停止命令。要查看命令中的数据包,你将发出:
tcpdump -r capture.pcap
ssh
如果你打算进行远程网络管理,你将使用 Secure Shell(SSH)。该工具有多种使用方法,但基本用法是:
ssh USER@SERVER
其中 USER 是远程用户名,SERVER是远程服务器的IP地址或域。如果你的服务器对 SSH 使用非标准端口,则命令为:
ssh USER@SERVER -p PORT
其中 USER 是远程用户名,SERVER 是远程服务器的 IP 地址或域,PORT是远程服务器上SSH守护程序使用的端口号。
wget
wget
命令允许你将文件下载到你的服务器。
wget http://SERVER/FILE
其中 SERVER 是远程服务器的 IP 地址或域,FILE 是要下载的文件。
netplan
Netplan 是 Ubuntu Server 上用于测试和应用网络接口配置的工具。Netplan从
/etc/netplan
目录读取 YAML 文件。你可以配置多个接口,然后使用以下命令测试配置:
sudo netplan try
如果测试恢复正常,你可以使用以下命令应用配置(这也将启动接口)
sudo netplan apply
要了解如何使用 netplan 配置静态 IP 地址,请阅读如何在 Ubuntu Server 18.04 中配置静态 IP 地址。
nmtui
Nmtui是基于 Red Hat 的发行版上的 ncurses 接口,允许你配置和启动/关闭网络接口。要了解如何使用 nmtui,请阅读如何从命令行编辑 CentOS 网络连接。