Skip to content

Linux 网络基础设置

查看网卡信息

bash
# 查看所有(dnf -y install net-tools)
ifconfig
# 查看指定网卡(不论该网络接口是否处于激活状态)
ifconfig 设备

# 查看网络接口的数据链路层信息
ip link
# 查看网络接口的网络层信息
ip a

# 查看指定网络接口速率、模式等信息
ethtool 网卡名

输出信息

  • MTU:最大传输单元
  • inet:ipv4 地址
  • netmask:子网掩码
  • broadcast:广播地址
  • inet6:ipv6 地址
  • prefixlen:掩码长度
  • scopeid:作用域(link 表示仅该接口有效)
  • ether:该网卡接口的
  • mac 地址
  • txqueuelen:传输队列长度(接口类型为 ethernet)
  • RX:接收的数据包个数及字节数
  • TX:发送的数据包个数及字节数
  • errors:错误数
  • dropped:丢弃数
  • overruns:溢出数
  • carrier:载荷数
  • frame:帧数
  • collisions:冲突数

路由表

bash
# 查看路由表
netstat -r
route -n

网络路由域名工具

bash
# 测试网络连接性
ping google.com

# 网络诊断工具(追踪到google.com的路由路径)
traceroute google.com

# 用于查询 DNS(域名系统)记录的命令行工具
nslookup example.com

网卡配置

临时修改网络配置

bash
# 方法一:ifconfig 网络设备 IP地址/短格式子网掩码
ifconfig ens32 192.168.1.100 netmask /27
# 方法二:ifconfig 网络设备 IP地址 子网掩码
ifconfig ens32 192.168.1.100 netmask 255.255.255.224

固定修改网络配置

网卡配置文件

ini
DEVICE=ens32 									# 设备名
HWADDR=00:0C:29:8F:D8:E0 						# 物理地址(MAC 地址)
TYPE=Ethernet 									# 类型(以太网)
PROXY_METHOD 									# 代理方式(默认关闭)
BROWSER_ONLY 									# 只是浏览器(默认否)
DEFROUTE 										# 默认路由
UUID=da840b8c-a2d8-4a09-83a8-50d5437c3ba3 		# UUID 号
ONBOOT=yes 										# 是否开机自动启用
NM_CONTROLLED=no 								# 图形化管理控制,是 network manger 的参数
#BOOTPROTO=dhcp 								# 自动获取IP
BOOTPROTO=static 								# 引导协议(static/none:手动配置)
IPADDR=192.168.91.108 							# IPv4 协议的 IP 地址
NETMASK=255.255.255.0 							# 子网掩码
GATEWAY=192.168.91.1 							# 网关
#USERCTL=no 									# 是否允许非 root 用户控制该设备
#IPV6INIT=no 									# 是否启用 IPv6 协议
#DNS1=202.106.46.151 							# DNS 域名解析服务

# 补充:
IPV4_FAILURE_FATAL=no 							# IPV4 致命错误检测
IPV6INIT=yes 									# IPV6 是否自动初始化
IPV6_AUTOCONF=yes 								# 是否自动配置
IPV6_DEFROUTE=yes 								# 是否可以为默认路由
IPV6_FAILURE_FATAL=no 							# 致命错误检测
IPV6_ADDR_GEN_MODE=stable-privacy 				# IPV6 地址生成模

CentOS 7

网络服务

network

配置文件

/etc/sysconfig/network-scripts/目录下的 ifcfg-对应网络设备名称,默认 第一块网卡为 ens32

重启网络服务

systemctl restart network

openEuler

网络服务

NetworkManager

配置文件

/etc/sysconfig/network-scripts/目录下的 ifcfg-对应网络设备名称,默认 第一块网卡为 ens32

重启网络服务

bash
# 重启网络服务
systemctl restart NetworkManager

# 重启NetworkManager后会出现两个IP修改前和修改后的都存在,可以重启网卡重新连接
ifdown ens32;ifup ens32

Kylin V10

网络服务

NetworkManager

配置文件

/etc/sysconfig/network-scripts/目录下的 ifcfg-对应网络设备名称,默认 第一块网卡为 ens32

重启网络服务

bash
# 重启网络服务
systemctl restart NetworkManager

# 重启NetworkManager后会出现两个IP修改前和修改后的都存在,可以重启网卡重新连接
ifdown ens32;ifup ens32

Almalinux

网络服务

NetworkManager

配置文件

/etc/NetworkManager/system-connections/目录下的.nmconnection 后缀的网卡文件。默认第一块网卡为

重启网络服务

bash
# 重启网络服务
systemctl restart NetworkManager

# 重启NetworkManager后会出现两个IP修改前和修改后的都存在,可以重启网卡重新连接
# 修改连接配置后重新激活
nmcli connection reload ens160.nmconnection
# 断开网卡
nmcli connection down ens160
#重启网卡
nmcli connection up ens160

网卡配置

ini
[connection]
id=ens160                  # 连接显示名称
uuid=6a4c6b3e-1234-5678-90ab-cdef12345678  # 唯一标识符
type=ethernet              # 连接类型
interface-name=ens160      # 绑定的物理接口
permissions=               # 用户访问权限控制(留空表示无限制)

[ethernet]
mac-address=00:0C:29:XX:XX:XX  # 绑定的MAC地址(可选)
mtu=1500                   # 最大传输单元

[ipv4]
method=manual              # IP分配方式(auto/dhcp/manual)
addresses=192.168.1.100/24 # 静态IP配置
gateway=192.168.1.1
dns=8.8.8.8;8.8.4.4;       # DNS服务器(分号分隔)
dns-search=example.com     # DNS搜索域

[ipv6]
method=disabled            # IPv6配置策略

[proxy]                    # 代理配置(可选)

Rocky Linux

网络服务

NetworkManager

配置文件

/etc/sysconfig/network-scripts目录下的 ifcfg-对应网络设备名称。默认第一块网卡为ens160

重启网络服务

bash
# 重启网络服务
systemctl restart NetworkManager

# 重启NetworkManager后会出现两个IP修改前和修改后的都存在,可以重启网卡重新连接

# 断开网卡
nmcli connection down ens160
#重启网卡
nmcli connection up ens160

Ubuntu

网络服务

Ubuntu 17.10 中引入的一种新的命令行网络配置实用程序,用于在 Ubuntu 系统中轻松管理和配置网络设置。 它允许您使用 YAML 格式的描述文件来抽像化定义网络接口的相关信息。Netplan 可以使用NetworkManagerSystemd-networkd 的网络守护程序来做为内核的接口。

配置文件

Netplan 的默认描述文件在 /etc/netplan/*.yaml 里,Netplan 描述文件采用了 YAML 语法。

配置自动获取ip
yaml
network:
  # yaml版本
  version: 2
  # 服务名
  renderer: NetworkManager
  # 网卡信息
  ethernets:
    # 网卡名
    ens5:
      # 开启dhcp(IPV4)
      dhcp4: true
      # 开启dhcp(IPV6)
      dhcp6: true
配置静态ip
yaml
network:
  # yaml版本
  version: 2
  # 服务器版用 networkd,桌面版可用 NetworkManager
  renderer: networkd
  # 网卡信息
  ethernets:
    # 网卡名
    ens32:
      # 关闭dhcp(IPV4)
      dhcp4: no
      # IP地址
      addresses:
        - 192.168.148.5/24
      # 网关地址
      gateway4: 192.168.148.2
      # DNS地址
      nameservers:
        addresses: [8.8.8.8, 114.114.114.114]

可以用一下方法检测使用的服务

bash
if dpkg -l ubuntu-desktop &> /dev/null; then
    echo "Ubuntu Desktop 版,使用 NetworkManager"
    NETWORK_SERVER="NetworkManager"
else
    echo "Ubuntu Server 版,使用 systemd-networkd"
    NETWORK_SERVER="networkd"
fi

重启网络服务

bash
netplan apply