• Ubuntu修改静态IP、网关和DNS的方法总结


    Ubuntu修改静态IP、网关和DNS的方法总结

    ubuntu系统(其他debian的衍生版本好像也可以)修改静态IP有以下几种方法。(搜索总结,可能也不太对)

    /etc/netplan (use)

    Ubuntu 18.04开始可以使用netplan配置网络,其也是默认安装的。配置文件位于/etc/netplan/xxx.yaml中,netplan默认是使用NetworkManager来配置网卡信息的。

    old: -- (Ubuntu 20.04.及以前版本使用)

    1. # 可以将其修改为如下格式,来修改网卡信息
    2. # 需要注意缩进关系,不然就会报错
    3. network:
    4. version: 2
    5. ethernets:
    6. ens33:
    7. dhcp4: no
    8. addresses: [192.168.16.136/24]
    9. gateway4: 192.168.16.2
    10. nameservers:
    11. addresses: [192.168.16.2]
    12. [网卡2的设备名称]:
    13. dhcp4: no
    14. addresses: [192.168.16.145/24]
    15. gateway4: 192.168.16.2
    16. nameservers:
    17. addresses: [192.168.16.2]
    18. # 然后运行,即可生效
    19. sudo netplan apply

    new: -- (Ubuntu 20.04.之后版本使用)

    1. root@my-ubuntu-vm1:~# vi /etc/netplan/00-installer-config.yaml
    2. # This is the network config written by 'subiquity'
    3. network:
    4. ethernets:
    5. ens33:
    6. #dhcp4: true
    7. dhcp4: false
    8. addresses: [192.168.31.85/24]
    9. optional: true
    10. routes:
    11. - to: default
    12. via: 192.168.31.1
    13. nameservers:
    14. addresses: [114.114.114.114]
    15. version: 2
    16. # 然后运行,即可生效
    17. sudo netplan apply
    • ethernets: 网卡数组-------------第二层
    • ens33: 网卡名字-------------第三层
    • dhcp4: 表示通过dhcp获取ip还是配置静态ip-------------第四层
    • addresses:配置ip地址与子网掩码-------------第四层
    • gateway4: 网关-------------第四层
    • nameservers: dns服务器-------------第四层
    • addresses:dns服务器的地址列表-------------第五层

    这种方法修改也比较方便。

    NetworkManager

    Ubuntu等带有界面的linux操作系统默认安装了NetworkManager,正常可以直接通过 系统设置 操作NetworkManager的图形化界面修改网卡的静态IP、网关和DNS。如下为ubuntu的操作界面。

    同时NetworkManager一般还提供nmcilnmtui的命令,可以通过终端来修改。

    • nmcil的基本操作流程
    1. # 显示网卡连接信息
    2. nmcli connection show
    3. # 短格式
    4. nmcli con show
    5. # 例如会返回如下信息
    6. NAME UUID TYPE DEVICE
    7. 有线连接 1 ee4dce9e-bf8f-3c4b-85d5-dd5a4ac0a2f1 ethernet ens33
    8. # 显示网卡的具体信息
    9. # NAME有中文的时候需要加''
    10. # nmcli con show '有线连接 1'
    11. nmcli con show [NAME]|[UUID]
    12. # 修改都需要 sudo 权限
    13. # 修改对应网卡的信息
    14. # 修改网卡的模式,自动/手动
    15. nmcli con modify [NAME]|[UUID] ipv4.method auto|manual
    16. # 设置为自动获取IP
    17. nmcli con modify '有线连接 1' ipv4.method auto
    18. # 修改IP地址
    19. nmcli con modify [NAME]|[UUID] ipv4.addresses [ip/mask]
    20. # 修改网关
    21. nmcli con modify [NAME]|[UUID] ipv4.gateway [gateway]
    22. # 修改DNS
    23. nmcli con modify [NAME]|[UUID] ipv4.dns [dns]
    24. # 上述修改后需要重启开启网卡才能生效
    25. nmcli con down [NAME]|[UUID]
    26. nmcli con up [NAME]|[UUID]
    27. # 未生效还可以尝试重启NetworkManager服务或者系统重启
    28. sudo service network-manager restart
    29. # 完整示例
    30. # 设置‘有线网卡 1’的IP地址为192.168.16.140,子网掩码为 255.255.255.0,网关为 192.168.16.2,DNS为 192.168.16.2
    31. sudo nmcli con modify '有线网卡 1' ipv4.method manual
    32. sudo nmcli con modify '有线网卡 1' ipv4.addresses 192.168.16.140/24
    33. sudo nmcli con modify '有线网卡 1' ipv4.gateway 192.168.16.2
    34. sudo nmcli con modify '有线网卡 1' ipv4.dns 192.168.16.2
    35. sudo nmcli con down '有线网卡 1'
    36. sudo nmcli con up '有线网卡 1'
    • nmtui的基本操作流程

    在终端中输入nmtui就会进入修改网卡信息的终端ui界面中,根据操作提示修改即可,注意修改后,需要重启网卡,启用连接 -> [选择对应的网卡] -> 禁用 -> 启用,修改才会生效。修改失败的话,就sudo nmtui再试试

    通过图形化界面、nmcli指令和nmtui指令操作,最终的配置信息都保存在/etc/NetworkManager文件夹中,网卡的配置文件在/etc/NetworkManager/system-connections文件夹中,也可以直接修改网卡配置文件来修改IP等,注意修改前最好备份一下配置文件。

    经过测试,修改后需要重启NetworkManager服务后,再重启网卡,修改才能生效。

    1. # 修改配置文件
    2. sudo vim /etc/NetworkManager/system-connections/[网卡NAME]
    3. # 重启NetworkManager服务
    4. sudo service network-manager restart
    5. # 重启网卡
    6. sudo nmcli con down [NAME]|[UUID]
    7. sudo nmcli con up [NAME]|[UUID]

    /etc/network/interface

    可以通过修改/etc/network/interface来配置网络,由于我们默认是通过NetworkManager修改网卡信息的,所以一开始interface文件中没有其他网卡的信息。

    可以在文件后面添加需要修改的网卡信息。

    1. # /etc/network/interface文件后添加
    2. auto [网卡名称] #要设置的网卡设备名称,如 auto ens33
    3. iface [网卡名称] inet static #设置静态IP;如果是使用自动IP用 dhcp
    4. address xxx.xxx.xxx.xxx #IP地址
    5. netmask xxx.xxx.xxx.xxx #子网掩码
    6. gateway xxx.xxx.xxx.xxx #网关
    7. # 修改完成后,重启网络服务
    8. service networking restart

    经过测试,有时候重启服务和重启网卡并不能生效,需要系统重启后生效,同时这个时候系统设置中的NetworkManager 就不太正常了。

    这种方法不能一起修改DNS,需要修改另外一个配置文件/etc/resolv.conf,具体详见这个博客ubuntu修改ip。但是我的ubuntu18.04的虚拟机中已经没有resolvconf这个服务了。具体见这个博客Ubuntu 手动配置DNS

    目前还不太会通过/etc/resolv.conf修改DNS,不建议使用这种方法修改DNS。

    ifconfig临时修改IP

    1. # 需要sudo权限
    2. # 临时修改ip
    3. ifconfig [网卡设备名称] [ip地址] netmask [子网掩码]
    4. # ifcogfin ens33 192.168.16.139 netmask 255.255.255.0
    5. # 启用\关闭网卡
    6. ifconfig [网卡名称] up
    7. ifconfig [网卡名称] down

    设置网关使用其他的命令

    1. # 设置网关,未测试
    2. sudo route add default gw 192.168.2.254

    设置DNS详见3。

    总结

    • NetworkManager: NetworkManager是一个用于管理网络连接的守护进程。它在现代Linux发行版中广泛使用,并提供图形用户界面和命令行工具来管理网络设置。它可以动态管理网络配置,包括有线、无线和VPN连接等。Ubuntu系统是默认使用NetworkManager。
    • /etc/netplan/: 这是Ubuntu 18.04及更高版本中使用的网络配置工具。Netplan允许您使用YAML格式定义网络配置,包括IP地址、网关、DNS等。Netplan会将配置转换为其他配置文件(如NetworkManager或systemd-networkd),从而应用新的网络设置。
    • /etc/network/interfaces: 这是Debian和Ubuntu等一些Linux发行版中用于配置网络接口的文件。它定义了网络接口的基本设置,例如IP地址、网关和子网掩码等。
    • ifconfig 命令通过调用系统调用以及与内核的交互来实时获取网络接口的信息。它获取到的信息是当前内核中网络接口的实时状态,而不是从配置文件中读取的静态配置信息。在Ubuntu中,使用ifconfig命令修改网卡的IP地址是临时的,不会修改任何配置文件。ifconfig命令用于动态地配置网络接口,所做的更改只会在下次系统重启时失效。

    前两个都操作起来更方便。第三个修改DNS还不太会,如果单纯修改IP地址和网关还行。第四个是临时修改。

    对于前三者的优先级,在配置了/etc/netplan/etc/network/interfaces的时候,系统重启后,NetworkManager好像就直接挂掉了,IP和网关是由/etc/network/interfaces设置决定,如果我再运行sudo netplan apply/etc/netplan中的配置就会生效;但系统重启后还是由/etc/network/interfaces决定。

  • 相关阅读:
    【笔记】JS的[Object file]类型转string
    分库分表如何管理不同实例中几万张分片表?
    postgresql源码学习(十五)—— 行锁③-死锁检测
    【斗破年番】彩鳞换装美翻,雁落天惨死,萧炎暗杀慕兰三老遇险,彩鳞霸气护夫
    蓝桥等考Python组别十八级004
    Liunx 进程通信
    【Python爬虫】网页抓取实例之淘宝商品信息抓取
    在Linux系统下部署Llama2(MetaAI)大模型教程
    漏刻有时数据可视化Echarts组件开发(42)渐变色的应用
    【云原生 | 18】Docker数据卷及卷的持久化问题
  • 原文地址:https://blog.csdn.net/justlpf/article/details/132977047