系统管理员网络管理指南

Linux 实用程序和命令的参考列表使管理服务器和网络变得更容易。
357 位读者喜欢这篇文章。
open network

Opensource.com

如果您是系统管理员,您的日常任务包括管理服务器和数据中心的网络。以下 Linux 实用程序和命令(从基本到高级)将帮助您更轻松地进行网络管理。

在以下几个命令中,您会看到 <fqdn>,它代表“完全限定域名”。当您看到它时,请替换为您的网站 URL 或您的服务器(例如,server-name.company.com),视情况而定。

Ping

顾名思义,ping 用于检查从您的系统到您尝试连接的系统的端到端连接。它使用 ICMP 回显数据包,当 ping 成功时,数据包会返回到您的系统。这也是检查系统/网络连接的第一步。您可以将 ping 命令与 IPv4 和 IPv6 地址一起使用。(阅读我的文章“如何在 Linux 中查找您的 IP 地址”以了解有关 IP 地址的更多信息。)

语法

  • IPv4:ping <ip address>/<fqdn>
  • IPv6:ping6 <ip address>/<fqdn>

您还可以使用 ping 将网站名称解析为其对应的 IP 地址,如下所示

screenshot

Traceroute

这是一个很好的实用程序,用于跟踪从您的系统到另一个系统的完整网络路径。ping 检查端到端连接,而 traceroute 实用程序告诉您您到达最终系统、网站或服务器所经过路径上的所有路由器 IP。traceroute 通常是 ping 之后用于网络连接调试的第二步。

语法

  • traceroute <ip address>/<fqdn>

Telnet

语法

  • telnet <ip address>/<fqdn> 用于 telnet 进入任何服务器。

Netstat

网络统计 (netstat) 实用程序用于排除网络连接问题,并检查接口/端口统计信息、路由表、协议统计信息等。它是任何系统管理员必备的工具。

语法

  • netstat -l 显示处于监听模式的所有端口的列表。
  • netstat -a 显示所有端口;要仅指定 TCP,请使用 -at(对于 UDP,请使用 -au)。
  • netstat -r 提供路由表。

screenshot
  • netstat -s 提供每个协议的统计信息摘要。

netstat-s command
  • netstat -i 显示每个接口的传输/接收 (TX/RX) 数据包统计信息。

netstat-i command

Nmcli

nmcli 是一个用于管理网络连接、配置等的优秀实用程序。它可以用于控制 Network Manager 并修改任何设备的网络配置详细信息。

语法

  • nmcli device 列出系统上的所有设备。

  • nmcli device show <interface> 显示指定接口的网络相关详细信息。

  • nmcli connection 检查设备的连接。

  • nmcli connection down <interface> 关闭指定的接口。

  • nmcli connection up <interface> 启动指定的接口。

  • nmcli con add type vlan con-name <connection-name> dev <interface> id <vlan-number> ipv4 <ip/cidr> gw4 <gateway-ip> 向特定接口添加具有指定 VLAN 号、IP 地址和网关的虚拟 LAN (VLAN) 接口。

nmcli

路由

您可以使用许多命令来检查和配置路由。以下是一些有用的命令

语法

  • ip route 显示为各个接口配置的所有当前路由。

IP route
  • route add default gw <gateway-ip> 向路由表添加默认网关。
  • route add -net <network ip/cidr> gw <gateway ip> <interface> 向路由表添加新的网络路由。还有许多其他路由参数,例如添加默认路由、默认网关等。
  • route del -net <network ip/cidr> 从路由表中删除特定的路由条目。

adds or deletes a new network route to the routing table
  • ip neighbor 显示当前邻居表,可用于添加、更改或删除新邻居。

ip neighbor

ip neighbor help
  • arp(代表地址解析协议)类似于 ip neighborarp 将系统的 IP 地址映射到其对应的 MAC(媒体访问控制)地址。

arp

Tcpdump 和 Wireshark

Linux 提供了许多数据包捕获工具,如 tcpdumpwiresharktshark 等。它们用于捕获传输/接收的数据包中的网络流量,因此对于系统管理员调试任何数据包丢失或相关问题非常有用。对于命令行爱好者来说,tcpdump 是一个很棒的工具,而对于 GUI 用户来说,wireshark 是一个用于捕获和分析数据包的优秀实用程序。tcpdump 是一个内置的 Linux 实用程序,用于捕获网络流量。它可以用于捕获/显示特定端口、协议等的流量。

语法

  • tcpdump -i <interface-name> 显示来自指定接口的实时数据包。可以通过添加 -w 标志和输出文件名到命令来将数据包保存在文件中,例如:tcpdump -w <output-file.> -i <interface-name>

tcpdump -i
  • tcpdump -i <interface> src <source-ip> 从特定源 IP 捕获数据包。
  • tcpdump -i <interface> dst <destination-ip> 从特定目标 IP 捕获数据包。
  • tcpdump -i <interface> port <port-number> 捕获特定端口号(如 53、80、8080 等)的流量。
  • tcpdump -i <interface> <protocol> 捕获特定协议(如 TCP、UDP 等)的流量。

Iptables

iptables 是一个类似防火墙的数据包过滤实用程序,可以允许或阻止某些流量。此实用程序的范围非常广泛;以下是一些最常见的用途。

语法

  • iptables -L 列出所有现有的 iptables 规则。
  • iptables -F 删除所有现有规则。

以下命令允许来自指定端口号的流量到指定接口

  • iptables -A INPUT -i <interface> -p tcp –dport <port-number> -m state –state NEW,ESTABLISHED -j ACCEPT
  • iptables -A OUTPUT -o <interface> -p tcp -sport <port-number> -m state – state ESTABLISHED -j ACCEPT

以下命令允许环回访问系统

  • iptables -A INPUT -i lo -j ACCEPT
  • iptables -A OUTPUT -o lo -j ACCEPT

Nslookup

nslookup 工具用于获取网站或域的 IP 地址映射。它还可以用于获取有关您的 DNS 服务器的信息,例如网站上的所有 DNS 记录(请参见以下示例)。与 nslookup 类似的工具是 dig(域名信息搜索器)实用程序。

语法

  • nslookup <website-name.com> 在“服务器”字段中显示您的 DNS 服务器的 IP 地址,并在下面给出您尝试访问的网站的 IP 地址。
  • nslookup -type=any <website-name.com> 显示指定网站/域的所有可用记录。

网络/接口调试

以下是用于排除接口连接或相关网络问题所需的命令和文件的摘要。

语法

  • ss 是一个用于转储套接字统计信息的实用程序。
  • nmap <ip-address>,代表网络映射器,扫描网络端口,发现主机,检测 MAC 地址等等。
  • ip addr/ifconfig -a 提供系统所有接口的 IP 地址和相关信息。
  • ssh -vvv user@<ip/domain> 使您能够使用指定的 IP/域和用户名 SSH 连接到另一台服务器。-vvv 标志提供 SSH 连接到服务器时正在进行的进程的“三重详细”信息。
  • ethtool -S <interface> 检查特定接口的统计信息。
  • ifup <interface> 启动指定的接口。
  • ifdown <interface> 关闭指定的接口。
  • systemctl restart network 重启系统的网络服务。
  • /etc/sysconfig/network-scripts/<interface-name> 是一个接口配置文件,用于为指定接口设置 IP、网络、网关等。可以在此处设置 DHCP 模式。
  • /etc/hosts 此文件包含自定义主机/域到 IP 的映射。
  • /etc/resolv.conf 指定系统的 DNS 名称服务器 IP。
  • /etc/ntp.conf 指定 NTP 服务器域名。

13 条评论

不错的文章,但您应该考虑使用 "ss" 而不是 "netstat",后者即将被弃用。

对于 ping/traceroute 工具,别忘了 mtr,它非常方便。

为了方便起见,host 和 dig 也非常有用,与 nslookup 一起使用。

不确定为什么这么多人仍然痴迷于 iptables,而 nftables 就在眼前,并且在任何合理更新的发行版中都可用。

您好,我尝试访问“更多 Linux 资源”中“高级 Linux 命令速查表”文章的 URL,但返回了错误代码 404。有人可以解决这个问题吗?

使用或鼓励使用 nslookup 很好地告诉其他人,您实际上是一位 Windows 管理员,只是涉足 Linux 管理。该工具大约 10 年前已被弃用,转而使用 dig。

据我所知,nslookup 已恢复为未弃用,dig 是一个非常强大的工具,尽管两者都有其优点和缺点

回复 ,作者:foobrew (未验证)

如今,默认情况下应在所有 *nix 机器上禁用 telnet 服务器。ssh 是更好的选择。无论如何,您可以使用它做很多比 telnet 更多的事情。

话虽如此,telnet 客户端有一件事 ssh 无法做到,这很有用。它对于将手工制作的命令传递给其他服务以查看它们的响应很有用。但是,如今的调试选项如此广泛,以至于几乎没有人费心为此目的使用 telnet。

rsync 对于抓取各种文件以进行离线分析也非常方便。它应该在每个系统管理员的故障排除工具包中。

说到这里,diff 对于将配置文件与基线文件进行比较以查找更改非常方便。

感谢分享,我尝试包含大多数内置选项,即使我从不使用 telnet,ssh FTW!

回复 ,作者:sgtrock

我会说是 wireshark 和 tshark。

是的,两者都是很棒的实用程序!

回复 ,作者:Edmundo (未验证)

Creative Commons License本作品根据 Creative Commons 许可协议 授权。 署名-相同方式共享 4.0 国际许可协议。
© . All rights reserved.