侧边栏壁纸
博主头像
一揽芳华 博主等级

行动起来,活在当下

  • 累计撰写 265 篇文章
  • 累计创建 24 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

ubuntu使用nmcli管理网络

芳华是个男孩!
2024-10-14 / 0 评论 / 0 点赞 / 6 阅读 / 0 字
广告 广告

title: 02-ubuntu-server使用nmcli管理网络
order: 2

icon: lightbulb

预备需求

  • Ubuntu Server 20.04
  • root权限
  • 可以访问互联网

步骤

1. 安装network-manager

   sudo apt install network-manager

2. 使用 ip addr 查看要配置的网卡

   cc@ubuntu:~$ ip addr
   1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
       link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
       inet 127.0.0.1/8 scope host lo
          valid_lft forever preferred_lft forever
       inet6 ::1/128 scope host
          valid_lft forever preferred_lft forever
   2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
       link/ether 00:0c:29:59:f9:bf brd ff:ff:ff:ff:ff:ff
       inet 192.168.93.132/24 brd 192.168.93.255 scope global dynamic ens33
          valid_lft 1688sec preferred_lft 1688sec
       inet6 fe80::20c:29ff:fe59:f9bf/64 scope link
          valid_lft forever preferred_lft forever
   cc@ubuntu:~$

3. 我的网卡为ens33

4. 启用network-manager,编辑NetworkManager.conf 文件

   sudo nano /etc/NetworkManager/NetworkManager.conf

5. 将managed=false修改为managed=true然后重启 服务

   sudo systemctl restart network-manager.service

6. 编辑/etc/netplan/*.yaml ,在我的机器上为:

   cc@ubuntu:~$ sudo nano /etc/netplan/00-installer-config.yaml

7. 修改内容如下

   network:
     version: 2
     renderer: NetworkManager

8. 应用配置

   cc@ubuntu:~$ sudo netplan apply

此时已经可以通过nmcli管理网络了

使用nmcli -p device查看设备状态

cc@ubuntu:~$ nmcli -p device
=====================
  Status of devices
=====================
DEVICE  TYPE      STATE      CONNECTION
----------------------------------------------------------------------
ens33   ethernet  connected  Wired connection 1
lo      loopback  unmanaged  --
cc@ubuntu:~$

例子:使用nmcli配置静态ip地址

1. 创建一个连接,语法如下

   sudo nmcli connection add con-name <连接名> ifname <网卡名> type <连接类型> ipv4.method manual ipv4.addresses <ipv4地址> ipv4.gateway <ipv4网关地址> ipv4.dns <ipv4 dns服务器>

2. 例如:

   sudo nmcli connection add con-name test ifname ens33 type ethernet ipv4.method manual ipv4.addresses 192.168.93.4/24 ipv4.gateway 192.168.93.2 ipv4.dns 192.168.93.2

3. 激活连接,语法如下

   sudo nmcli connection up <连接名> ifname <网卡名>

4. 例如:

   sudo nmcli connection up test ifname ens33

后续步骤:

查看连接状态

cc@ubuntu:~$ nmcli connection
NAME                UUID                                  TYPE      DEVICE
test                4bd559fe-191d-460c-a4cd-56ae44c27859  ethernet  ens33
Wired connection 1  e3f905c8-ba3f-3a5f-ab41-8397381e6fe6  ethernet  --

删除多余连接

cc@ubuntu:~$ sudo nmcli connection delete Wired\ connection\ 1

查看ip地址

cc@ubuntu:~$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:59:f9:bf brd ff:ff:ff:ff:ff:ff
    inet 192.168.93.4/24 brd 192.168.93.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::cfb6:10b:de98:a885/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
cc@ubuntu:~$

开机如果停留在网卡出很久,进入系统后修改如下文件

root@k8s:~# cat /etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service 
#  SPDX-License-Identifier: LGPL-2.1-or-later
#
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

[Unit]
Description=Wait for Network to be Configured
Documentation=man:systemd-networkd-wait-online.service(8)
DefaultDependencies=no
Conflicts=shutdown.target
Requires=systemd-networkd.service
After=systemd-networkd.service
Before=network-online.target shutdown.target

[Service]
Type=oneshot
ExecStart=/lib/systemd/systemd-networkd-wait-online
RemainAfterExit=yes

TimeoutStartSec=2sec            # 跳过

[Install]
WantedBy=network-online.target
0
广告 广告

评论区