linux网络管理
NetworkManager
Section titled “NetworkManager”NetworkManager 是一个开源的网络管理工具,旨在简化Linux和其他Unix类系统上的网络配置和管理。它提供了一个统一的接口来管理各种网络连接,包括有线网络、无线网络、移动宽带、VPN等。以下是NetworkManager的一些关键特性和常见用法:
-
自动网络配置:
- NetworkManager能够自动检测并配置网络连接。当您连接到一个新网络时,它会自动处理配置细节,如IP地址、DNS服务器等。
-
支持多种网络类型:
- 支持以太网(有线网络)、Wi-Fi(无线网络)、移动宽带(3G/4G)、蓝牙、VPN等多种类型的网络连接。
-
用户友好的图形界面:
- NetworkManager附带了多个图形前端,如GNOME的nm-applet和KDE的plasma-nm,使用户可以方便地通过图形界面管理网络连接。
-
命令行工具:
- 提供了nmcli和nmtui两个命令行工具,供在终端中进行网络配置和管理。
-
配置文件管理:
- 支持通过配置文件管理网络连接设置,允许在不同的网络环境中快速切换配置。
在大多数Linux发行版中,NetworkManager默认是预装的。如果没有,可以通过包管理器进行安装。例如,在Debian或Ubuntu系统上可以使用以下命令安装:
sudo apt-get install network-manager在CentOS或Fedora系统上,可以使用:
sudo yum install NetworkManager安装完成后,可以使用以下命令启动NetworkManager服务:
sudo systemctl start NetworkManagersudo systemctl enable NetworkManager # 开机自启动nmcli 是NetworkManager的命令行工具,用于管理网络连接。以下是一些常用命令:
-
显示网络状态:
Terminal window nmcli general status -
列出所有连接:
Terminal window nmcli connection show -
激活一个连接:
Terminal window nmcli connection up <connection_name> -
禁用一个连接:
Terminal window nmcli connection down <connection_name> -
连接到一个Wi-Fi网络:
Terminal window nmcli device wifi connect <SSID> password <password>
nmtui 是一个基于文本的用户界面,允许在终端中以图形方式管理网络连接。
- 启动nmtui:
Terminal window nmtui
Netplan
Section titled “Netplan”Netplan 是一种网络配置工具,主要用于配置Ubuntu等基于Debian的系统上的网络。它使用YAML文件定义网络设置,并通过systemd-networkd或NetworkManager来应用这些设置。Netplan提供了一种简洁、统一的方式来管理网络配置。
Netplan 主要特性
Section titled “Netplan 主要特性”- 简单的YAML配置文件:使用YAML文件来定义网络接口、IP地址、网关、DNS等配置。
- 统一管理:支持多种网络管理后台,包括systemd-networkd和NetworkManager。
- 动态和静态配置:支持动态(DHCP)和静态网络配置。
- 支持多种网络类型:包括以太网、有线网络、无线网络等。
Netplan 配置文件
Section titled “Netplan 配置文件”Netplan 的配置文件位于 /etc/netplan/ 目录下,通常命名为 *.yaml 文件。默认情况下,Ubuntu会创建一个默认的Netplan配置文件,例如 /etc/netplan/01-netcfg.yaml。
Netplan 配置示例
Section titled “Netplan 配置示例”以下是一些常见的Netplan配置示例:
1. 使用 DHCP 配置以太网接口
Section titled “1. 使用 DHCP 配置以太网接口”network: version: 2 ethernets: eth0: dhcp4: true2. 配置静态 IP 地址的以太网接口
Section titled “2. 配置静态 IP 地址的以太网接口”network: version: 2 ethernets: eth0: dhcp4: false addresses: - 192.168.1.100/24 gateway4: 192.168.1.1 nameservers: addresses: - 8.8.8.8 - 8.8.4.43. 配置无线网络(使用 WPA-PSK)
Section titled “3. 配置无线网络(使用 WPA-PSK)”network: version: 2 wifis: wlan0: access-points: "MySSID": password: "mypassword" dhcp4: true编辑完配置文件后,可以使用以下命令来应用配置:
sudo netplan apply在应用配置之前,可以使用以下命令来验证配置文件的语法是否正确:
sudo netplan try此命令将暂时应用配置,并在90秒后回滚,以防配置错误导致网络中断。
-
列出当前配置:
Terminal window netplan show -
生成配置文件(如果有变动):
Terminal window sudo netplan generate
systemd-networkd
Section titled “systemd-networkd”ifupdown
Section titled “ifupdown”ifupdown 是一个传统的 Linux 网络管理工具集,包含 ifup 和 ifdown 命令,用于启动和关闭网络接口。它们主要与 /etc/network/interfaces 文件配合使用,以定义和管理网络接口的配置。以下是关于 ifupdown 的详细介绍。
安装 ifupdown
Section titled “安装 ifupdown”在大多数 Linux 发行版中,ifupdown 通常是预装的。如果没有,可以通过包管理器进行安装。例如,在 Debian 或 Ubuntu 系统上,可以使用以下命令进行安装:
sudo apt-get install ifupdown/etc/network/interfaces 文件
Section titled “/etc/network/interfaces 文件”/etc/network/interfaces 文件用于定义网络接口的配置。以下是一个示例配置文件:
# Loopback 网络接口auto loiface lo inet loopback
# 以太网接口 eth0,使用 DHCP 配置auto eth0iface eth0 inet dhcp
# 以太网接口 eth1,使用静态 IP 配置auto eth1iface eth1 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8 8.8.4.4- auto:指示系统在启动时自动启动指定的网络接口。
- iface:定义网络接口的配置。
- inet:表示接口使用 IPv4 协议。
- dhcp:表示接口通过 DHCP 获取 IP 地址。
- static:表示接口使用静态 IP 地址。
ifup 和 ifdown 基本用法
Section titled “ifup 和 ifdown 基本用法”ifup 命令用于启动并配置网络接口。它会读取 /etc/network/interfaces 文件中的配置,并应用到指定的网络接口。
# 启动指定接口sudo ifup eth0
# 启动所有配置的接口sudo ifup -aifdown
Section titled “ifdown”ifdown 命令用于关闭并取消配置网络接口。它会读取 /etc/network/interfaces 文件中的配置,并关闭指定的网络接口。
# 关闭指定接口sudo ifdown eth0
# 关闭所有配置的接口sudo ifdown -a高级配置示例
Section titled “高级配置示例”配置多 IP 地址
Section titled “配置多 IP 地址”一个接口可以配置多个 IP 地址:
auto eth0iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0
iface eth0 inet static address 192.168.1.101 netmask 255.255.255.0配置 VLAN
Section titled “配置 VLAN”配置 VLAN 接口:
auto eth0.10iface eth0.10 inet static address 192.168.10.1 netmask 255.255.255.0 vlan-raw-device eth0配置网络桥接:
auto br0iface br0 inet static address 192.168.1.10 netmask 255.255.255.0 bridge_ports eth0 eth1使用 ifquery
Section titled “使用 ifquery”ifquery 是 ifupdown 包的一部分,用于查询和调试接口配置。
# 显示接口配置ifquery eth0
# 验证配置文件ifquery --listwpa_supplicant
Section titled “wpa_supplicant”wpa_supplicant 是一个用户空间的网络工具,用于在 Linux 和其他操作系统上管理无线网络连接,特别是使用 WPA 和 WPA2 加密的无线网络。它可以与不同的无线工具和网络管理守护进程(如 NetworkManager)配合使用。以下是 wpa_supplicant 的安装、配置和使用方法。
安装 wpa_supplicant
Section titled “安装 wpa_supplicant”在大多数 Linux 发行版上,可以通过包管理器安装 wpa_supplicant。
在 Debian/Ubuntu 系统上安装 wpa_supplicant
Section titled “在 Debian/Ubuntu 系统上安装 wpa_supplicant”sudo apt-get updatesudo apt-get install wpasupplicant在 CentOS/RHEL 系统上安装 wpa_supplicant
Section titled “在 CentOS/RHEL 系统上安装 wpa_supplicant”sudo yum install wpa_supplicant在 Fedora 系统上安装 wpa_supplicant
Section titled “在 Fedora 系统上安装 wpa_supplicant”sudo dnf install wpa_supplicant在 Arch Linux 系统上安装 wpa_supplicant
Section titled “在 Arch Linux 系统上安装 wpa_supplicant”sudo pacman -S wpa_supplicant配置 wpa_supplicant
Section titled “配置 wpa_supplicant”wpa_supplicant 使用配置文件 /etc/wpa_supplicant/wpa_supplicant.conf 来存储无线网络的配置信息。以下是一个示例配置文件:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1country=US
network={ ssid="YourNetworkSSID" psk="YourNetworkPassword" key_mgmt=WPA-PSK}解释配置文件中的条目
Section titled “解释配置文件中的条目”ctrl_interface:控制接口,用于与wpa_cli或其他管理工具通信。update_config:允许wpa_supplicant更新配置文件。country:设置国家代码。network:定义一个无线网络配置块。ssid:无线网络的 SSID。psk:无线网络的预共享密钥(密码)。key_mgmt:密钥管理协议(例如 WPA-PSK)。
使用 wpa_supplicant 连接无线网络
Section titled “使用 wpa_supplicant 连接无线网络”1. 创建配置文件
Section titled “1. 创建配置文件”首先,确保 /etc/wpa_supplicant/wpa_supplicant.conf 文件已正确配置。
2. 启动 wpa_supplicant
Section titled “2. 启动 wpa_supplicant”使用以下命令启动 wpa_supplicant 并指定配置文件:
sudo wpa_supplicant -B -i <interface> -c /etc/wpa_supplicant/wpa_supplicant.conf示例:
sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf选项解释:
-B:在后台运行wpa_supplicant。-i:指定无线接口。-c:指定配置文件。
3. 获取 IP 地址
Section titled “3. 获取 IP 地址”使用 dhclient 获取 IP 地址:
sudo dhclient wlan0使用 wpa_cli 管理 wpa_supplicant
Section titled “使用 wpa_cli 管理 wpa_supplicant”wpa_cli 是一个用于与 wpa_supplicant 交互的命令行工具。可以用它来动态管理无线网络连接。
启动 wpa_cli
Section titled “启动 wpa_cli”sudo wpa_cli进入 wpa_cli 命令行后,可以使用以下命令:
扫描无线网络
Section titled “扫描无线网络”scanscan_results连接到无线网络
Section titled “连接到无线网络”添加一个新网络:
add_network设置 SSID:
set_network 0 ssid "YourNetworkSSID"设置 PSK:
set_network 0 psk "YourNetworkPassword"启用网络:
enable_network 0保存配置:
save_config使用 NetworkManager 配合 wpa_supplicant
Section titled “使用 NetworkManager 配合 wpa_supplicant”wpa_supplicant 通常与 NetworkManager 一起使用,以提供更方便的网络管理功能。NetworkManager 会自动调用 wpa_supplicant 来处理无线网络连接。
安装 NetworkManager
Section titled “安装 NetworkManager”在 Debian/Ubuntu 系统上:
sudo apt-get install network-manager在 CentOS/RHEL 系统上:
sudo yum install NetworkManager在 Fedora 系统上:
sudo dnf install NetworkManager在 Arch Linux 系统上:
sudo pacman -S networkmanager启用并启动 NetworkManager
Section titled “启用并启动 NetworkManager”sudo systemctl start NetworkManagersudo systemctl enable NetworkManager使用 nmcli 连接无线网络
Section titled “使用 nmcli 连接无线网络”nmcli 是 NetworkManager 的命令行工具,用于配置和管理网络连接。
查看可用网络
Section titled “查看可用网络”nmcli device wifi list连接到无线网络
Section titled “连接到无线网络”nmcli device wifi connect <SSID> password <password>示例:
nmcli device wifi connect YourNetworkSSID password YourNetworkPassword查看当前连接状态
Section titled “查看当前连接状态”nmcli connection showiwd(iNet wireless daemon)是一个用于管理无线网络连接的现代工具。iwd 是由 Intel 开发的,它的目标是提供更简洁、高效和现代化的无线网络管理。iwd 通常用于替代传统的 wpa_supplicant。以下是关于 iwd 的安装、配置和使用的一些基本介绍。
安装 iwd
Section titled “安装 iwd”在大多数 Linux 发行版上,可以通过包管理器安装 iwd。
在 Debian/Ubuntu 系统上安装 iwd
Section titled “在 Debian/Ubuntu 系统上安装 iwd”sudo apt-get updatesudo apt-get install iwd在 CentOS/RHEL 系统上安装 iwd
Section titled “在 CentOS/RHEL 系统上安装 iwd”sudo yum install iwd在 Fedora 系统上安装 iwd
Section titled “在 Fedora 系统上安装 iwd”sudo dnf install iwd在 Arch Linux 系统上安装 iwd
Section titled “在 Arch Linux 系统上安装 iwd”sudo pacman -S iwd启动和启用 iwd
Section titled “启动和启用 iwd”安装完成后,需要启动 iwd 服务并设置开机自启动。
sudo systemctl start iwdsudo systemctl enable iwd配置 iwd
Section titled “配置 iwd”iwd 的配置文件通常位于 /etc/iwd 目录下。创建或编辑配置文件 main.conf:
sudo nano /etc/iwd/main.conf在文件中添加以下内容(根据需要修改):
[General]EnableNetworkConfiguration=true
[Network]NameResolvingService=systemd使用 iwd 进行 WiFi 管理
Section titled “使用 iwd 进行 WiFi 管理”iwd 提供了一个命令行工具 iwctl,用于管理无线网络连接。
进入 iwctl 命令行
Section titled “进入 iwctl 命令行”sudo iwctl在 iwctl 命令行中,可以使用以下命令管理 WiFi 连接:
扫描可用网络
Section titled “扫描可用网络”device liststation <device_name> scanstation <device_name> get-networks例如:
device liststation wlan0 scanstation wlan0 get-networks连接到 WiFi 网络
Section titled “连接到 WiFi 网络”station <device_name> connect <SSID>例如:
station wlan0 connect MySSID连接时,系统可能会提示您输入 WiFi 密码。
station <device_name> disconnect例如:
station wlan0 disconnect显示当前连接状态
Section titled “显示当前连接状态”station <device_name> show例如:
station wlan0 show列出已保存的网络
Section titled “列出已保存的网络”known-networks list删除已保存的网络
Section titled “删除已保存的网络”known-networks remove <SSID>dns管理工具
Section titled “dns管理工具”您可以使用文本编辑器直接编辑 /etc/resolv.conf 文件来配置 DNS 服务器。以下是一个示例文件:
# /etc/resolv.conf 文件示例
# 使用 Google 的公共 DNS 服务器nameserver 8.8.8.8nameserver 8.8.4.4
# 使用 Cloudflare 的公共 DNS 服务器nameserver 1.1.1.1nameserver 1.0.0.1
# 设置搜索域search example.com使用 nano 或 vim 编辑文件:
sudo nano /etc/resolv.conf# 或者sudo vim /etc/resolv.conf在某些情况下,系统或网络管理工具可能会覆盖 /etc/resolv.conf 文件。可以通过以下方法防止文件被覆盖:
设置不可变属性:
sudo chattr +i /etc/resolv.conf使用 lsattr 命令查看文件属性:
lsattr /etc/resolv.conf要取消不可变属性,可以使用以下命令:
sudo chattr -i /etc/resolv.confsystemd-resolved
Section titled “systemd-resolved”- 启用并启动 systemd-resolved:
sudo systemctl enable systemd-resolvedsudo systemctl start systemd-resolved- 链接 /etc/resolv.conf 到 systemd-resolved:
确保 /etc/resolv.conf 链接到 systemd-resolved 的生成文件:
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.confresolvconf
Section titled “resolvconf”在一些系统上,/etc/resolv.conf 文件可能由 resolvconf 工具动态管理。resolvconf 会根据不同的网络配置自动生成该文件。要使用 resolvconf 管理 DNS 配置,可以按照以下步骤操作:
- 安装 resolvconf:
sudo apt-get install resolvconf- 配置网络接口:
在 /etc/network/interfaces 文件中添加 DNS 服务器配置:
# /etc/network/interfaces 文件示例
auto eth0iface eth0 inet dhcp dns-nameservers 8.8.8.8 8.8.4.4 dns-search example.com- 启用并启动 resolvconf:
sudo systemctl enable resolvconfsudo systemctl start resolvconf- 更新 resolvconf:
sudo resolvconf -u命令行管理工具
Section titled “命令行管理工具”ifconfig
Section titled “ifconfig”ifconfig 是一个传统的网络管理工具,用于配置、管理和查询 Linux 系统上的网络接口。虽然在许多现代系统中已经被 ip 命令取代,但 ifconfig 仍然在许多系统中可用,并且在某些情况下仍然非常有用。以下是 ifconfig 的一些基本用法和示例。
安装 ifconfig
Section titled “安装 ifconfig”在一些 Linux 发行版中,ifconfig 可能未默认安装,可以通过包管理器进行安装。例如,在 Debian 或 Ubuntu 系统上,可以使用以下命令:
sudo apt-get install net-toolsifconfig 基本用法
Section titled “ifconfig 基本用法”查看网络接口状态
Section titled “查看网络接口状态”显示所有网络接口及其当前状态:
ifconfig显示特定网络接口的状态:
ifconfig eth0配置 IP 地址
Section titled “配置 IP 地址”为网络接口配置静态 IP 地址:
sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0启用或禁用网络接口
Section titled “启用或禁用网络接口”启用网络接口:
sudo ifconfig eth0 up禁用网络接口:
sudo ifconfig eth0 down配置网络接口的广播地址和子网掩码
Section titled “配置网络接口的广播地址和子网掩码”配置广播地址:
sudo ifconfig eth0 broadcast 192.168.1.255配置子网掩码:
sudo ifconfig eth0 netmask 255.255.255.0配置多 IP 地址
Section titled “配置多 IP 地址”为一个接口配置多个 IP 地址:
sudo ifconfig eth0:0 192.168.1.101 netmask 255.255.255.0sudo ifconfig eth0:1 192.168.1.102 netmask 255.255.255.0查看和配置 MAC 地址
Section titled “查看和配置 MAC 地址”查看网络接口的 MAC 地址:
ifconfig eth0更改网络接口的 MAC 地址:
sudo ifconfig eth0 hw ether 00:11:22:33:44:55清空 IP 配置
Section titled “清空 IP 配置”清除网络接口上的 IP 地址:
sudo ifconfig eth0 0.0.0.0- 查看所有网络接口信息
ifconfig输出示例:
eth0 Link encap:Ethernet HWaddr 00:0c:29:68:8c:35 inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:123456 errors:0 dropped:0 overruns:0 frame:0 TX packets:123456 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:12345678 (12.3 MB) TX bytes:12345678 (12.3 MB)- 为 eth0 配置静态 IP 地址
sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0- 启用和禁用网络接口 eth0
启用:
sudo ifconfig eth0 up禁用:
sudo ifconfig eth0 down- 为 eth0 配置广播地址
sudo ifconfig eth0 broadcast 192.168.1.255- 更改 eth0 的 MAC 地址
sudo ifconfig eth0 hw ether 00:11:22:33:44:55route 命令是一个传统的网络路由管理工具,用于查看和配置Linux系统中的IP路由表。虽然现代系统中通常使用 ip route 命令来替代 route 命令,但在一些系统中,route 仍然是一个有用的工具。以下是 route 命令的一些基本用法和示例。
安装命令
sudo apt-get install net-toolssudo yum install net-tools查看当前路由表
Section titled “查看当前路由表”route -n选项解释:
-n:以数字形式显示地址而不是尝试解析主机名。
添加静态路由
Section titled “添加静态路由”添加到特定网络的静态路由
Section titled “添加到特定网络的静态路由”sudo route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1选项解释:
-net:表示目标是一个网络。192.168.2.0:目标网络地址。netmask 255.255.255.0:子网掩码。gw 192.168.1.1:网关地址。
添加到特定主机的静态路由
Section titled “添加到特定主机的静态路由”sudo route add -host 192.168.2.10 gw 192.168.1.1选项解释:
-host:表示目标是一个主机。192.168.2.10:目标主机地址。gw 192.168.1.1:网关地址。
删除静态路由
Section titled “删除静态路由”删除到特定网络的静态路由
Section titled “删除到特定网络的静态路由”sudo route del -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1删除到特定主机的静态路由
Section titled “删除到特定主机的静态路由”sudo route del -host 192.168.2.10 gw 192.168.1.1设置默认网关
Section titled “设置默认网关”sudo route add default gw 192.168.1.1查看路由表示例
Section titled “查看路由表示例”route -n输出示例:
Kernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0添加和删除静态路由示例
Section titled “添加和删除静态路由示例”- 添加到网络
192.168.2.0/24的静态路由
sudo route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1- 添加到主机
192.168.2.10的静态路由
sudo route add -host 192.168.2.10 gw 192.168.1.1- 删除到网络
192.168.2.0/24的静态路由
sudo route del -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1- 删除到主机
192.168.2.10的静态路由
sudo route del -host 192.168.2.10 gw 192.168.1.1设置默认网关示例
Section titled “设置默认网关示例”sudo route add default gw 192.168.1.1使用 ip route 替代 route
Section titled “使用 ip route 替代 route”现代 Linux 系统中,ip route 命令通常替代 route 命令使用。以下是 ip route 命令的基本用法示例:
ip route show添加静态路由
Section titled “添加静态路由”sudo ip route add 192.168.2.0/24 via 192.168.1.1删除静态路由
Section titled “删除静态路由”sudo ip route del 192.168.2.0/24设置默认网关
Section titled “设置默认网关”sudo ip route add default via 192.168.1.1ip 命令是一个现代化且功能强大的网络管理工具,用于配置和查看网络接口、路由、隧道等。ip 命令取代了传统的 ifconfig 和 route 命令,并提供了更丰富的功能。以下是 ip 命令的一些基本用法和示例:
安装命令
sudo apt-get install iproute2sudo yum install iproute查看所有网络接口
Section titled “查看所有网络接口”ip addr show或简写:
ip a查看特定网络接口
Section titled “查看特定网络接口”ip addr show dev eth0配置网络接口
Section titled “配置网络接口”分配 IP 地址
Section titled “分配 IP 地址”为网络接口 eth0 分配静态 IP 地址:
sudo ip addr add 192.168.1.100/24 dev eth0删除 IP 地址
Section titled “删除 IP 地址”从网络接口 eth0 删除 IP 地址:
sudo ip addr del 192.168.1.100/24 dev eth0启用或禁用网络接口
Section titled “启用或禁用网络接口”启用网络接口 eth0:
sudo ip link set eth0 up禁用网络接口 eth0:
sudo ip link set eth0 down配置 MTU
Section titled “配置 MTU”设置网络接口 eth0 的最大传输单元 (MTU):
sudo ip link set eth0 mtu 1400查看和配置路由
Section titled “查看和配置路由”ip route show或简写:
ip r添加静态路由
Section titled “添加静态路由”添加到目标网络 192.168.2.0/24 的静态路由,通过网关 192.168.1.1:
sudo ip route add 192.168.2.0/24 via 192.168.1.1删除静态路由
Section titled “删除静态路由”删除到目标网络 192.168.2.0/24 的静态路由:
sudo ip route del 192.168.2.0/24查看和配置邻居 (ARP) 表
Section titled “查看和配置邻居 (ARP) 表”ip neigh show或简写:
ip n添加邻居 (ARP) 表项
Section titled “添加邻居 (ARP) 表项”为 IP 地址 192.168.1.2 添加一个静态 ARP 表项,MAC 地址为 00:11:22:33:44:55:
sudo ip neigh add 192.168.1.2 lladdr 00:11:22:33:44:55 dev eth0删除邻居 (ARP) 表项
Section titled “删除邻居 (ARP) 表项”删除 IP 地址 192.168.1.2 的 ARP 表项:
sudo ip neigh del 192.168.1.2 dev eth0创建和删除网络设备
Section titled “创建和删除网络设备”创建虚拟以太网设备 (veth)
Section titled “创建虚拟以太网设备 (veth)”创建一对虚拟以太网设备 veth0 和 veth1:
sudo ip link add veth0 type veth peer name veth1删除虚拟以太网设备
Section titled “删除虚拟以太网设备”删除虚拟以太网设备 veth0 和 veth1:
sudo ip link del veth0配置网络命名空间
Section titled “配置网络命名空间”创建网络命名空间
Section titled “创建网络命名空间”创建网络命名空间 ns1:
sudo ip netns add ns1删除网络命名空间
Section titled “删除网络命名空间”删除网络命名空间 ns1:
sudo ip netns del ns1在网络命名空间中执行命令
Section titled “在网络命名空间中执行命令”在网络命名空间 ns1 中运行 ip 命令查看接口:
sudo ip netns exec ns1 ip addr shownetstat
Section titled “netstat”netstat 是一个用于显示网络连接、路由表、接口统计信息等的命令行工具。尽管在现代系统中,ss 和 ip 命令更为常用,但 netstat 仍然在许多场景下非常有用。以下是 netstat 命令的一些基本用法和示例。
安装 net-tools
Section titled “安装 net-tools”在某些系统中,netstat 可能未默认安装,可以通过安装 net-tools 包来获取该工具。例如,在 Debian 或 Ubuntu 系统上,可以使用以下命令进行安装:
sudo apt-get install net-tools基本用法和选项
Section titled “基本用法和选项”查看所有网络连接
Section titled “查看所有网络连接”netstat -a查看所有监听的端口
Section titled “查看所有监听的端口”netstat -l查看所有 TCP 连接
Section titled “查看所有 TCP 连接”netstat -t查看所有 UDP 连接
Section titled “查看所有 UDP 连接”netstat -u查看所有 UNIX 套接字
Section titled “查看所有 UNIX 套接字”netstat -x高级用法和示例
Section titled “高级用法和示例”查看详细的网络连接信息
Section titled “查看详细的网络连接信息”netstat -v查看网络接口的统计信息
Section titled “查看网络接口的统计信息”netstat -inetstat -r显示网络连接和进程信息
Section titled “显示网络连接和进程信息”netstat -p持续更新网络连接信息
Section titled “持续更新网络连接信息”netstat -c您可以组合多个选项来获取更详细的信息。例如,查看所有 TCP 连接及其对应的进程信息:
netstat -tp常用选项总结
Section titled “常用选项总结”-a:显示所有网络连接,包括监听和非监听。-l:只显示监听的套接字。-t:显示 TCP 连接。-u:显示 UDP 连接。-x:显示 UNIX 套接字。-v:显示详细信息。-i:显示网络接口统计信息。-r:显示路由表。-p:显示进程信息。-c:持续更新显示。
- 查看所有网络连接:
netstat -a- 查看所有监听的端口:
netstat -l- 查看所有 TCP 连接:
netstat -t- 查看所有 UDP 连接:
netstat -u- 查看路由表:
netstat -r- 查看网络接口的统计信息:
netstat -i- 查看所有网络连接及其对应的进程信息:
netstat -p- 持续更新网络连接信息:
netstat -c现代替代工具
Section titled “现代替代工具”尽管 netstat 仍然有用,但在现代 Linux 系统中,推荐使用以下工具:
- ss:用于显示套接字统计信息,是
netstat的现代替代品。
ss -a- ip:用于管理网络接口和路由,是
ifconfig和route的现代替代品。
ip addr showip route showss 命令是一个强大的网络实用程序,用于显示套接字统计信息。它是 netstat 命令的现代替代品,速度更快,功能更强大。ss 可以显示 TCP、UDP、UNIX 套接字的详细信息,帮助管理员诊断网络问题和监控网络活动。
安装命令
sudo apt-get install iproute2sudo yum install iproute基本用法和示例
Section titled “基本用法和示例”查看所有连接
Section titled “查看所有连接”ss -a查看所有监听套接字
Section titled “查看所有监听套接字”ss -l查看所有 TCP 连接
Section titled “查看所有 TCP 连接”ss -t查看所有 UDP 连接
Section titled “查看所有 UDP 连接”ss -u查看所有 UNIX 套接字
Section titled “查看所有 UNIX 套接字”ss -x高级用法和示例
Section titled “高级用法和示例”查看详细信息
Section titled “查看详细信息”使用 -e 选项可以查看详细信息,例如套接字的内存使用情况等。
ss -e查看进程相关信息
Section titled “查看进程相关信息”使用 -p 选项可以显示与每个套接字关联的进程。
ss -p查看特定状态的连接
Section titled “查看特定状态的连接”查看所有处于 ESTABLISHED 状态的 TCP 连接:
ss -t state established查看所有处于 LISTEN 状态的 TCP 连接:
ss -t state listen查看所有连接到特定端口的连接,例如端口 80:
ss -t sport = :80ss -t dport = :80显示摘要统计信息
Section titled “显示摘要统计信息”使用 -s 选项显示所有套接字的摘要统计信息。
ss -s查看网络命名空间中的套接字
Section titled “查看网络命名空间中的套接字”使用 -N 选项可以查看特定网络命名空间中的套接字。
sudo ss -N /var/run/netns/mynamespace您可以组合多个选项来获取更精确的信息。例如,查看所有与端口 22 相关的监听套接字,并显示进程信息:
ss -tlp sport = :22常用选项总结
Section titled “常用选项总结”-a:显示所有套接字,包括监听和非监听。-l:只显示监听套接字。-t:显示 TCP 套接字。-u:显示 UDP 套接字。-x:显示 UNIX 套接字。-e:显示详细信息。-p:显示进程信息。-s:显示摘要统计信息。-N:查看特定网络命名空间中的套接字。
- 查看所有 TCP 连接:
ss -t- 查看所有监听的 TCP 套接字:
ss -tl- 查看所有 UDP 连接:
ss -u- 查看所有连接的详细信息:
ss -e- 查看所有连接及其关联的进程:
ss -p- 查看所有处于 ESTABLISHED 状态的 TCP 连接:
ss -t state established- 查看端口 80 的所有连接:
ss -t sport = :80- 显示套接字的摘要统计信息:
ss -s