Linux 网络配置常用命令

配置网桥 brctl

# 创建一个名为 br0 的网桥
sudo brctl addbr br0

# 删除网桥 br0
sudo brctl delbr br0

# 列出所有的网桥及其接口信息
sudo brctl show

# 将网络接口 `eth0` 添加到网桥 `br0` 中
sudo brctl addif br0 eth0

# 从网桥 `br0` 中删除网络接口 `eth0`
sudo brctl delif br0 eth0

### 显示网桥 `br0` 的 Spanning Tree Protocol (STP)配置
sudo brctl showstp br0

# 禁用 Linux 内核中桥接器对数据包进行处理时调用 iptables 的功能。这种配置通常用于提高桥接速度,减少桥接过程中的 CPU 开销。
sudo sysctl net.bridge.bridge-nf-call-iptables=0
sudo sysctl net.bridge.bridge-nf-call-iptables=0

# 为虚拟网卡设置IP并启动
sudo ifconfig tap0 192.168.2.1 up

虚拟网络设备 tunctl

# 创建一个名为tun0的虚拟网络设备
sudo tunctl -t tun0 

# 将虚拟网卡设置为任何人都有权限使用:
sudo chmod 0666 /dev/net/tun

# 删除名为tun0的虚拟网络设备
sudo tunctl -d tun0

# 创建名为tun0的虚拟网络设备并指定其拥有者和组
sudo tunctl -u user -g group -t tun0

# 列出所有活跃的虚拟网络设备及其接口信息
sudo tunctl -s 

# 指定虚拟网络设备的MAC地址
sudo tunctl -m [mac_address] -t tun0

# 列出具有给定设备名称前缀的所有已分配的虚拟网络设备
sudo tunctl -g [device_name_prefix]

# 分配虚拟网络设备的文件描述符,将结果输出到标准输出
sudo tunctl -p -t tun0

# 将虚拟网络设备关联到现有的桥接设备
sudo tunctl -b -t tun0 -g br0

# 从现有虚拟网络设备解除关联
sudo tunctl -B -t tun0

# 指定虚拟网络设备的最大传输单元(MTU)
sudo ip link set tun0 mtu [value]

# 启用虚拟网络设备
sudo ip link set tun0 up

# 禁用虚拟网络设备
sudo ip link set tun0 down

# 显示由Linux内核管理的虚拟网络设备的状态信息
sudo ip link show tun0

# 修改虚拟网络设备的MAC地址
sudo ip link set dev tun0 address [mac_address]

# 为虚拟网络设备分配一个IPv4地址
sudo ip addr add [ip_address/cidr] dev tun0

# 从虚拟网络设备中删除一个IPv4地址
sudo ip addr del [ip_address/cidr] dev tun0

# 检查虚拟网络设备是否已分配IPv4地址
ip addr show tun0 | grep inet

# 使用DLADDR命令获取虚拟网络设备的MAC地址
sudo ethtool -P tun0 

# 列出当前所有活动的网络接口
ip a 

# 检查虚拟网络设备是否已分配IPv6地址
ip addr show tun0 | grep inet6 

网络接口管理(ifconfig)

# 显示所有网络接口信息
ifconfig -a

# 激活指定接口(如 eth0)
ifconfig eth0 up

# 关闭指定接口(如 eth0)
ifconfig eth0 down

# 添加 IP 地址,例如添加 IP 地址为 192.168.2.100 的网卡 eth0
ifconfig eth0 192.168.2.100 netmask 255.255.255.0 up

# 删除 IP 地址,例如删除网卡 eth0 上的 IP 地址
ifconfig eth0 0.0.0.0

# 启用或禁用广播地址
ifconfig eth0 broadcast 192.168.2.255 up
ifconfig eth0 -broadcast

# 设置网卡 mtu 大小为 9000
ifconfig eth0 mtu 9000

# 增加一个虚拟网络接口 eth0:1,并配置 IP 地址为 192.168.2.100
ifconfig eth0:1 192.168.2.100 netmask 255.255.255.0 up

路由管理(route)

# 显示当前路由表
route -n

# 添加默认路由
route add default gw 192.168.2.1

# 删除默认路由
route del default

# 增加一个到目标网络的静态路由
route add -net 192.168.100.0 netmask 255.255.255.0 gw 192.168.2.1

# 删除静态路由
route del -net 192.168.100.0 netmask 255.255.255.0 gw 192.168.2.1

# 清除所有路由缓存项
route flush cache

# 查看 IP 地址对应网卡接口的 MAC 地址
arping -I eth0 192.168.2.1

DNS 解析(nslookup 和 dig)

# 使用域名服务器解析域名
nslookup www.example.com

# 指定域名服务器,并解析域名
nslookup www.example.com 8.8.8.8

# 查询DNS地址
dig example.com +nssearch

# 查询所有的 NS 记录
dig example.com NS

# 查询某个域名的 MX 记录
dig example.com MX

网络诊断工具(ping 和 traceroute)

# 测试与目标主机之间的连通性,查看网络是否可达
ping 192.168.2.1

# ping 命令的高级选项,控制发送的数据包数量、大小和时间间隔等参数
ping -c 5 -s 100 -i 1 192.168.2.1

# 显示数据包在网络上的传输路径,检测网络故障
traceroute www.google.com

# 显示每一跳所经过的路由器名称和 IP 地址
traceroute -n www.google.com

网络流量分析工具(tcpdump 和 wireshark)

# 监听指定的网络接口上的数据包,显示每个数据包的详细信息
tcpdump -i eth0

# 监听指定端口上的数据包
tcpdump port 80

# 显示从指定源地址到目标地址的所有网络流量
tcpdump src 192.168.2.100 and dst 192.168.2.200

# 显示所有 IP 流量,并将结果保存到文件 tcp.pcap 中,以便使用 Wireshark 分析
tcpdump -i eth0 -w tcp.pcap ip

# 图形化的网络协议分析工具,用于分析网络流量
wireshark

其他命令

# 显示网络连接状态和统计信息
netstat -an

# 显示 TCP/IP 配置参数
sysctl net.ipv4.tcp_*

# 设置 TCP/IP 参数,例如设置 SYN 攻击保护
sysctl -w net.ipv4.tcp_syncookies=1

# 重新加载 /etc/resolv.conf 文件
systemd-resolve --flush-caches

# 显示当前 DNS 服务器
systemd-resolve --status | grep 'DNS Servers'

# 重启网络
systemctl restart NetworkManager