Linux 网络配置

Linux 网络配置

1. 查看和测试网络配置

  • 查看网络配置:使用ifconfig\ip addr命令。
  • 测试连通性:使用ping命令来测试主机间的网络连通性。

2. 查看网关

  • 使用路由表命令如route -nip route来查看默认网关信息。

3. 配置IP地址

自动获取IP
  • 特点:启动时自动获取IP,但每次可能不同。
  • 方法:通过图形界面设置为自动获取。
指定静态IP
  • 修改配置文件(例如/etc/sysconfig/network-scripts/ifcfg-ens33)来指定静态IP。
    原文件:
点击查看代码
[xy@localhost network-scripts]$ cat ifcfg-ens33 
TYPE="Ethernet"
# 指定网络接口类型为以太网(有线网络)。

PROXY_METHOD="none"
# 不使用任何自动代理配置方法,即不通过WPAD等协议自动获取代理设置。

BROWSER_ONLY="no"
# 表示此连接不仅限于浏览器使用,其他应用程序也可以使用该网络连接。

BOOTPROTO="dhcp"
# 使用DHCP协议自动获取IP地址和其他网络参数(如子网掩码、默认网关和DNS服务器)。

DEFROUTE="yes"
# 允许此接口作为系统的默认路由,用于发送不在本地网络上的数据包。

IPV4_FAILURE_FATAL="no"
# 如果IPv4配置失败,系统不会认为这是致命错误,允许系统继续启动或运行。

IPV6INIT="yes"
# 启用IPv6支持。

IPV6_AUTOCONF="yes"
# 允许自动配置IPv6地址,通常通过SLAAC(无状态地址自动配置)完成。

IPV6_DEFROUTE="yes"
# 允许此接口作为IPv6流量的默认路由。

IPV6_FAILURE_FATAL="no"
# 如果IPv6配置失败,系统不会认为这是致命错误,允许系统继续启动或运行。

IPV6_ADDR_GEN_MODE="stable-privacy"
# 指定IPv6地址生成模式为稳定隐私扩展,这有助于提高用户隐私保护。

NAME="ens33"
# 网络接口的名称,在NetworkManager中显示的连接名称。

UUID="5a810f68-6b38-4d11-89c4-ab87fce2dc82"
# 唯一标识符,用来唯一识别这个网络接口配置。

DEVICE="ens33"
# 实际的网络设备名称,即物理或虚拟网络接口的名字。

ONBOOT="yes"
# 在系统启动时自动激活此网络接口。
修改后文件(参数顺序不重要)
点击查看代码
[root@localhost network-scripts]# cat ifcfg-ens33 
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
#BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="5a810f68-6b38-4d11-89c4-ab87fce2dc82"
DEVICE="ens33"
ONBOOT="yes"
BOOTPROTO="static"  # 更改为静态获取
IPADDR="192.168.72.131"  # 设置静态IP地址
PREFIX="24"  # 或者 NETMASK="255.255.255.0" 设置子网掩码
GATEWAY="192.168.72.2"   # 设置默认网关
DNS1="192.168.72.2"      # 设置首选DNS服务器

image

  • 应用更改:重启网络服务(service network restart)或重启系统使更改生效。
    Ubuntu(Ubuntu 24.04 LTS)
    Ubuntu的配置文件在/etc/netplan目录下,有两个文件:01-network-manager-all.yaml 50-cloud-init.yaml
    直接编辑50-cloud-init.yaml
点击查看代码
# network: {config: disabled}
network:
    ethernets:
        ens33:
            dhcp4: no
            addresses: 
              - 192.168.72.133/24    #静态ip
            routes:
              - to: default
                via: 192.168.72.2   #网关
            nameservers:
              addresses: [8.8.8.8]    #dns
    version: 2
#注意格式的缩进与空格很容易出错

image

应用Netplan配置文件中的更改:netplan apply
编辑01-network-manager-all.yaml也一样效果

点击查看代码
root@user-VMware-Virtual-Platform:/etc/netplan# cat 01-network-manager-all.yaml 
# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager  
  ##这个设置告诉Netplan将所有网络接口的管理权交给NetworkManager。这意味着,即使你在Netplan配置文件中定义了静态IP地址或其他网络设置,这些设置实际上是由NetworkManager来应用的

01-network-manager-all.yaml 使用 NetworkManager 作为渲染器,意味着所有网络接口都由NetworkManager管理。
50-cloud-init.yaml 直接定义了网络接口的具体配置(例如ens33使用DHCP)。

注意:

点击查看代码
** (generate:108751): WARNING **: 16:26:23.869: Permissions for /etc/netplan/01-network-manager-all.yaml are too open. Netplan configuration should NOT be accessible by others.

** (process:108750): WARNING **: 16:26:24.857: Permissions for /etc/netplan/01-network-manager-all.yaml are too open. Netplan configuration should NOT be accessible by others.

** (process:108750): WARNING **: 16:26:25.197: Permissions for /etc/netplan/01-network-manager-all.yaml are too open. Netplan configuration should NOT be accessible by others.

出现这几行的意思是文件权限过于宽松的警告信息,解决方法:

点击查看代码
root@user-VMware-Virtual-Platform:/etc/netplan# chmod 600 01-network-manager-all.yaml 
root@user-VMware-Virtual-Platform:/etc/netplan# chmod 600 50-cloud-init.yaml 

4. NetworkManager、netplan 和 systemd-networkd的区别

NetworkManager

特点:

非常适合桌面环境,提供了一个易于使用的图形用户界面来管理网络连接,可以自动检测并配置有线、无线、移动宽带等多种类型的网络连接,容易上手。

  • 连接配置文件通常位于/etc/NetworkManager/system-connections/
  • 全局配置文件为/etc/NetworkManager/NetworkManager.conf
    nmtui
    image

保存生效:sudo systemctl restart NetworkManager

netplan

特点:

默认用于大多数新版本的Ubuntu服务器安装,可以根据Netplan配置文件自动生成其他网络配置工具(如NetworkManager或systemd-networkd)所需的配置。

  • 通常位于/etc/netplan/目录下,文件名可能是类似于01-netcfg.yaml50-cloud-init.yaml
systemd-networkd

轻量级的网络配置工具,直接处理网络接口和路由配置,更适合命令行操作,没有图形界面支持。

点击查看代码
[Match]
Name=ens33

[Network]
Address=192.168.200.130/24
Gateway=192.168.200.2
DNS=192.168.200.2

保存生效:sudo systemctl restart systemd-networkd
检查:systemctl status systemd-networkd

  • 主要配置文件是/etc/systemd/network/*.network,其中每个.network文件对应一个网络接口。

image

总结

  • NetworkManager:适合桌面环境和个人电脑,提供图形界面和对多种网络类型的强大支持。
  • netplan:适用于服务器环境,特别是云实例,提供了简单易用的声明式配置方法。
  • systemd-networkd:适合服务器和嵌入式系统,提供轻量级、高效的网络配置解决方案,主要面向命令行用户。

如果vm虚拟机中没有网络,检查服务的这两项是否开启

image

posted @ 2025-01-08 17:36  以后不要没饭吃啊  阅读(1090)  评论(0)    收藏  举报