简单步骤给Ubuntu系统设置静态IP地址

这篇文章详细记录了如何在Ubuntu上设置静态IP地址。

当设备第一次连接到路由器时,路由器的DHCP(动态主机配置协议)会给它分配一个IP地址。通常情况下,这个IP地址会从一个池中随机分配。虽然有些路由器会在每次重启时将相同的IP交给同一个设备,但这并不可靠。

Ubuntu-18.04-Static-IP-Address-Thumbnail.jpg

有两种主要的方法来解决路由器的动态IP分配行为。

使用 DHCP 预留静态 IP 地址

分配静态IP地址的第一种方法是利用DHCP。

DHCP是为Ubuntu设备设置静态IP地址的最佳方式。

它不针对操作系统,可以保证路由器不会把IP给不同的设备。

当设备连接到路由器时,它会请求一个IP地址,同时暴露网络接口的MAC地址。然后,路由器检查是否已经为该MAC地址保留了一个IP。如果已被保留,路由器将把该IP的设备。

Ubunt-18.04-static-IP-address-DHCP-Reservation-Diagram.png

配置DHCP,需要利用路由器。不同的路由器在这方面的配置会有很大的不同,我建议查阅你的路由器文档进行配置。

应该注意,Wi-Fi和以太网连接被分配了两个不同的MAC地址。要保留的IP地址,只需要使用一个网络接口就行了。

请求静态IP地址

另一种方法是调整设备,向路由器的DHCP服务器请求一个特定的IP地址。

当设备连接到路由器时,它会说它要利用一个特定的IP地址。

如果该IP地址在池中可用,它将被分配给Ubuntu设备。

Ubunt-18.04-static-IP-address-Request-Diagram.png

这种方法最大的缺点是永远不能保证IP地址的可用性。路由器可以很容易地将IP分配给其他设备,因为它没有被保留。如果分配失败,设备就无法连接到网络了。它不会到路由器的IP池子中检索IP地址。

在接下来的几节中,展示下如何设置Ubuntu 18.04向路由器请求一个特定的IP地址。

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

本节向您展示如何在Ubuntu服务器上设置静态IP地址。

由于Ubuntu服务器操作系统没有桌面界面,所以需要使用其终端界面来处理这一切。

识别网络接口名称

Ubuntu默认使用了一个叫做 “可预测网络接口名称”的东西。

接口名称是为了让人们更容易知道一个网络设备将被分配到什么名称。

例如,我们知道,一个以太网接口总是以en开头。

同样,一个无线网络接口的名称也会以wl开头。

1. 要获得Ubuntu Server的网络接口列表,需要使用ip命令。

在设备上运行以下命令,列出其当前所有活动的网络接口。

ip link

2. 使用ip链接命令,应该最终看到像我下面的东西。

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: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:2c:84:22 brd ff:ff:ff:ff:ff:ff

从我的例子可以看出,我有两个网络设备。

第一个被命名为 “lo “的设备是环回设备,可以忽略它。

第二个设备就是要找的设备,名字叫 “enp0s3″。  这个设备是电脑的以太网接口。

3. 记下网络接口的名称。

在我的例子中,这是 “enp0s3″,但你的可能会有所不同。

要在Ubuntu服务器18.04上设置一个静态IP地址,需要这个网络接口名称。

使用 Netplan 定义静态 IP 地址

Ubuntu Server 18.04使用了一个叫Netplan的网络管理工具。

需要修改Netplan的设置,使它在连接到路由器时利用设置的IP。

1. 第一个任务将是查看安装Ubuntu服务器时附带了哪些配置文件。

使用下面的ls命令列出位于”/etc/netplan/”目录中的文件。

ls /etc/netplan/

从这个列表中,找出包含网络接口设置的配置文件。

在我的案例中,这个文件叫做 “01-netcfg.yaml”,但也有可能它有不同的名字,比如 “50-cloud-init.yaml”。

如果该目录下没有文件存在,请继续本教程。到最后,会创建一个基本的配置文件。

2. 利用nano文本编辑器编辑Netplan配置。

sudo nano /etc/netplan/01-netcfg.yaml

确保你使用的是上面查找的文件

3. 在这个文件中,应该看到类似于我下面的东西。

这段文字告诉Netplan应该如何处理连接。

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: yes

network: – 要配置网络设备,文件必须以 network: 块开头。

网络的所有配置细节都会放在这个区块下。

version: – 可以用 “version“来告诉Netplan使用的是什么配置标记。

在我的情况下,这个值是2,这是发布时的现行标准。

renderer: – 使用这个选项,可以定义哪个后端将处理连接。

这只有两种可能的设置,默认的是networkd和NetworkManager。

ethernets: – 在这块下面,将定义所有以太网接口的设置。

如果使用的是无线连接,可能会看到 “wifis “而不是 “ethernets “。

enp0s3: – 使用网络接口名称定义了一个新的块,在这里可以设置特定于该设备的选项。

这个设备值可能和我的会不一样。

dhcp4: – 使用这个选项,可以打开或关闭网络接口自动从路由器获取IP地址。

目前,可以看到这个选项被设置为yes。我会禁用这个选项,让Ubuntu使用静态IP地址。

如果你使用的是IPv6,这里会是dhcp6。

4. 现在需要修改这个配置文件,让Ubuntu利用静态IP地址。

编辑这个文件时,缩进是很重要的。位于一个块中的东西需要在前一个块的基础上增加两个空格。

例如,”ethernets: “块与 “network: “块的开头间隔两个空格。

a. 首先,需要禁止网络接口与DHCP服务器交互。

要禁用DHCP功能,需要将 “dhcp4: “值从 “yes”改为 “no”。

      dhcp4: no

b. 接下来,可以为Ubuntu电脑定义静态IP地址。

为此,需要添加一个新的 “address:”选项。

在这个选项旁边,需要指定要分配给设备的IP。

这些IP地址需要用方括号([ ])包裹,每个独立的IP用逗号(,)隔开。

在下面的例子中,为我的网络接口分配IP为192.168.0.123。

      addresses: [192.168.0.123/24]

c. 由于已经禁用了DHCP功能,需要使用 “gateway4: “选项来定义网关地址。

网关地址是设备所连接的路由器的内部IP地址。

如果使用的是IPv6,需要使用 “gateway6: “选项。

在我的例子中,路由器可以从192.168.1.1地址访问。

      gateway4: 192.168.1.1

d. 最后需要定义要用于服务器的名称服务器。

“nameservers “是一个独立的区块,需要在定义DNS IP之前添加以下一行。

      nameservers:

e. 在这个区块中,需要通过 “addresses: “选项来定义要连接的名称服务器。

由于该选项位于 “nameservers: “块中,因此需要增加两个空格。

与 IP 地址一样,这些地址需要用方括号 ([ ]) 包起来,每个名称服务器之间用逗号 (,) 分隔。

在我的例子中,我使用Google的DNS服务器,这两个IP地址是 “8.8.8.8 “和 “8.8.4.4”。

        addresses: [8.8.8.8,8.8.4.4]

5. 在本节结束时,你的配置应该像我下面的样子。

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: no
      addresses: [192.168.0.123/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8,8.8.4.4]

完成后,按CTRL + X,然后按Y,再按ENTER键来保存它。

6. 配置文件发生了变化,需要让Netplan来应用它们。

要应用这些更改,需要运行以下命令。

sudo netplan apply

7. 可以使用ip命令验证Ubuntu操作系统是否使用了静态IP地址。

使用ip命令,可以列出所有被分配到网络接口的地址。

ip addr

用这个命令中,找到以太网设备的连接情况。

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether dc:a6:32:d3:28:88 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.123/24 brd 192.168.0.255 scope global dynamic enp0s3
       valid_lft 86353sec preferred_lft 86353sec
    inet6 fe80::5054:ff:feb0:f500/64 scope link 
       valid_lft forever preferred_lft forever

在上面,你可以看到,我的inet值现在是我们在配置文件中设置的静态IP地址。

使用桌面界面设置静态IP地址

本节将向您展示如何在使用Ubuntu 18.04桌面版时设置一个静态IP地址。

这个过程比Ubuntu服务器版所需的过程更简单,因为它是通过设置界面完成的。

1. 在设置静态IP地址之前,需要先进入设置界面。

在使用桌面界面时,点击任务栏右侧的声音、电源、网络图标的位置。

Ubuntu-Desktop-18.04-Static-IP-address-Desktop-Menu.jpg

2. 在出现的下拉框中,应该看到一个带有扳手的图标。

需要点击这个图标来打开设置页面。

Ubuntu-Desktop-18.04-Static-IP-address-Opening-the-Settings-Page.jpg

3. 现在已经打开了设置页面,需要换到网络标签。

找到并点击左侧侧栏的 “Network”选项。

Ubuntu-Desktop-18.04-Static-IP-address-Change-to-the-Network-Tab.jpg

4. 在这个屏幕上,可以看到网络接口的列表。

找出正在使用的网络连接,并点击旁边的齿轮。

Ubuntu-Desktop-18.04-Static-IP-address-Opening-Interface-Settings.jpg

5. 接下来,需要换到IPv4标签。

在当前窗口的菜单栏中找到IPv4并点击它。

Ubuntu-Desktop-18.04-Static-IP-address-Change-to-the-IPv4-or-IPv6-Tab.jpg

请注意,如果使用的是IPv6,应该改用该标签。

6. 最后,在Ubuntu 18.04的右侧菜单中设置一个静态IP地址。

在这个屏幕上,需要做几件事。

首先,需要将DHCP模式从自动改为手动(1.)进入手动模式后,需要定义Address(2.)、Netmask(3.)和Gateway(4.)。

Address – 这是计算机连接到网络时要分配的IP地址。

Netmask – 网络掩码用于将一个IP地址划分为子网。在我的例子中,我使用的网掩码是”255.255.255.0 “。

Gateway – 需要将网关设置为路由器所在的本地 IP 地址。网关是设备连接到网络的地方。

设置好这三个值后,点击窗口右上角的 “Apply”按钮(5.

Ubuntu-Desktop-18.04-Static-IP-address-Modifying-the-DHCP-Settings-For-Static.jpg

7. 为确保一切正常工作,重新启动设备。

当它重启后,可以通过打开终端来验证它所分配的IP地址。

打开终端的最简单方法是使用CTRL + ALT + T。

8. 在终端中,运行以下命令来显示所有配置的网络设备的状态。

ip addr

如果一切正常,应该看到你的IP地址被列为inet YOURSTATICIPADDRESS。

结论

希望到这里您已经为Ubuntu设置了一个静态IP地址。

如果在设置静态IP地址时遇到任何问题,请在下面留言。

平均: 1 / 5. votes: 1

到目前为止还没有投票!成为第一位评论此文章。

欢迎转载,请留下出处链接:Labno3 » 简单步骤给Ubuntu系统设置静态IP地址

赞 (1)

评论

8+5=