睿诚科技协会

Ubuntu Server网络配置命令有哪些?

Ubuntu Server 的网络配置方式在近年来发生了重大变化,从传统的 /etc/network/interfaces 文件迁移到了更现代、更强大的 netplan

Ubuntu Server网络配置命令有哪些?-图1
(图片来源网络,侵删)

核心概览:netplan vs. ifupdown

  • 现代方式 (Ubuntu 18.04 及更高版本默认): netplan

    • 优点: YAML 格式,清晰易懂;通过 systemd-networkdNetworkManager 后端工作,非常灵活;支持复杂的网络场景。
    • 配置文件位置: /etc/netplan/ 目录下,通常名为 01-netcfg.yaml50-cloud-init.yaml
    • 适用场景: 服务器、容器、虚拟化环境等绝大多数场景。
  • 传统方式 (旧版 Ubuntu 或特定需求): ifupdown

    • 优点: 非常成熟稳定,在许多自动化脚本中广泛使用。
    • 配置文件位置: /etc/network/interfaces
    • 适用场景: 需要兼容非常旧的系统或特定脚本时。

除非你有特殊需求,否则强烈建议学习和使用 netplan


Part 1: 查看当前网络状态

在修改配置前,先了解当前状况。

Ubuntu Server网络配置命令有哪些?-图2
(图片来源网络,侵删)

查看网络接口信息

使用 ip 命令(推荐,比 ifconfig 更现代)。

# 显示所有网络接口的概览信息
ip a
# 或者更详细的输出
ip addr show
# 查看特定接口,eth0
ip addr show eth0

你会看到类似 eth0, ens33, lo (回环接口) 等名称,注意你的服务器实际使用的接口名。

查看路由表

ip route

查看网络连接状态

# 显示所有已建立的连接
ss -tuln
# 或者使用更经典的 netstat
netstat -tuln

测试网络连通性

# ping 一个域名或IP
ping google.com
# 使用更可靠的测试工具,如 curl 或 wget
curl -I http://www.baidu.com
# 测试 DNS 解析是否正常
nslookup www.google.com

Part 2: 使用 netplan 配置静态 IP 地址

这是最常见的服务器配置需求。

步骤 1: 找到并编辑 netplan 配置文件

配置文件通常在 /etc/netplan/ 目录下,文件名可能是 50-cloud-init.yaml(如果是云服务器,如 AWS, Azure)或 01-netcfg.yaml

Ubuntu Server网络配置命令有哪些?-图3
(图片来源网络,侵删)
# 列出 netplan 目录下的文件
ls /etc/netplan/
# 使用你喜欢的编辑器打开文件,nano
sudo nano /etc/netplan/01-netcfg.yaml

步骤 2: 编写配置

假设你的服务器网卡名为 ens33,你想配置以下静态信息:

  • IP 地址: 168.1.100
  • 子网掩码: 255.255.0 (或 /24)
  • 网关: 168.1.1
  • DNS 服务器: 8.8.81.1.1

01-netcfg.yaml 文件中写入以下内容:

# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
  version: 2
  renderer: networkd  # 使用 systemd-networkd 作为后端,服务器环境推荐
  ethernets:
    ens33:  # 替换成你的网卡名
      dhcp4: no  # 禁用 DHCP
      addresses:
        - 192.168.1.100/24  # IP 地址和子网掩码(CIDR 表示法)
      gateway4: 192.168.1.1  # IPv4 网关
      nameservers:
          addresses: [8.8.8.8, 1.1.1.1]  # DNS 服务器地址
          search: [] # 可选,搜索域

关键点解释:

  • version: 2: 表示使用 netplan v2 语法。
  • renderer: networkd: 指定网络配置由 systemd-networkd 服务处理,这是服务器环境下的标准选择,如果你的桌面环境需要,也可以用 NetworkManager
  • ethernets: 定义以太网接口。
  • ens33: 你的网卡名称。
  • dhcp4: no: 明确禁用 DHCP。
  • addresses: IP 地址列表,使用 CIDR 格式(如 168.1.100/24)。
  • gateway4: 默认网关。
  • nameservers: DNS 服务器配置。

步骤 3: 应用配置

保存文件后,运行以下命令让 netplan 应用新配置。

# 测试配置文件语法是否正确
sudo netplan try
# 如果测试通过,应用配置
sudo netplan apply

netplan try 会尝试应用配置,并在 120 秒后自动回滚(如果网络断开),非常安全。

步骤 4: 验证配置

# 检查 IP 地址是否已更改
ip addr show ens33
# 检查路由表,确认网关已添加
ip route
# 测试 DNS 解析
nslookup www.google.com

Part 3: 使用 netplan 配置 DHCP (自动获取 IP)

如果网络环境有 DHCP 服务器,可以配置服务器自动获取 IP。

network:
  version: 2
  renderer: networkd
  ethernets:
    ens33:
      dhcp4: yes  # 启用 DHCP

保存后,同样执行 sudo netplan apply


Part 4: 高级网络配置

配置多个 IP 地址 (多 IP)

addresses 列表中添加多个 IP 即可。

network:
  version: 2
  renderer: networkd
  ethernets:
    ens33:
      dhcp4: no
      addresses:
        - 192.168.1.100/24
        - 10.0.0.50/24  # 第二个 IP
      gateway4: 192.168.1.1
      nameservers:
          addresses: [8.8.8.8]

配置 Bonding (网卡捆绑)

将多个物理网卡捆绑成一个逻辑接口,以增加带宽和提供冗余。

network:
  version: 2
  renderer: networkd
  bonds:
    bond0:  # 逻辑接口名
      interfaces: [ens33, ens37]  # 要捆绑的物理网卡
      parameters:
        mode: balance-rr  # 捆绑模式,balance-rr 为轮询模式
  ethernets:
    ens33:
      dhcp4: no
    ens37:
      dhcp4: no
  # 然后像配置普通网卡一样配置 bond0
  interfaces:
    bond0:
      dhcp4: no
      addresses: [192.168.1.101/24]
      gateway4: 192.168.1.1
      nameservers:
          addresses: [8.8.8.8]

配置 Bridge (网桥)

常用于虚拟化环境(如 KVM),将虚拟机连接到物理网络。

network:
  version: 2
  renderer: networkd
  bridges:
    br0:  # 逻辑网桥名
      interfaces: [ens33]  # 物理网卡作为网桥的端口
      dhcp4: no
  # 然后配置网桥的 IP
  interfaces:
    br0:
      dhcp4: no
      addresses: [192.168.1.102/24]
      gateway4: 192.168.1.1
      nameservers:
          addresses: [8.8.8.8]

Part 5: 故障排查

如果网络不通,按以下步骤排查:

  1. 检查物理连接: 网线是否插好?交换机端口灯是否亮?
  2. 检查接口状态:
    ip link show ens33

    确保状态是 UP,如果不是,尝试 sudo ip link set ens33 up

  3. 检查 IP 地址和路由:
    ip addr show
    ip route
分享:
扫描分享到社交APP
上一篇
下一篇