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: true
2. 配置静态 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.4
3. 配置无线网络(使用 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 -a
ifdown
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 --list
wpa_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 show
iwd
(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.conf
systemd-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.conf
resolvconf
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-tools
ifconfig 基本用法
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:55
route
命令是一个传统的网络路由管理工具,用于查看和配置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.1
ip
命令是一个现代化且功能强大的网络管理工具,用于配置和查看网络接口、路由、隧道等。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 show
netstat
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 -i
netstat -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 show
ss
命令是一个强大的网络实用程序,用于显示套接字统计信息。它是 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