1.1 查看和配置网络接口
• 查看网络接口配置
ip addr show该命令列出了所有网络接口的详细信息,包括IP地址、子网掩码、广播地址等。
• 配置网络接口
要配置一个网络接口的IP地址,可以使用以下命令:
sudo ip addr add 192.168.1.100/24 dev eth0这里,eth0是网络接口的名称,192.168.1.100/24是要分配的IP地址和子网掩码。
• 启用或禁用网络接口
sudo ip link set eth0 up # 启用网络接口sudo ip link set eth0 down # 禁用网络接口1.2 配置路由
路由配置决定了数据包如何从源地址传输到目标地址。ip route命令用于查看和配置路由表。
• 查看路由表
ip route show• 添加静态路由
sudo ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0该命令将所有发往192.168.2.0/24网络的数据包通过192.168.1.1网关发送。
1.3 配置DNS
DNS(Domain Name System)是将域名解析为IP地址的服务。在Linux中,DNS配置通常存储在/etc/resolv.conf文件中。
• 查看当前DNS配置
cat /etc/resolv.conf• 手动配置DNS服务器
可以通过编辑/etc/resolv.conf文件来手动设置DNS服务器:
nameserver 8.8.8.8 # 设置Google DNS服务器nameserver 1.1.1.1 # 设置Cloudflare DNS服务器常见网络故障排查技巧2.1 检查网络连接
ping命令是诊断网络连接最基本的工具。它通过发送ICMP回显请求来检查目标主机的可达性。
ping 8.8.8.8 # 检查与Google DNS服务器的连接ping google.com # 检查域名解析是否正常如果ping命令显示目标不可达,这通常表明存在网络连接问题。
2.2 检查路由和网关配置
当无法访问特定网络或互联网时,可以使用traceroute命令查看数据包的路径:
traceroute google.com该命令将显示数据包经过的所有路由器,帮助你识别可能存在问题的路由跳点。
2.3 检查端口和服务
netstat和ss是检查系统当前网络连接状态的强大工具。
• 查看所有监听的端口
ss -tuln• 检查特定端口的连接
netstat -an | grep 80 # 查看所有80端口的连接• 使用nc(netcat)测试端口
nc命令可以用于快速测试网络端口的连通性:
nc -zv google.com 80 # 测试连接到Google的80端口2.4 检查防火墙设置
Linux系统通常使用iptables或firewalld来管理防火墙规则。如果网络连接有问题,可能是防火墙阻止了某些流量。
• 查看iptables规则
sudo iptables -L -n -v• 临时禁用防火墙
sudo systemctl stop firewalld # 对于使用firewalld的系统sudo iptables -F # 清除所有iptables规则2.5 使用tcpdump进行网络包分析
tcpdump是一个强大的网络包捕获工具,适用于深入分析网络流量。
• 捕获并查看网络流量
sudo tcpdump -i eth0• 捕获指定端口的流量
sudo tcpdump -i eth0 port 80通过分析捕获的流量,可以识别出网络中的异常行为或问题。
实用技巧与高级配置3.1 使用nmcli配置网络
nmcli是NetworkManager的命令行接口,适用于更高级的网络配置。=
• 列出所有网络连接
nmcli connection show• 创建新的网络连接
nmcli connection add type ethernet ifname eth0 con-name my-eth0 ip4 192.168.1.100/24 gw4 192.168.1.13.2 配置持久化静态IP地址
在很多情况下,网络接口的IP配置需要在系统重启后保持不变。可以通过编辑网络配置文件来实现这一点。对于基于Debian的系统,可以编辑/etc/network/interfaces文件:
auto eth0iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1对于RHEL/CentOS系统,可以编辑/etc/sysconfig/network-scripts/ifcfg-eth0文件:
BOOTPROTO=staticIPADDR=192.168.1.100NETMASK=255.255.255.0GATEWAY=192.168.1.1