15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用
30.10.2024

如何在 Ubuntu 16.04 中配置网络:完整分步指南

网络是任何Linux系统最基本的方面之一。无论您是在管理生产服务器、启动虚拟机还是配置桌面环境,正确设置网络设置对于连接性、安全性和性能至关重要。在Ubuntu 16.04中,网络由ifupdown实用程序处理,该程序从/etc/network/interfaces文件读取其配置——这是一种直接但强大的网络管理方法。

本指南将引导您完成在Ubuntu 16.04上配置网络所需的每一步,从打开配置文件到验证实时连接。无论您在本地计算机上还是在VPS托管计划上运行Ubuntu,这些说明都直接适用于您的环境。

前置条件

在开始之前,请确保您拥有:

  • 一个运行中的Ubuntu 16.04系统(物理、虚拟或基于云)
  • 对计算机的Sudo或root访问权限
  • 对Linux终端的基本熟悉
  • 您的网络详细信息已准备好:所需的IP地址、子网掩码、网关和DNS服务器

了解Ubuntu 16.04如何管理网络

与使用Netplan(在Ubuntu 17.10中引入)的较新Ubuntu版本不同,Ubuntu 16.04依赖于经典的ifupdown框架。主要配置文件是:

/etc/network/interfaces

此文件定义每个网络接口在启动时以及手动启动或关闭时的行为方式。它支持DHCP(自动IP分配)和静态IP配置,使其适用于广泛的用例——从家庭实验室到企业服务器。

步骤1:识别您的网络接口名称

在编辑任何配置之前,您需要知道网络接口的确切名称。Ubuntu 16.04可能使用传统名称如eth0或较新的可预测名称如enp0s3,具体取决于您的硬件和系统配置。

运行以下命令列出所有可用的网络接口:

ip link show

示例输出:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    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 pfifo_fast state UP
    link/ether 08:00:27:xx:xx:xx brd ff:ff:ff:ff:ff:ff

在此示例中,活动接口是enp0s3。记下您的接口名称——您将在整个指南中需要它。

或者,您可以使用:

ifconfig -a

> 注意:如果ifconfig不可用,请使用sudo apt install net-tools安装它。

步骤2:打开网络配置文件

/etc/network/interfaces文件是Ubuntu 16.04中网络的中央配置点。使用具有提升权限的文本编辑器打开它:

sudo nano /etc/network/interfaces

您通常会看到类似于以下内容的默认配置:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto enp0s3
iface enp0s3 inet dhcp

inet dhcp行表示接口当前设置为通过DHCP自动获取IP地址。在接下来的步骤中,我们将向您展示如何配置DHCP和静态IP设置。

步骤3:配置静态IP地址

静态IP地址对于服务器、网络设备和任何需要一致、可预测地址的系统至关重要。如果您在专用服务器或VPS上托管网站、数据库或服务,强烈建议使用静态IP。

3.1 替换DHCP配置

找到您的主接口部分,并将dhcp行替换为静态配置块。以下是完整的语法:

auto enp0s3
iface enp0s3 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8 8.8.4.4

3.2 理解每个指令

指令描述
auto enp0s3在启动时自动启动接口
iface enp0s3 inet static声明静态IPv4配置
address您要分配的静态IP地址
netmask定义子网掩码(例如,/24 = 255.255.255.0
gateway默认网关(通常是您的路由器IP)
dns-nameservers以空格分隔的DNS解析器地址列表

3.3 使用自定义值的示例

用您的实际网络详细信息替换示例值:

auto enp0s3
iface enp0s3 inet static
    address 203.0.113.50
    netmask 255.255.255.0
    gateway 203.0.113.1
    dns-nameservers 1.1.1.1 8.8.8.8

> 提示:使用Google的公共DNS(8.8.8.88.8.4.4)或Cloudflare的(1.1.1.11.0.0.1)以获得可靠的名称解析。如果您正在管理域名注册或运行邮件服务器,正确的DNS配置尤其重要。

完成更改后,按Ctrl + O保存文件,然后按Enter,并使用Ctrl + X退出。

步骤4:配置DHCP(可选)

如果您更喜欢自动IP分配——在开发环境或桌面设置中很常见——将接口配置为使用DHCP:

auto enp0s3
iface enp0s3 inet dhcp

这是大多数Ubuntu 16.04安装中的默认配置。DHCP很方便,但不适合需要固定地址的服务器或系统。

步骤5:配置多个网络接口(可选)

如果您的系统有多个网络接口——例如,一个面向公众的接口和一个私有内部接口——您可以在同一文件中定义两者:

# Public interface (static)
auto enp0s3
iface enp0s3 inet static
    address 203.0.113.50
    netmask 255.255.255.0
    gateway 203.0.113.1
    dns-nameservers 8.8.8.8 8.8.4.4

# Private/internal interface (static)
auto enp0s8
iface enp0s8 inet static
    address 10.0.0.10
    netmask 255.255.255.0

此配置在云和虚拟化环境中特别有用,其中服务器可能同时具有公共IP和用于内部通信的私有网络IP。

步骤6:重启网络服务

将更改保存到/etc/network/interfaces后,您必须重启网络服务以使新配置生效。

方法1:使用systemctl(推荐)

sudo systemctl restart networking

方法2:关闭和启动接口

对于避免中断其他接口的更有针对性的方法:

sudo ifdown enp0s3 && sudo ifup enp0s3

> 警告:如果您通过SSH远程连接到服务器,重启网络可能会暂时断开您的连接——特别是如果您从DHCP更改为静态IP。确保您有可用的控制台或带外访问,或使用终端多路复用器如tmuxscreen来保护您的会话。

步骤7:验证网络配置

网络服务重启后,验证您的设置已正确应用。

7.1 检查分配的IP地址

ip addr show enp0s3

预期输出(静态IP示例):

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
    inet 192.168.1.100/24 brd 192.168.1.255 scope global enp0s3

7.2 验证默认网关

ip route show

您应该看到类似以下内容的行:

default via 192.168.1.1 dev enp0s3

7.3 测试DNS解析

ping -c 4 google.com

成功的响应确认您的网络连接和DNS解析都正常工作:

PING google.com (142.250.185.46) 56(84) bytes of data.
64 bytes from lga34s32-in-f14.1e100.net: icmp_seq=1 ttl=117 time=12.3 ms

7.4 测试到网关的连接

ping -c 4 192.168.1.1

如果这成功但ping google.com失败,问题可能在于DNS配置而不是网络连接本身。

排查常见网络问题

即使配置正确,问题也可能出现。以下是最常见的问题及其解决方法:

重启后接口未启动

  • 仔细检查auto指令是否在iface行之前
  • 验证接口名称中没有拼写错误(使用ip link show确认)
  • 检查系统日志:sudo journalctl -u networking

当尝试启动已配置的接口时会发生此错误。首先将其关闭:

sudo ifdown enp0s3
sudo ifup enp0s3

DNS未解析

  • 确认dns-nameservers/etc/network/interfaces中正确设置
  • 检查/etc/resolv.conf以查看它是否包含正确的nameserver条目
  • 如果DNS条目未被应用,请安装resolvconfsudo apt install resolvconf

无法Ping网关

  • 验证网关IP对于您的网络是否正确
  • 确保接口已启动:ip link show enp0s3
  • 检查网络上是否存在IP地址冲突

高级配置:添加辅助IP地址

Ubuntu 16.04支持接口别名,允许您为单个物理接口分配多个IP地址。这对于在一台计算机上托管多个网站或服务很有用——这是使用共享网络托管或管理自己的服务器时的常见场景。

# Primary IP
auto enp0s3
iface enp0s3 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8 8.8.4.4

# Secondary IP (alias)
auto enp0s3:0
iface enp0s3:0 inet static
    address 192.168.1.101
    netmask 255.255.255.0

网络配置的安全考虑

正确的网络配置与安全性密切相关。以下是一些需要记住的最佳实践:

  1. 使用防火墙:安装并配置ufw(简单防火墙)以限制入站和出站流量。
  2. 禁用未使用的接口:如果不需要接口,请在配置文件中注释掉或删除它。
  3. 保护您的DNS:对于敏感环境,考虑使用加密DNS(DNS-over-HTTPS或DNS-over-TLS)。
  4. 对服务使用SSL/TLS:在您的服务器上运行的任何网络服务或应用程序都应受有效证书保护。AlexHost提供价格合理的SSL证书来保护您的域和服务。
  5. 监控网络活动:使用netstat
15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用