Linux Shell命令
Linux Shell命令
- "ip" 命令:用于配置和管理网络接口及路由表。可以使用 "ip" 命令来添加、删除、修改网络接口、设置 IP 地址、修改路由表等。这个命令是配置网络的关键命令之一。
# 查看网络接口信息
ip link show
# 设置网卡 eth0 的 IP 地址和子网掩码
ip addr add 192.168.1.10/24 dev eth0
# 显示路由表
ip route show
# 添加一条到 192.168.1.0/24 网段的路由
ip route add 192.168.1.0/24 via 192.168.0.1 dev eth0
# 启用接口 eth0
ip link set eth0 up
- "iptables" 命令:用于配置 Linux 上的防火墙规则。可以使用 "iptables" 命令来设置防火墙规则、过滤网络流量、NAT 等。这个命令是保护 Linux 主机和网络安全的重要命令之一。
# Example 1: 打开 HTTP 和 HTTPS 端口
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
# Example 2: 允许特定 IP 访问 SSH 端口
iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT
# Example 3: 允许 ICMP 协议通过
iptables -A INPUT -p icmp -j ACCEPT
# Example 4: 允许本地回环接口的数据包通过
iptables -A INPUT -i lo -j ACCEPT
# Example 5: 阻止来自特定 IP 地址的流量通过
iptables -A INPUT -s 192.168.1.200 -j DROP
- "ipconfig" 命令:在 Windows 操作系统中使用,用于显示和修改本地计算机的 IP 配置信息。可以使用 "ipconfig" 命令来查看本地计算机的 IP 地址、子网掩码、默认网关等信息。
# 显示所有网络接口的详细信息
ipconfig /all
# 刷新 DNS 缓存
ipconfig /flushdns
# 重置 TCP/IP 协议栈
ipconfig /renew
# 显示当前网络连接的 DNS 服务器 IP 地址
ipconfig /displaydns
# 显示当前网络连接的默认网关 IP 地址
ipconfig /defaultgateway
# 显示当前网络连接的 MAC 地址
ipconfig /all | findstr "Physical Address"
# 显示当前网络连接的 IP 地址、子网掩码和默认网关
ipconfig | findstr /i /c:"IPv4" /c:"Subnet Mask" /c:"Default Gateway"
- "iperf" 命令:用于测试网络带宽和性能。可以使用 "iperf" 命令来测试网络连接的吞吐量、延迟等。这个命令通常用于网络性能测试和调试。
# 示例1:默认TCP测试
iperf
# 示例2:指定服务端口号
iperf -p 8080
# 示例3:指定测试时间
iperf -t 10
# 示例4:指定测试并发数
iperf -P 4
# 示例5:UDP测试
iperf -u
# 示例6:设置带宽限制
iperf -b 10M
# 示例7:反向测试
iperf -R
- "ipcs" 命令:用于显示系统中的进程间通信设施的状态。可以使用 "ipcs" 命令来查看共享内存、消息队列、信号量等进程间通信机制的详细信息。这个命令通常用于分析系统中的进程间通信问题。
# 显示所有 IPC 对象
ipcs
# 显示所有共享内存
ipcs -m
# 显示所有消息队列
ipcs -q
# 显示所有信号量
ipcs -s
# 显示 PID 为 123 的进程所创建的 IPC 对象
ipcs -p -i 123
# 以十六进制形式显示系统标识符
ipcs -t -i 123 | grep key
# 删除所有没有进程关联的 IPC 对象
ipcs -s -i 1234 -m 2345 -q | xargs ipcrm
- "ping" 命令:用于测试与另一台主机的网络连接。可以使用 "ping" 命令向另一台主机发送 ICMP 回显请求,并显示收到的回复。这个命令通常用于诊断网络连接问题。
# 示例1:使用IPv4地址ping
ping 8.8.8.8
# 示例2:使用IPv6地址ping
ping 2001:4860:4860::8888
# 示例3:指定ping的次数
ping -c 5 8.8.8.8
# 示例4:指定ping的间隔时间(1秒)
ping -i 1 8.8.8.8
# 示例5:在ping时不解析主机名,直接使用IP地址
ping -n 8.8.8.8
# 示例6:在ping时不停等待,而是每秒显示结果
ping -c 10 -i 1 -n google.com
# 示例7:在ping时显示更详细的信息
ping -c 5 -v google.com
- "iptraf" 命令:用于监视网络流量和连接。可以使用 "iptraf" 命令来实时监视网络流量、查看网络连接状态、分析网络流量等。这个命令通常用于网络性能监控和调试。
# 监控 eth0 网络接口流量
iptraf-ng -i eth0
# 监控所有网络接口流量
iptraf-ng -i all
# 监控指定端口的流量
iptraf-ng -P "tcp and port 80"
# 监控本地地址为 192.168.1.100 的流量
iptraf-ng -F "src net 192.168.1.100"
# 监控目标地址为 192.168.1.200 的流量
iptraf-ng -F "dst net 192.168.1.200"
# 监控 ICMP 流量
iptraf-ng -F "icmp"
# 监控 SSH 流量
iptraf-ng -F "tcp and port 22"
- "ipcalc" 命令:用于计算和显示 IP 地址和子网掩码相关信息。可以使用 "ipcalc" 命令来计算网络地址、广播地址、可用主机数等网络参数。这个命令通常用于网络规划和配置。
#!/bin/bash
# 计算 192.168.0.1/24 网络的网段地址、广播地址、主机数量、子网掩码等信息
ipcalc 192.168.0.1/24
# 计算 10.0.0.0/8 网络的网段地址、广播地址、主机数量、子网掩码等信息
ipcalc 10.0.0.0/8
# 计算 172.16.0.0/16 网络的网段地址、广播地址、主机数量、子网掩码等信息
ipcalc 172.16.0.0/16
# 计算 172.16.0.0/16 网络的第一个可用 IP 地址和最后一个可用 IP 地址
ipcalc -n -h 172.16.0.0/16
# 计算 192.168.0.0/16 网络的网段地址、广播地址、主机数量、子网掩码等信息
ipcalc 192.168.0.0/16
# 计算 192.168.0.1/16 网络的网段地址、广播地址、主机数量、子网掩码等信息
ipcalc 192.168.0.1/16
# 计算 10.0.0.0/16 网络的网段地址、广播地址、主机数量、子网掩码等信息
ipcalc 10.0.0.0/16
- "ipfs" 命令:用于在分布式文件系统 IPFS 中存储、检索和共享文件。可以使用 "ipfs" 命令来上传、下载、查看和管理 IPFS 中的文件。这个命令通常用于分布式文件共享和存储。
# 初始化 ipfs
ipfs init
# 添加文件到 ipfs
ipfs add /path/to/file
# 查看 ipfs 节点信息
ipfs id
# 下载文件 from-hash 到本地
ipfs get <from-hash>
# 在 ipfs 网络中搜索文件名为 filename 的文件
ipfs search filename
# 列出本地已添加的文件列表
ipfs ls
# 获取节点统计信息
ipfs stats bw
# 获取帮助信息
ipfs help
- "iperf3" 命令:是 "iperf" 命令的升级版,用于测试网络带宽和性能。与 "iperf" 相比,"iperf3" 支持更多的协议和选项,并提供更准确的测试结果。这个命令通常用于高性能网络测试和调试。
# 启动iperf服务端并监听端口为5201
iperf3 -s -p 5201
# 启动iperf客户端连接到服务端,发送1M的数据,输出报告
iperf3 -c 127.0.0.1 -p 5201 -n 1M
# 使用UDP协议测试带宽
iperf3 -c 127.0.0.1 -p 5201 -u -b 1M
# 使用TCP协议测试带宽,并设置带宽上限为1Mbps
iperf3 -c 127.0.0.1 -p 5201 -b 1M
# 使用TCP协议测试带宽,设置窗口大小为128KB
iperf3 -c 127.0.0.1 -p 5201 -w 128K
# 使用TCP协议测试带宽,设置socket缓冲区大小为64KB
iperf3 -c 127.0.0.1 -p 5201 -S 64K
# 使用TCP协议测试带宽,打印调试信息
iperf3 -c 127.0.0.1 -p 5201 -d
- "ipset" 命令:用于管理 IP 地址和端口集合。可以使用 "ipset" 命令创建、修改、删除 IP 地址和端口集合,并与防火墙规则集成。这个命令通常用于高效地管理大规模的防火墙规则。
# 创建一个ipset集合
ipset create myset hash:ip,port
# 添加元素到ipset集合
ipset add myset 192.168.1.1,tcp:22
# 显示ipset集合
ipset list myset
# 删除ipset集合
ipset destroy myset
- "iptables-save" 和 "iptables-restore" 命令:用于保存和恢复 iptables 规则。可以使用 "iptables-save" 命令将当前 iptables 规则保存到文件中,使用 "iptables-restore" 命令将之前保存的规则加载到 iptables 中。这个命令通常用于备份和还原 iptables 规则。
# 保存当前的iptables规则
iptables-save > /etc/iptables/rules.v4
# 恢复iptables规则
iptables-restore < /etc/iptables/rules.v4
# 查看当前iptables规则
iptables-save | less
# 拒绝所有来自192.168.0.0/24网络的流量
iptables -I INPUT -s 192.168.0.0/24 -j DROP
# 允许从192.168.0.10访问SSH端口
iptables -A INPUT -s 192.168.0.10 -p tcp --dport 22 -j ACCEPT
# 将iptables规则从一个系统复制到另一个系统
iptables-save | ssh user@remote_host "sudo iptables-restore"
# 重置iptables规则
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
- "ipvsadm" 命令:用于管理 Linux 虚拟服务器(LVS)。可以使用 "ipvsadm" 命令配置 LVS 负载均衡器、添加和删除虚拟服务器、设置调度算法等。这个命令通常用于高可用性和高性能的网络服务。
# 列出所有虚拟服务器信息
ipvsadm -ln
# 列出VIP为192.168.1.1的虚拟服务器信息
ipvsadm -Ln -v -t 192.168.1.1
# 添加一个虚拟服务器并添加一个RS
ipvsadm -A -t 192.168.1.1:80 -s rr -p 120
ipvsadm -a -t 192.168.1.1:80 -r 192.168.1.2:80 -m
# 删除VIP为192.168.1.1的虚拟服务器信息
ipvsadm -D -t 192.168.1.1:80
# 清空所有虚拟服务器和RS
ipvsadm --clear
- "iproute2" 命令:是 "ip" 命令的扩展版,用于更高级的网络配置和管理。可以使用 "iproute2" 命令来配置策略路由、流量控制、多路径路由等高级网络功能。这个命令通常用于复杂的网络环境和高级网络应用。
# 显示网络接口的状态信息
ip -s link
# 显示当前路由表中的路由信息
ip route show
# 添加一条新的路由
ip route add 10.0.0.0/24 via 192.168.0.1 dev eth0
# 删除指定的路由
ip route del 10.0.0.0/24 via 192.168.0.1 dev eth0
# 显示ARP缓存表
ip neigh show
# 删除ARP缓存表中的指定项
ip neigh del 192.168.0.1 dev eth0
# 添加一条新的ARP缓存表项
ip neigh add 192.168.0.1 lladdr 00:11:22:33:44:55 nud permanent dev eth0
- "iftop" 命令:用于实时监视网络流量。可以使用 "iftop" 命令查看正在使用网络带宽的进程和连接,并以实时图表的形式展示网络流量。这个命令通常用于网络性能监控和调试。
# 查看指定网卡的流量信息
iftop -i eth0
# 只显示发送或者接收流量信息
iftop -F s -i eth0
# 以KB/s为单位显示流量信息
iftop -B -i eth0
# 显示前10个连接
iftop -nNP -i eth0 -m 10
# 显示符合特定规则的流量信息
iftop -i eth0 -f "src net 192.168.0.0/16 and not dst port 22"
- "netcat" 命令:也称为 "nc" 命令,用于创建 TCP 或 UDP 连接。可以使用 "netcat" 命令在两台主机之间建立连接,进行数据传输或端口扫描。这个命令通常用于网络调试和安全测试。
# 显示 TCP/UDP 连接
sudo netstat -lntp
# 启动 TCP 服务端并监听端口
sudo nc -l 8080 < /path/to/file
# 启动 UDP 服务端并监听端口
sudo nc -ul 8080
# 连接 TCP 客户端
sudo nc example.com 80
# 连接 UDP 客户端
sudo nc -u example.com 53
# 发送文件到 TCP 服务端
sudo cat /path/to/file | nc example.com 8080
# 发送文件到 UDP 服务端
sudo cat /path/to/file | nc -u example.com 8080
- "nmap" 命令:用于网络探测和端口扫描。可以使用 "nmap" 命令扫描远程主机的端口、检测服务和操作系统信息等。这个命令通常用于网络安全测试和审计。
# 扫描指定IP段的所有开放端口,输出为表格形式
sudo nmap -sS 192.168.1.1-255 -p- -T4 -oN output.txt --open
# -sS:使用TCP SYN扫描模式
# -p-:扫描所有端口
# -T4:使用T4加速扫描速度
# -oN:输出到文件output.txt,格式为nmap格式
# --open:只输出开放的端口
# 扫描指定IP地址的端口,并输出为XML格式
sudo nmap -sS 192.168.1.100 -p 1-65535 -T4 -oX output.xml
# -sS:使用TCP SYN扫描模式
# -p 1-65535:扫描所有端口
# -T4:使用T4加速扫描速度
# -oX:输出到文件output.xml,格式为XML
# 扫描指定IP地址的端口,并输出为JSON格式
sudo nmap -sS 192.168.1.100 -p 80,443 -T4 -oJ output.json
# -sS:使用TCP SYN扫描模式
# -p 80,443:扫描80和443端口
# -T4:使用T4加速扫描速度
# -oJ:输出到文件output.json,格式为JSON
# 扫描指定IP地址的操作系统、开放的端口和服务版本,并输出为人类可读的形式
sudo nmap -O -sV 192.168.1.100 -T4 -oN output.txt
# -O:扫描操作系统
# -sV:扫描服务版本
# -T4:使用T4加速扫描速度
# -oN:输出到文件output.txt,格式为nmap格式
- "tcpdump" 命令:用于捕获和分析网络数据包。可以使用 "tcpdump" 命令在网络接口上捕获数据包,然后进行过滤和分析。这个命令通常用于网络故障排除和安全分析。
# 显示指定网卡上所有进入和离开的数据包
sudo tcpdump -i eth0
# 显示指定网卡上所有进入和离开的数据包,以 ASCII 码形式输出
sudo tcpdump -i eth0 -A
# 显示指定网卡上指定主机的进入和离开的数据包
sudo tcpdump -i eth0 host 192.168.1.100
# 显示指定网卡上指定端口的进入和离开的数据包
sudo tcpdump -i eth0 port 80
# 显示指定网卡上指定主机和端口的进入和离开的数据包
sudo tcpdump -i eth0 host 192.168.1.100 and port 80
# 显示指定网卡上指定网络范围内的进入和离开的数据包
sudo tcpdump -i eth0 net 192.168.1.0/24
# 显示指定网卡上指定协议的进入和离开的数据包
sudo tcpdump -i eth0 icmp
# 显示指定网卡上指定协议和端口的进入和离开的数据包
sudo tcpdump -i eth0 udp port 53
- "traceroute" 命令:用于跟踪数据包在互联网上的路径。可以使用 "traceroute" 命令查看数据包在经过的每个路由器上的延迟和 IP 地址。这个命令通常用于网络故障排除和网络性能优化。
#!/bin/bash
# 显示路由到目标主机的路径和时延
# IP地址或主机名
target=www.google.com
# 设置跟踪时间(秒)
seconds=5
echo "Traceroute to $target ($target), $seconds s max"
echo -e "Hop\t\tAddress\t\tDelay\t\tHost"
# 发送从1到30次请求,每个请求中的TTL值递增1
for ttl in {1..30}; do
result=$(traceroute -n -m $ttl -w $seconds $target | tail -n 1)
# 从结果中提取IP地址、主机名和时间延迟
address=$(echo $result | awk '{print $2}')
delay=$(echo $result | awk '{print $4}')
host=$(getent hosts $address | awk '{print $2}')
# 如果IP地址没有响应,退出循环
if [[ $address == "* * *" ]]; then
break
fi
# 输出每一跳的结果
printf "%d\t\t%s\t\t%s\t\t%s\n" $ttl $address $delay $host
done
- "dig" 命令:用于查询 DNS 记录。可以使用 "dig" 命令查询域名的 IP 地址、邮件服务器、TXT 记录等。这个命令通常用于网络管理和故障排除。
# 查询example.com域名的A记录
dig example.com A
# 查询example.com域名的MX记录
dig example.com MX
# 查询example.com域名的NS记录
dig example.com NS
# 查询example.com域名的TXT记录
dig example.com TXT
# 查询example.com域名的AAAA记录(IPv6地址记录)
dig example.com AAAA
# 查询example.com域名的SOA记录(授权域记录)
dig example.com SOA
# 使用指定的DNS服务器查询example.com域名的A记录
dig example.com A @8.8.8.8
- "nslookup" 命令:用于查询 DNS 记录。可以使用 "nslookup" 命令查询域名的 IP 地址、MX 记录等。这个命令通常用于网络管理和故障排除。
# 查询example.com域名的A记录,并显示查询的IP地址
nslookup -query=A example.com
# 查询example.com域名的MX记录,并显示查询的IP地址
nslookup -query=MX example.com
# 查询example.com域名的NS记录,并显示查询的IP地址
nslookup -query=NS example.com
# 查询example.com域名的TXT记录,并显示查询的IP地址
nslookup -query=TXT example.com
# 查询example.com域名的AAAA记录(IPv6地址记录),并显示查询的IP地址
nslookup -query=AAAA example.com
# 查询example.com域名的SOA记录(授权域记录),并显示查询的IP地址
nslookup -query=SOA example.com
# 使用指定的DNS服务器查询example.com域名的A记录,并显示查询的IP地址
nslookup -query=A example.com 8.8.8.8
- "host" 命令:也用于查询 DNS 记录。可以使用 "host" 命令查询域名的 IP 地址、MX 记录等。与 "nslookup" 命令相比,"host" 命令输出更简洁,更易于阅读。这个命令通常用于网络管理和故障排除。
# 查询example.com域名的A记录
host -t A example.com
# 查询example.com域名的MX记录
host -t MX example.com
# 查询example.com域名的NS记录
host -t NS example.com
# 查询example.com域名的TXT记录
host -t TXT example.com
# 查询example.com域名的AAAA记录(IPv6地址记录)
host -t AAAA example.com
# 查询example.com域名的SOA记录(授权域记录)
host -t SOA example.com
# 使用指定的DNS服务器查询example.com域名的A记录
host -t A example.com 8.8.8.8
- "ping" 命令:用于测试主机之间的网络连通性。可以使用 "ping" 命令发送 ICMP 请求包到目标主机,并接收 ICMP 响应包。这个命令通常用于网络故障排除和网络性能测试。
# 测试连接到example.com域名,并输出平均延迟和包丢失率
ping example.com
# 测试连接到example.com域名,并输出每个包的延迟时间
ping -c 5 example.com
# 测试连接到example.com域名,并设置每个包的大小为1024字节
ping -s 1024 example.com
# 测试连接到example.com域名,并显示IP地址而不是域名
ping -n example.com
# 测试连接到example.com域名,并设置超时时间为3秒
ping -w 3 example.com
# 测试连接到example.com域名,并启用音频警报
ping -a example.com
# 测试连接到example.com域名,并启用IPv6连接
ping -6 example.com
- "arp" 命令:用于查看和修改 ARP 表。可以使用 "arp" 命令查看本地主机的 ARP 表,或手动添加、修改 ARP 表项。这个命令通常用于网络故障排除和安全管理。
# 显示ARP缓存中的所有条目
arp -a
# 添加一个新的ARP缓存条目
arp -s 192.168.1.100 00:11:22:33:44:55
# 删除指定IP地址的ARP缓存条目
arp -d 192.168.1.100
# 清除ARP缓存中的所有条目
arp -c
# 以详细格式显示ARP缓存中的所有条目
arp -av
# 查看特定接口的ARP缓存
arp -i eth0 -a
# 查看ARP缓存中指定IP地址的MAC地址
arp 192.168.1.100
- "route" 命令:用于查看和修改路由表。可以使用 "route" 命令查看本地主机的路由表,或手动添加、删除路由表项。这个命令通常用于网络故障排除和网络配置。
# 显示内核路由表
route
# 添加一个新的静态路由
route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.1.1
# 删除指定网络的路由
route del -net 192.168.0.0 netmask 255.255.255.0
# 显示内核路由表的详细信息
route -n
# 添加一个新的默认路由
route add default gw 192.168.1.1
# 显示当前默认路由的详细信息
route -n | grep ^0.0.0.0
# 添加一个新的多网关路由
route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0
- "iptables" 命令:用于配置 Linux 系统的防火墙。可以使用 "iptables" 命令添加、删除、修改防火墙规则,以控制进出系统的网络数据流。这个命令通常用于网络安全配置。
# 显示IPv4数据包防火墙规则
iptables -L
# 允许指定端口的入站连接
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# 拒绝所有入站连接
iptables -A INPUT -j DROP
# 清除IPv4数据包防火墙规则
iptables -F
# 允许指定IP地址的所有入站连接
iptables -A INPUT -s 192.168.1.100 -j ACCEPT
# 允许指定IP地址的所有出站连接
iptables -A OUTPUT -d 192.168.1.100 -j ACCEPT
# 拒绝所有经过指定接口的入站连接
iptables -A INPUT -i eth0 -j DROP
- "ss" 命令:用于查看 Linux 系统的网络连接状态。可以使用 "ss" 命令查看系统的 TCP 连接、UDP 连接、套接字等信息。与 "netstat" 命令相比,"ss" 命令输出更简洁、更易于阅读。这个命令通常用于网络故障排除和性能优化。
# 显示所有网络套接字信息
ss
# 显示所有TCP网络套接字信息
ss -t
# 显示所有UDP网络套接字信息
ss -u
# 显示所有RAW网络套接字信息
ss -w
# 显示所有UNIX套接字信息
ss -x
# 显示所有监听指定端口的网络套接字信息
ss -l -p -n | grep :80
# 显示所有处于TIME-WAIT状态的网络套接字信息
ss -t -a state TIME-WAIT
- "ip6tables" 命令:用于配置 Linux 系统的 IPv6 防火墙。可以使用 "ip6tables" 命令添加、删除、修改 IPv6 防火墙规则,以控制进出系统的网络数据流。这个命令通常用于网络安全配置。
# 显示IPv6数据包防火墙规则
ip6tables -L
# 允许指定端口的入站连接
ip6tables -A INPUT -p tcp --dport 80 -j ACCEPT
# 拒绝所有入站连接
ip6tables -A INPUT -j DROP
# 清除IPv6数据包防火墙规则
ip6tables -F
# 允许指定IP地址的所有入站连接
ip6tables -A INPUT -s 2001:db8::1/64 -j ACCEPT
# 允许指定IP地址的所有出站连接
ip6tables -A OUTPUT -d 2001:db8::1/64 -j ACCEPT
# 拒绝所有经过指定接口的入站连接
ip6tables -A INPUT -i eth0 -j DROP
- "ip6tables-restore" 命令:用于从文件中恢复 IPv6 防火墙规则。可以使用 "ip6tables-restore" 命令将之前使用 "ip6tables-save" 命令备份的 IPv6 防火墙规则导入到系统中。
# 从指定的文件中恢复IPv6数据包防火墙规则
ip6tables-restore < /etc/ip6tables.rules
# 将当前IPv6数据包防火墙规则保存到指定的文件中
ip6tables-save > /etc/ip6tables.rules
# 显示IPv6数据包防火墙规则的版本信息
ip6tables-restore -V
# 恢复IPv6数据包防火墙规则并显示处理过程
ip6tables-restore -v < /etc/ip6tables.rules
# 恢复IPv6数据包防火墙规则并忽略所有错误
ip6tables-restore -n < /etc/ip6tables.rules
# 将IPv6数据包防火墙规则应用到指定的网络接口
ip6tables-restore < /etc/ip6tables.rules -i eth0
# 将IPv6数据包防火墙规则应用到指定的IP地址
ip6tables-restore < /etc/ip6tables.rules -s 2001:db8::1/64
- "ip6tables-save" 命令:用于备份当前系统的 IPv6 防火墙规则。可以使用 "ip6tables-save" 命令将当前系统的 IPv6 防火墙规则保存到文件中,以备将来恢复或迁移。
# 将当前IPv6数据包防火墙规则保存到指定的文件中
ip6tables-save > /etc/ip6tables.rules
# 显示IPv6数据包防火墙规则的版本信息
ip6tables-save -v
# 将IPv6数据包防火墙规则应用到指定的网络接口
ip6tables-save -i eth0
# 将IPv6数据包防火墙规则应用到指定的IP地址
ip6tables-save -s 2001:db8::1/64
# 显示IPv6数据包防火墙规则并高亮显示规则匹配的关键字
ip6tables-save -c | grep --color=auto "DROP"
# 显示IPv6数据包防火墙规则并将结果传递给邮件程序
ip6tables-save -t nat | mail -s "IPv6 firewall rules" admin@example
- "ipcrm" 命令:用于删除 System V IPC 对象。可以使用 "ipcrm" 命令删除 System V IPC 对象,如消息队列、共享内存、信号量等。
# 删除指定标识符的共享内存段
ipcrm -m 12345
# 删除指定标识符的消息队列
ipcrm -q 12345
# 删除指定标识符的信号量集
ipcrm -s 12345
# 删除所有当前用户的共享内存段
ipcrm -m
# 删除所有当前用户的消息队列
ipcrm -q
# 删除所有当前用户的信号量集
ipcrm -s
# 显示ipcs命令中列出的IPC标识符的详细信息
ipcrm -t
- "ipmaddr" 命令:用于管理多播地址。可以使用 "ipmaddr" 命令添加、删除、修改多播地址,以控制主机的多播行为。
# 显示当前系统的IPv4多播地址列表
ipmaddr
# 添加指定的IPv4多播地址和网络接口的关联
ipmaddr add 224.0.0.10 dev eth0
# 删除指定的IPv4多播地址和网络接口的关联
ipmaddr del 224.0.0.10 dev eth0
# 显示指定的IPv4多播地址和网络接口的关联信息
ipmaddr show 224.0.0.10 dev eth0
# 删除所有IPv4多播地址和网络接口的关联
ipmaddr flush
- "ipset" 命令:用于管理 Linux 内核的 IP 集合。可以使用 "ipset" 命令创建、删除、修改 IP 集合,以及将 IP 地址添加到集合中。这个命令通常用于防火墙配置和网络安全。
# 创建名为"blocklist"的新IP集合
ipset create blocklist hash:ip
# 添加IP地址到名为"blocklist"的IP集合中
ipset add blocklist 192.168.1.1
# 从名为"blocklist"的IP集合中删除指定的IP地址
ipset del blocklist 192.168.1.1
# 显示名为"blocklist"的IP集合中的所有IP地址
ipset list blocklist
# 清空名为"blocklist"的IP集合中的所有IP地址
ipset flush blocklist
# 删除名为"blocklist"的IP集合
ipset destroy blocklist
# 显示所有可用的IP集合类型
ipset -L
- "iptunnel" 命令:用于管理 Linux 内核的 IP 隧道。可以使用 "iptunnel" 命令创建、删除、修改 IP 隧道,以便在不同的网络之间传输数据。这个命令通常用于网络配置和故障排除。
# 创建一条名为"tun0"的新TUN隧道设备
iptunnel add tun0 mode tun local 192.168.1.1 remote 192.168.2.1
# 创建一条名为"gre0"的新GRE隧道设备
iptunnel add gre0 mode gre local 192.168.1.1 remote 192.168.2.1
# 显示所有当前的TUN和GRE隧道设备
iptunnel list
# 删除指定名称的TUN或GRE隧道设备
iptunnel del tun0
# 启用指定名称的TUN或GRE隧道设备
iptunnel change tun0 mode tun local 192.168.1.1 remote 192.168.2.1
# 禁用指定名称的TUN或GRE隧道设备
iptunnel change tun0 mode tun local
落霞与孤鹜齐飞,秋水共长天一色。