配置网桥 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