帮助中心
如何在Ubuntu 20.04上配置静态IP地址



本文解释了如何在Ubuntu 20.04上设置一个静态IP地址。

通常,在大多数网络配置中,IP地址是由路由器DHCP服务器动态分配的。在不同的情况下可能需要设置一个静态IP地址,比如配置端口转发或运行媒体服务器。

使用DHCP配置静态IP地址

给局域网中的设备分配一个静态IP地址的最简单和推荐的方法是在路由器上配置一个静态DHCP。静态DHCP或DHCP预留是大多数路由器上的一项功能,它使DHCP服务器在每次设备向DHCP服务器请求地址时,自动为特定的网络设备分配相同的IP地址。这通过为设备的唯一MAC地址分配一个静态IP来实现。

配置DHCP保留的步骤因路由器而异。更多信息请查阅供应商的文件。


网络计划


Ubuntu 17.10及以后版本使用Netplan作为默认的网络管理工具。之前的Ubuntu版本是使用ifconfig及其配置文件/etc/network/interfaces来配置网络的。

Netplan的配置文件是用YAML语法编写的,文件扩展名为.yaml。要用Netplan配置一个网络接口,你需要为该接口创建一个YAML描述,Netplan将为选择的渲染器工具生成所需的配置文件。

Netplan支持两种渲染器,NetworkManager和Systemd-networkd。NetworkManager主要用于桌面计算机,而Systemd-networkd则用于没有GUI的服务器。

在Ubuntu服务器上配置静态IP地址


在Ubuntu 20.04上,系统使用 "可预测的网络接口名称 "来识别网络接口。

设置静态IP地址的第一步是确定你要配置的以太网接口的名称。要做到这一点,使用ip link命令,如下所示。

$ ip link

该命令会打印出所有可用网络接口的列表。在这个例子中,接口的名称是ens3。

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:6c:13:63 brd ff:ff:ff:ff:ff:ff

Netplan的配置文件存储在/etc/netplan目录下。你可能会在这个目录中找到一个或多个YAML文件。该文件的名称可能因设置不同而不同。通常,该文件被命名为01-netcfg.yaml,50-cloud-init.yaml,或NN_interfaceName.yaml,但在你的系统中,它可能是不同的。

如果你的Ubuntu云实例是用cloud-init配置的,你将需要禁用它。要做到这一点,请创建以下文件。

$ sudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
network: {config: disabled}

要在网络接口上分配一个静态IP地址,用文本编辑器打开YAML配置文件。

$ sudo nano /etc/netplan/01-netcfg.yaml
/etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    ens3:
      dhcp4: yes

在改变配置之前,让我们简短地解释一下代码。

每个Netplan Yaml文件以网络密钥开始,该密钥至少有两个必要元素。第一个必要元素是网络配置格式的版本,第二个元素是设备类型。设备类型可以是ethernets、bond、bridge或vlans。

上面的配置还有一行显示了渲染器的类型。开箱后,如果你在服务器模式下安装Ubuntu,渲染器被配置为使用networkd作为后端。

在设备的类型(ethernets)下,你可以指定一个或多个网络接口。在这个例子中,我们只有一个接口ens3,它被配置为从DHCP服务器获取IP地址 dhcp4: yes.

为了给ens3接口分配一个静态IP地址,请按以下方式编辑文件。

  • 将DHCP设置为dhcp4: no
  • 指定静态IP地址。在 addresses:你可以添加一个或多个将被分配给网络接口的IPv4或IPv6 IP地址
  • 指定网关
  • 在nameservers下,设置nameservers的IP地址
/etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    ens3:
      dhcp4: no
      addresses:
        - 192.168.121.221/24
      gateway4: 192.168.121.1
      nameservers:
          addresses: [8.8.8.8, 1.1.1.1]

在编辑Yaml文件时,请确保你遵循YAML代码缩进标准。如果语法不正确,更改将不会被应用。

完成后,保存该文件,并通过运行以下命令应用这些更改。

$ sudo netplan apply

通过键入以下内容验证更改。

$ ip addr show dev ens3
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 08:00:27:6c:13:63 brd ff:ff:ff:ff:ff:ff
    inet 192.168.121.221/24 brd 192.168.121.255 scope global dynamic ens3
       valid_lft 3575sec preferred_lft 3575sec
    inet6 fe80::5054:ff:feb0:f500/64 scope link 
       valid_lft forever preferred_lft forever

这就是了! 你已经为你的Ubuntu服务器分配了一个静态IP。

在Ubuntu桌面上配置静态IP地址


在Ubuntu桌面电脑上设置静态IP地址不需要任何技术知识。

在活动屏幕中,搜索 "设置 "并点击图标。这将打开GNOME设置窗口。根据你想修改的界面,点击网络或Wi-Fi标签。要打开界面设置,点击界面名称旁边的齿轮图标。

在 "IPV4 "方法选项卡中,选择 "手动 "并输入你的静态IP地址、网络掩码和网关。一旦完成,点击 "应用 "按钮。



为了验证这些变化,通过使用Ctrl+Alt+T键盘快捷键或者点击终端图标并运行,打开你的终端。

$ ip addr

输出将显示接口的IP地址。

...
2: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 50:5b:c2:d8:59:7d brd ff:ff:ff:ff:ff:ff
    inet 192.168.121.221/24 brd 192.168.31.255 scope global dynamic noprefixroute wlp1s0
       valid_lft 38963sec preferred_lft 38963sec
    inet6 fe80::45e3:7bc:a029:664/64 scope link noprefixroute 


总结


我们已经向你展示了如何在Ubuntu 20.04上配置一个静态IP地址。

文章相关标签: 配置静态IP地址
购物车