SEARCH

ubuntu固定ip:如何在Ubuntu上设置静态IP地址(Netplan/NetworkManager详细教程)

在企业级应用、家庭服务器搭建或任何需要稳定网络连接的场景中,为Ubuntu系统设置一个固定IP地址,即静态IP地址,是确保服务可靠运行的关键步骤。动态IP地址(DHCP分配)虽然方便,但其随机变化性可能导致端口转发失败、SSH连接中断或内部服务发现困难。本文将深入探讨如何在不同Ubuntu版本和环境下,通过Netplan(推荐用于现代Ubuntu服务器和部分桌面版)和NetworkManager(推荐用于Ubuntu桌面版图形界面)这两种主要方式,实现Ubuntu固定IP的配置,并提供详细步骤和常见问题解答。

为何需要为Ubuntu设置固定IP地址?

理解为何需要固定IP地址是配置的第一步。以下是一些主要原因:

1. 服务器和服务的稳定性

  • 端口转发: 如果您在Ubuntu上运行Web服务器(如Apache/Nginx)、数据库(如MySQL/PostgreSQL)、Git服务(如GitLab)或任何需要从外部网络访问的服务,路由器上的端口转发规则需要一个固定的内网IP地址才能始终将流量正确引导到您的Ubuntu机器。
  • 远程访问(SSH/RDP): 通过SSH或远程桌面协议(RDP)从其他设备访问Ubuntu时,固定的IP地址可以避免因IP变化而导致的连接失败。
  • DNS解析: 在内网环境中,您可能希望将自定义域名解析到您的Ubuntu服务器。如果服务器IP频繁变动,DNS记录将失效。

2. 网络管理和可预测性

  • 内部服务发现: 在复杂的网络环境中,其他内部设备或服务(例如网络存储、打印机、智能家居控制器)可能需要通过IP地址来发现和连接您的Ubuntu设备。固定IP使得这些连接更加可靠。
  • 防火墙规则: 配置防火墙(如UFW)规则时,您可能需要允许或拒绝特定IP地址的流量。固定IP使得这些规则的管理更加直接和有效。
  • 监控和日志: 监测网络流量或分析日志时,统一的IP地址有助于更好地追踪和识别特定设备或服务的活动。

在开始配置ubuntu固定ip前,您需要收集哪些信息?

在修改网络配置之前,请务必收集以下关键网络信息。这些信息通常由您的路由器或网络管理员提供。

  1. IP地址 (IP Address): 您希望分配给Ubuntu系统的固定IP地址。请确保这个IP地址在您的局域网内是唯一的,并且不在DHCP服务器的分配范围内,以避免IP冲突。
    示例:192.168.1.100
  2. 子网掩码 (Subnet Mask): 用于定义网络范围。通常为255.255.255.0,对应CIDR表示法中的/24
    示例:255.255.255.0/24
  3. 网关地址 (Gateway Address): 您的路由器在局域网中的IP地址。所有出站流量都将通过此网关。
    示例:192.168.1.1
  4. DNS服务器地址 (DNS Servers): 用于将域名解析为IP地址的服务器。您可以选择使用路由器的IP地址作为DNS,也可以使用公共DNS服务(如Google DNS:8.8.8.8, 8.8.4.4;或Cloudflare DNS:1.1.1.1, 1.0.0.1)。
    示例:8.8.8.8, 1.1.1.1

如何查找当前网络信息:

在Ubuntu终端中,您可以使用以下命令来查看当前的网络配置:

  • 查找网卡接口名称和IP地址:
    ip addr show
    您会看到类似 enp0s3eth0 的接口名称。
  • 查找网关地址:
    ip route show | grep default
  • 查找DNS服务器:
    cat /etc/resolv.conf

方法一:使用Netplan配置ubuntu固定ip(推荐用于现代Ubuntu服务器及桌面版)

自Ubuntu 18.04 LTS开始,Netplan成为Ubuntu默认的网络配置工具,它使用YAML文件来定义网络接口配置,并支持NetworkManagersystemd-networkd作为后端渲染器。对于大多数现代Ubuntu系统,尤其是服务器,推荐使用Netplan来设置固定IP地址

1. 识别网络接口名称

在终端中输入以下命令以确定您的网络接口名称(例如 enp0s3, ens33, eth0 等)。

ip aip addr show

在输出中找到您正在使用的网卡接口,通常会有一个IP地址被分配。例如,您可能会看到类似 enp0s3 的名称。

2. 备份Netplan配置文件

Netplan的配置文件通常位于 /etc/netplan/ 目录下,文件通常以 .yaml 结尾,例如 01-netcfg.yaml50-cloud-init.yaml。在进行任何修改之前,强烈建议备份原始文件。

sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak

请将 01-netcfg.yaml 替换为您实际的配置文件名。

3. 编辑Netplan配置文件

使用您喜欢的文本编辑器(如Nano或Vim)打开Netplan配置文件。

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

根据您的网络接口名称和收集到的网络信息,修改或创建以下内容。请注意YAML文件的缩进非常重要,请使用空格而不是Tab键进行缩进。

示例配置(有线连接):

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:                     # 替换为您的实际网卡接口名称
      dhcp4: no                 # 禁用IPv4 DHCP
      addresses: [192.168.1.100/24]  # 您的固定IP地址和子网掩码(CIDR格式)
      gateway4: 192.168.1.1     # 您的网关地址
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]  # 您的DNS服务器地址
      # 或者如果您有IPv6地址
      # dhcp6: no
      # addresses: [2001:db8::100/64]
      # gateway6: 2001:db8::1

详细解释:

  • network::Netplan配置的根。
  • version: 2:指定Netplan配置版本。
  • renderer: networkd:指定后端网络渲染器。对于大多数服务器,使用networkd。桌面版用户也可以使用NetworkManager
  • ethernets::定义以太网接口的配置。
  • enp0s3::您的网络接口名称。
  • dhcp4: no:禁用IPv4的DHCP自动获取IP。
  • addresses: [192.168.1.100/24]:设置您期望的固定IP地址和子网掩码。/24 等同于 255.255.255.0。如果您需要多个IP地址,可以添加多个。
  • gateway4: 192.168.1.1:设置您的默认网关。
  • nameservers::DNS服务器配置。
  • addresses: [8.8.8.8, 1.1.1.1]:列出DNS服务器的IP地址。

小贴士: 如果您的Ubuntu是桌面版,并且希望由NetworkManager管理静态IP,可以将 renderer: networkd 改为 renderer: NetworkManager,然后继续在Netplan文件中配置静态IP,或者直接通过图形界面配置(见方法二)。对于服务器,坚持使用 networkd

4. 应用Netplan配置

保存并关闭文件后,使用以下命令应用更改:

sudo netplan apply

如果配置有语法错误,Netplan会报错并拒绝应用更改。您可以先尝试使用 sudo netplan try 命令,它会应用配置并在60秒后回滚,除非您确认更改。这是一个更安全的测试方法。

5. 验证固定IP配置

应用配置后,请验证您的IP地址是否已更新为静态IP,并且网络连接正常。

  • 检查IP地址:
    ip a
    确认您的网卡接口显示了新的固定IP地址。
  • 测试网络连接:
    ping google.com
    确认可以访问外部网络。
  • 测试网关:
    ping 192.168.1.1 (替换为您的网关地址)
    确认可以ping通网关。

方法二:使用NetworkManager配置ubuntu固定ip(推荐用于Ubuntu桌面版)

对于带有图形界面的Ubuntu桌面版用户,通过NetworkManager的图形用户界面(GUI)设置固定IP地址是最直观和简便的方法。

1. 打开网络设置

点击屏幕右上角的网络图标(通常是Wi-Fi或有线连接图标),然后选择 “有线连接设置”“Wi-Fi 设置”(取决于您的连接类型)。

或者,您可以通过 “设置” -> “网络” 路径找到它。

2. 选择您的网络接口

在网络设置窗口中,找到您的有线或无线连接。点击您当前连接旁边的齿轮图标(⚙️)以进入详细设置。

3. 配置IPv4设置

  1. 在弹出的连接配置窗口中,切换到 “IPv4” 选项卡。
  2. “IPv4 方法”“自动 (DHCP)” 更改为 “手动”
  3. “地址” 部分,点击 “添加” 按钮。
  4. 输入您收集到的网络信息:

    • 地址: 您的固定IP地址(例如 192.168.1.100
    • 网络掩码: 子网掩码(例如 255.255.255.0
    • 网关: 您的路由器IP地址(例如 192.168.1.1
  5. “DNS” 字段中,输入您的首选DNS服务器地址(例如 8.8.8.8, 1.1.1.1)。如果有多个,用逗号分隔。

  6. 确保 “搜索域” 字段留空(除非您有特定的需求)。

4. 应用并保存设置

点击右上角的 “应用” 按钮,然后关闭设置窗口。

您的网络连接可能会短暂中断并重新连接,以应用新的固定IP地址设置。

5. 验证固定IP配置

打开终端,使用 ip a 命令确认IP地址已更改。

然后尝试 ping google.com 验证网络连接和DNS解析是否正常工作。

常见问题(FAQ)

1. 如何判断我的Ubuntu系统是使用Netplan还是NetworkManager进行网络配置?

答: 您可以通过检查配置文件来判断。如果 /etc/netplan/ 目录下存在 .yaml 文件,则系统很可能使用Netplan。在这些YAML文件中,通常会指定 renderer: networkdrenderer: NetworkManager。对于桌面版Ubuntu,NetworkManager通常是默认的。对于无GUI的服务器版,Netplan+networkd是标准配置。

2. 为何我设置了固定IP后无法上网?

答: 这通常是以下原因之一:

  1. IP地址冲突: 您分配的IP地址已经被网络中其他设备占用。请确保IP地址唯一。
  2. 网关或子网掩码错误: 检查您填写的网关地址和子网掩码是否与您的局域网配置匹配。
  3. DNS服务器配置错误: 如果DNS服务器地址不正确或无法访问,您将无法解析域名,导致无法访问互联网(但可能可以ping通IP地址)。
  4. Netplan配置语法错误: YAML文件对缩进和语法非常敏感。任何小的错误都可能导致配置失败。使用 sudo netplan try 进行测试,并检查 sudo netplan --debug apply 的输出以获取详细错误信息。

3. 如何在配置固定IP后切换回DHCP?

答:

  • 对于Netplan: 编辑 /etc/netplan/ 下的YAML文件,将 dhcp4: no 改为 dhcp4: yes,并删除 addresses, gateway4, nameservers 等静态配置行。然后运行 sudo netplan apply
  • 对于NetworkManager(GUI): 打开网络设置,进入连接的IPv4选项卡,将 “IPv4 方法” 改回 “自动 (DHCP)”,然后点击 “应用”

4. 配置固定IP后,我的SSH连接断开了,怎么办?

答: 如果您是通过SSH连接到Ubuntu进行配置的,并且在应用静态IP后连接断开,这通常是因为新的IP地址与您当前SSH会话使用的IP地址不同。

  1. 如果您在物理机旁,可以直接在物理机上登录并检查新的IP地址。
  2. 如果您的路由器支持,可以在路由器管理界面查看分配给Ubuntu的新IP地址。
  3. 您可以等待几分钟,然后尝试用您新设置的固定IP地址重新SSH连接。
  4. 如果以上方法都无效,且您无法物理访问设备,可能需要重启设备,希望系统能回滚到旧的网络配置(如果使用了 netplan try 但没有确认)。或者,通过云服务商的控制台进行远程调试。

5. 我在Netplan配置文件中应该使用“networkd”还是“NetworkManager”作为渲染器(renderer)?

答: 这取决于您的使用场景:

  • renderer: networkd 推荐用于Ubuntu服务器或任何不需要图形界面的系统。它更轻量、高效,并且是服务器默认配置。
  • renderer: NetworkManager 推荐用于Ubuntu桌面版,特别是当您希望通过图形界面(如任务栏的网络图标)来管理网络连接时。如果Netplan配置中指定了NetworkManager为渲染器,但您又在NetworkManager的GUI中进行了配置,NetworkManager的GUI设置可能会覆盖或与Netplan的设置冲突。通常,桌面版用户可以直接使用NetworkManager的GUI进行静态IP设置(方法二)。
一般情况下,服务器坚持用networkd,桌面版则看具体需求选择。

总结

为Ubuntu设置固定IP地址是网络管理中的一项基本而重要的任务。无论是通过基于命令行的Netplan(适用于现代服务器环境,如Ubuntu 18.04 LTS及更高版本),还是通过图形界面的NetworkManager(适用于桌面版用户),掌握这些方法都能让您的Ubuntu系统在网络中拥有更强的可控性和稳定性。

在进行任何网络配置更改时,请务必仔细检查所输入的信息,并牢记备份原始配置文件,以防止意外情况发生。在完成配置后,务必通过ping命令等方式进行验证,确保您的ubuntu固定ip设置生效且网络连接正常。祝您配置顺利!