为了更深入的了解linux系统,为此做出网络接口管理的知识总结。看起来麻烦,其实一点都不难,相信多看多了解总会是没错的!❤️❤️
一起加油吧!✨✨🎉🎉
前言
Linux 网络接口管理涵盖了对Linux操作系统中各种网络接口的配置、监控和故障排查等工作。网络接口是操作系统与物理或虚拟网络设备交互的通道,负责发送和接收数据包。
提示:以下是本篇文章正文内容,下面案例可供参考
一、网络配置的文件介绍
Linux 网络配置涉及到多个核心配置文件,以下是主要的几个配置文件及其用途:
配置文件 | 作用 |
---|---|
/etc/sysconfig/network-scripts/ifcfg-ethX | 系统网络设备配置文件,ethX 是网络接口的名字,如 ifcfg-eth0 表示第一块以太网卡的配置 |
/etc/sysconfig/network | 全局网络配置文件,这个文件用来配置全局网络设置,例如主机名(HOSTNAME)和默认网关(GATEWAY) |
/etc/resolv.conf | 域名解析配置文件,用于设置DNS客户端的相关配置,包括DNS服务器的IP地址(nameserver),以及可能的DNS搜索域(search) |
/etc/hosts | 主机名映射文件,此文件中定义了主机名与IP地址的静态映射,当系统需要解析主机名时,首先会查找这个文件 |
/etc/networks | 网络名和网络地址映射文件,定义网络名与其对应的网络地址的映射,不过在很多现代Linux发行版中,这个文件的使用不如以前那么常见 |
/etc/network/interfaces | Debian/Ubuntu系列系统中的网络配置文件,在 Debian 及其衍生版本(如 Ubuntu)中,这是用来配置网络接口的主要文件,定义了接口的启动模式和详细参数 |
/etc/hostname | 主机名配置文件,用于存储当前系统的主机名,重启后生效 |
/etc/modprobe.d/ | 目录下的配置文件可能会影响到网络模块加载时的参数设置 |
/etc/sysctl.conf | 系统级的网络和系统参数配置文件,可以调整内核级别的网络行为 |
需要注意
的是,不同的Linux发行版可能会有不同的配置方式和文件结构,例如Systemd系统中,网络配置可能更多地依赖于"netplan"或"netctl"这样的新工具,而不再直接编辑上述传统的文本配置文件。
二、网卡配置文件
网卡配置文件主要用于定义网络接口卡(NIC)的各种参数,以便系统正确配置和启动网络服务。不同Linux发行版有不同的配置方式和文件位置。
-
System V init脚本的传统配置方式(如Red Hat Enterprise Linux/CentOS/Fedora系列):
网卡配置文件通常位于
/etc/sysconfig/network-scripts/ifcfg-<interface>
目录下,其中<interface>
时网卡名称,如ifcfg-eth0
或ifcfg-ens33
,该文件包含了网卡的IP地址、子网掩码、网关、DNS服务器等信息以及启动选项等配置项。
例如:
# 网卡基本信息
DEVICE=eth0 # 网络设备名,这里为eth0
TYPE=Ethernet # 网络类型,一般为以太网
UUID=<some-uuid> # 网卡的唯一标识符
# 启动与管理
ONBOOT=yes # 是否在系统启动时启动此网卡
NM_CONTROLLED=yes # 是否由NetworkManager管理(如果是CentOS/RHEL 7+,这通常是默认配置)
# IP地址配置
BOOTPROTO=dhcp # 地址获取方式,可选dhcp(动态)、static(静态)、none等
IPADDR=192.168.1.100 # 当BOOTPROTO=static时,设置静态IP地址
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.1.1 # 默认网关
# DNS配置
DNS1=8.8.8.8 # 第一个DNS服务器地址
DNS2=8.8.4.4 # 第二个DNS服务器地址
# IPv6相关设置
IPV6INIT=yes # 是否启用IPv6
IPV6_AUTOCONF=yes # 是否自动配置IPv6地址
IPV6ADDR=2001:db8::1 # 当配置静态IPv6地址时使用
# 其他高级设置
PEERDNS=no # 是否在DHCP过程中接受DHCP服务器提供的DNS服务器信息
DOMAIN=mydomain.local # DNS搜索域
USERCTL=no # 是否允许非root用户控制该设备
MTU=1500 # 最大传输单元(默认通常是1500字节)
参数 | 作用 |
---|---|
TYPE=Ethernet | 指定网络接口类型为以太网 |
PROXY_METHOD=none | 表示不使用任何代理方法 |
BROWSER_ONLY=no | 不仅限于作为浏览器使用的网络接口 |
BOOTPROTO | dhcp 启动时通过DHCP协议自动获取IP地址、子网掩码、网关和DNS服务器等信息。static 手动配置静态IP地址。none 无协议,通常与手动分配静态IP地址一起使用 |
DEFROUTE=yes | 是否使用此接口作为默认路由 |
PEERNDNS=yes | 网络启动后加载的DNS服务器的读取位置 |
1IPV4_FAILURE_FATAL=no | 如果IPv4配置失败,是否认为是致命错误(yes表示是,no表示不是,系统将继续尝试启动其他网络接口) |
IPV6INIT=yes | 是否初始化IPv6支持 |
IPV6_AUTOCONF=yes | 是否允许自动配置IPv6地址(如通过RA消息) |
IPV6_DEFROUTE=yes | 是否将此接口设为IPv6的默认路由 |
IPV6_FAILURE_FATAL=no | 类似于IPv4_FAILURE_FATAL,但针对IPv6 |
NAME=ens33 | 网络接口的名称 |
UUID=… | 网络接口的唯一标识符 |
DEVICE=ens33 | 设备名称,与NAME相同,指代具体的硬件接口 |
ONBOOT=yes | 是否在系统启动时自动启动此网络接口 |
IPADDR=192.168.2.121 | 静态分配给该接口的IPv4地址 |
NETMASK=255.255.255.0 | 子网掩码,用于定义网络的大小 |
GATEWAY=192.168.2.1 | 默认网关地址,用于将非本网段的数据包转发至路由器 |
DNS1=8.8.8.8 | 主DNS服务器地址 |
网络重启命令:
systemctl restart network.service # 对于较早的系统
systemctl restart NetworkManager # 对于使用NetworkManager的系统
systemctl restart networking # 对于一些不使用NetworkManager的传统系统
对指定接口重启
ip link set dev ens33 down && ip link set dev ens33 up # 新式命令行方式
ifdown ens33 && ifup ens33 # 对于传统sysvinit方式
三、本地域名解析文件
本地域名解析文件主要是指 /etc/hosts
文件,它是系统内置的一个静态主机名到IP地址的映射表。当系统需要解析一个域名时,它会首先检查 /etc/hosts
文件中的记录,然后再去查询DNS服务器。这意味着在 /etc/hosts
中添加的条目可以覆盖DNS服务器的解析结果,从而实现本地化的、独立于外部DNS服务器的域名解析。
四、DNS解析文件
DNS解析主要不是通过单一的“解析文件”来进行的,而是通过一系列的配置文件和系统服务共同协作来完成。其中,设置DNS服务器地址以及影响域名解析过程的配置文件是 /etc/resolv.conf
。
参数 | 作用 |
---|---|
nameserver | 指定DNS服务器的IP地址,系统按列出的顺序依次查询DNS请求 |
domain | 设定本地域名,这对于DNS查询中的未完全限定域名(FQDN)补全有一定作用 |
search | 指定DNS搜索域列表,当主机名没有指定完全域名时,系统会自动加上这些搜索域进行查询 |
options | 可以设定一些全局的DNS解析选项 |
五、主机名配置文件
主机名配置文件主要是 /etc/hostname
。这个文件用来存储系统的静态主机名,即不依赖于网络环境的本地主机名。
#更改主机名
hostnamectl set-hostname redhat.example.com
#刷新
bash
#查看主机名
hostname
六、常用网络命令
在Linux系统中,网络接口管理涉及多种网络命令,以下是一些常用的命令及其应用场景:
命令 | 作用 |
---|---|
ifconfig | 查看、配置网络接口的IP地址、子网掩码、广播地址等信息。例如:查看所有网络接口信息:ifconfig -a 、配置IP地址:sudo ifconfig eth0 192.168.1.1 netmask 255.255.255.0 和启用或禁用网络接口:sudo ifconfig eth0 up/down 等 |
ip | 更为强大的网络配置和管理工具,可用于查看、配置网络接口、路由表、邻居(ARP表)等。查看所有网络接口信息:ip addr show 、 配置IP地址:sudo ip addr add 192.168.1.1/24 dev eth0 和 启用或禁用网络接口:sudo ip link set eth0 up/down |
ping | 测试网络连通性,通过发送ICMP Echo Request报文检查目标主机是否可达。如:ping www.example.com |
traceroute | 追踪数据包到达目的地经过的所有路由器或网关。如:traceroute www.example.com |
route | 查看、操作路由表。如:route -n 查看路由表;route add/delete 添加或删除路由。 |
netstat | 查看网络连接、路由表、网络接口统计信息、打开的端口等。如:查看所有TCP连接:netstat -t 、查看所有监听的端口:netstat -lntu 和 查看路由表:netstat -rn |
ss | 类似于netstat ,但是提供更高效、更精确的socket统计信息。如:查看类似netstat -tln 的结果:ss -tln 和 查看TCP连接状态:ss -t states |
ethtool | 获取和设置网络接口卡(NIC)的高级属性,如速度、双工模式、驱动信息等。如:ethtool eth0 |
nmcli (NetworkManager CLI) | 在使用NetworkManager管理网络服务的系统中,通过命令行管理网络连接、无线网络等。如:查看网络连接:nmcli connection show |
hostname | 查看或临时修改主机名。hostname 显示当前主机名;hostnamectl set-hostname newhostname 修改主机名。 |