来源:运维漫谈
接口信息
当你需要了解有关你登录的设备的网络接口的更多信息时使用接口信息命令。
IP 命令
代码语言:javascript复制查看所有 IP 地址:
ip a
代码语言:javascript复制可以使用 - 4 或 - 6 选项添加过滤器仅显示 IPv4 或 IPv6 地址。
ip -4 a
ip -6 a
代码语言:javascript复制查看网络信息的另一种方法是使用 ifconfig,它比 ip 命令更容易阅读,显示的信息量没有太大差异,一个显著的区别是 ifconfig 显示一些基本的传输 / 接收统计信息,这些统计信息可能很有用,一目了然。
ifconfig
网络状态命令
代码语言:javascript复制netstat 命令对于发现机器上各种服务正在侦听的端口很有用,-t 可以选择 TCP 和 - u UDP,使用 - l 侦听端口的选项,如果你更喜欢查看 IP 地址而不是主机名,请使用该 - n 选项。
添加多个选项时,可以将它们组合在一起,如下所示。
netstat -tul
代码语言:javascript复制如果要查看侦听端口的服务的进程 ID (pid),请使用该 - p 选项,需要使用 sudo 此命令来查看 pid,否则,它不会显示。
sudo netstat -tulp
网络可用性
网络可用性命令可用于快速检查你是否可以访问网络上的主机或确定主机是否已打开电源(假设它已连接到网络)。
Ping 命令
代码语言:javascript复制最著名的网络命令是 ping,可以快速查看是否可以通过网络访问设备,前提是它没有被防火墙阻止,由于流量不需要由路由器路由(流量保持本地),因此始终允许同一网络内的 Ping。
可以使用 ping 带有 IP 地址或主机名的命令。
ping 192.168.1.10
ping rumenz.com
代码语言:javascript复制ping 将继续 ping 直到停止命令(取决于你使用的终端,可以使用键盘快捷键(例如 “Ctrl Shift C”)关闭命令)
要指定 ping 数,请使用该 - c 选项以及要执行的 ping 数。
ping -c 3 192.168.1.10
代码语言:javascript复制如果启用了 IPv6,则该 ping 命令可能默认使用 IPv6 IP 地址,可以使用 - 4 或 - 6 选项指定使用 IPv4 或 IPv6 地址。
ping -4 192.168.1.10
ping -6 192.168.1.10
代码语言:javascript复制可以同时使用多个选项,下面的命令使用 IPv4 地址并 ping 3 次。
ping -4 -c 3 192.168.1.10
某些防火墙配置为禁用 ping,但如果你有多个内部网络,我建议你在本地网络上允许 ping,即使你 ping 阻止了 WAN 地址,因为这对于故障排除非常有用。如果你担心如果你的内部网络或 DMZ 之一受到威胁,会更容易发现网络上的设备,则不允许从你的内部网络向你的 DMZ 发出 ping 或从你的 DMZ 发出 ping,阻止进出 DMZ 的 ping 有助于进一步隔离该网络。
跟踪路由命令
代码语言:javascript复制跟踪路由对于查看到达 Internet 上另一个网络所采用的路径很有用,除非你的网络中有多个路由器,否则它在你的本地网络上用处不大。
对于大多数家庭用户来说,情况并非如此,但一些家庭实验室可能会使用路由器来运行单独的内部网络,某些 traceroute 输出中有星号或问号,这是因为跟踪的整个路径可能并不总是显示,特别是如果防火墙配置为出于安全考虑丢弃 ICMP 流量。
基本 traceroute 命令如下所示,可以使用 IP 地址或主机名。
traceroute 8.8.8.8
traceroute rumenz.com
代码语言:javascript复制与 一样 ping,可以指定 IPv4 和 IPv6。traceroute 默认为 IPv4,不像 ping 需要指定该 - 4 选项。
traceroute -4 google.com
traceroute -6 google.com
traceroute 还有许多其他选项,但基本命令可能对许多用户来说已经足够了。
域名系统
DNS 命令在分配主机名和 / 或覆盖路由器中的 DNS 值时尤其有用,可以确定主机名是否指向正确的 IP 地址。
主机命令
代码语言:javascript复制要在本地网络或 Internet 上查找与域名关联的 IP 地址,请使用该 host 命令。
host rumenz.com
代码语言:javascript复制如果要指定用于 DNS 查找的 DNS 服务器。
host google.com 1.1.1.1
dig命令
代码语言:javascript复制如果希望获得更详细的 DNS 信息,该 dig 命令很有用,基本用法与 host 命令类似。
dig rumenz.com
代码语言:javascript复制还可以指定用于查找的 DNS 服务器。
dig @8.8.8.8 google.com
代码语言:javascript复制如果想要一个域的所有 DNS 记录,可以使用该 any 选项。
dig google.com any
代码语言:javascript复制还可以指定其他 DNS 记录,例如 MX 记录。
dig google.com mx
代码语言:javascript复制当你想知道给定 IP 地址的主机名 / 域名时,反向 DNS 查找很有用,结合使用 - x 选项和 IP 地址即可。
dig -x 8.8.8.8
系统解析命令
代码语言:javascript复制systemd-resolve 命令可用于检查当前的 DNS 服务器设置为什么,当我在设置新的内部网络或弄乱路由器上的 DNS 设置时对 DNS 问题进行故障排除时,我发现这很有帮助。如果运行以下命令,将看到一行 Current DNS Server,DNS Servers 其中列出了通过 DHCP 或手动设置的 DNS。
systemd-resolve --status
代码语言:javascript复制当我更改某些 DNS 设置以使用拆分 DNS(也称为水平拆分、拆分域等)时,我发现能够刷新 DNS 解析器缓存很有用,以便我的系统更快地开始解析新的 IP 地址。要刷新缓存,只需使用 --flush-caches 选项。
sudo systemd-resolve --flush-caches
该 systemd-resolve 命令仅对使用 systemd.
DHCP
DHCP 命令非常有用,尤其是当你由于对路由器或交换机所做的更改而想要手动释放和更新 DHCP 租约时。
Dhclient 命令
代码语言:javascript复制当通过 DHCP 为路由器静态分配 IP 地址、更改路由器 / 交换机上的 DHCP 地址范围或其他与 DHCP 相关的网络更改,可以使用 dhclient 命令更轻松地更新设备 DHCP 租期。
如果不使用该命令,要么必须以物理方式或通过操作系统控制面板断开并重新连接到网络,要么等待 DHCP 租约到期。
要在你的设备上释放和续订 DHCP 租约,你必须按所示顺序输入以下两个命令,还需要 sudo 此命令的权限。
sudo dhclient -r
sudo dhclient