Ubuntu 配置网络接口端点(静态 IP 地址)详细教程

在 Ubuntu 系统中,配置网络接口端点通常指的是为您的有线或无线网卡设置一个固定的 IP 地址、子网掩码、网关以及 DNS 服务器。这对于服务器或者需要稳定网络标识的设备来说非常重要。

  1. 使用 Netplan (Ubuntu 17.10 及更高版本的默认方式)
  2. 使用 ifupdown (通过 /etc/network/interfaces 文件,适用于 Ubuntu 16.04 及更早版本,或某些特定场景下仍可能使用)

Ubuntu博客: https://cn.ubuntu.com/blog/
Ubuntu文档: https://ubuntu.com/blog/tag/documentation/
Ubuntu教程: https://ubuntu.com/tutorials/


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

在开始配置之前,您需要知道要配置的网络接口的名称。

打开终端,输入以下命令之一:

ip addr

或者,如果 ifconfig 已安装(较旧的系统或手动安装):

ifconfig -a

在输出中,您会看到类似 eth0, enp0s3, wlp2s0 (无线网卡) 等名称。记下您希望配置静态 IP 的那个接口的名称。例如,我们假设您的接口名称是 enp0s3


方法一:使用 Netplan 配置静态 IP (Ubuntu 17.10 及更高版本)

Netplan 是 Ubuntu 较新版本中用于网络配置的工具。它使用 YAML 格式的配置文件。

1. 定位并备份 Netplan 配置文件:

Netplan 的配置文件通常位于 /etc/netplan/ 目录下。文件名可能有所不同,常见的有 01-netcfg.yaml, 50-cloud-init.yaml, 或其他以 .yaml 结尾的文件。

首先,列出该目录下的文件以确定您的配置文件名:

ls /etc/netplan/

假设您的配置文件是 01-netcfg.yaml。在编辑之前,强烈建议备份它:

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

2. 编辑 Netplan 配置文件:

使用您喜欢的文本编辑器(如 nanovim)打开配置文件。这里以 nano 为例:

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

3. 配置静态 IP 地址:

您需要修改文件内容,使其包含静态 IP 的配置。以下是一个示例,请根据您的实际网络环境和需求进行修改:

network:version: 2renderer: networkd  # 或者 network-manager,取决于您的系统,通常服务器为 networkdethernets:enp0s3:  # <-- 将 'enp0s3' 替换为您的实际网络接口名称dhcp4: no          # 关闭 IPv4 DHCPdhcp6: no          # 可选:关闭 IPv6 DHCPaddresses:- 192.168.1.100/24  # <-- 设置您的静态 IP 地址和子网掩码 (CIDR 格式)# - 2001:db8::c001/64 # 可选:IPv6 地址示例# routes: # 旧版 Netplan 使用 'gateway4:',新版倾向于使用 'routes:'#   - to: default#     via: 192.168.1.1 # <-- 设置您的默认网关gateway4: 192.168.1.1    # <-- 设置您的 IPv4 默认网关 (对于较新版 Netplan,可注释掉此行,使用上面的 routes)# gateway6: 2001:db8::1  # 可选:IPv6 网关示例nameservers:addresses: [8.8.8.8, 1.1.1.1] # <-- 设置您的 DNS 服务器地址 (例如 Google DNS 和 Cloudflare DNS)# search: [mydomain.local]      # 可选:DNS 搜索域

关键参数解释:
* version: 2: Netplan 配置文件的版本。
* renderer: 指定后端网络管理工具。服务器通常使用 networkd,桌面版可能使用 NetworkManager。您可以通过 cat /etc/netplan/your-config-file.yaml 查看当前 renderer。如果您的系统使用 NetworkManager 并且希望继续由它管理,请将 renderer 设置为 NetworkManager
* ethernets: 定义有线网络接口的配置。如果是无线接口,这里可能是 wifis
* enp0s3: 将此替换为您的实际网络接口名称。
* dhcp4: no: 禁用 IPv4 DHCP。如果您希望通过 DHCP 获取 IP,请设置为 yes,并删除 addressesgateway4/routes 的配置。
* addresses: 一个列表,包含一个或多个 IP 地址及其子网掩码(使用 CIDR 表示法)。
* 例如 192.168.1.100/24 表示 IP 地址 192.168.1.100,子网掩码 255.255.255.0
* gateway4: IPv4 默认网关的 IP 地址。
* 注意: 较新版本的 Netplan 推荐使用 routes 来定义默认网关,如下所示:
yaml routes: - to: default via: 192.168.1.1
如果同时存在 gateway4routes 中定义的默认网关,Netplan 可能会报错或行为不确定。建议使用其中一种。
* nameservers:
* addresses: 一个 DNS 服务器 IP 地址的列表。

4. 应用 Netplan 配置:

保存并关闭文件后(在 nano 中是 Ctrl+O 保存, Enter 确认, Ctrl+X 退出),应用新的网络配置:

sudo netplan apply

如果命令执行成功且没有错误提示,那么配置应该已经生效。

如果遇到问题,可以使用以下命令来获取更详细的调试信息:

sudo netplan --debug apply

这将帮助您定位 YAML 文件中的语法错误或其他配置问题。

5. 验证网络配置:

使用以下命令检查 IP 地址是否已正确设置:

ip addr show enp0s3  # 将 'enp0s3' 替换为您的接口名称

您应该能看到您配置的静态 IP 地址。

测试网络连接和 DNS 解析:

ping -c 3 192.168.1.1  # ping 您的网关
ping -c 3 google.com   # ping 一个外部地址以测试 DNS 和外网连接

方法二:使用 ifupdown (通过 /etc/network/interfaces) 配置静态 IP (Ubuntu 16.04 及更早版本或特定情况)

对于较旧的 Ubuntu 版本,或者在某些特定情况下(例如,如果系统明确配置为不使用 Netplan),您可能需要编辑 /etc/network/interfaces 文件。

1. 备份 /etc/network/interfaces 文件:

sudo cp /etc/network/interfaces /etc/network/interfaces.bak

2. 编辑 /etc/network/interfaces 文件:

sudo nano /etc/network/interfaces

3. 配置静态 IP 地址:

您需要修改或添加与您的网络接口相关的配置段。以下是一个示例:

# 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 (将 'enp0s3' 替换为您的接口名称)
auto enp0s3
iface enp0s3 inet staticaddress 192.168.1.100      # <-- 您的静态 IP 地址netmask 255.255.255.0      # <-- 您的子网掩码gateway 192.168.1.1        # <-- 您的默认网关dns-nameservers 8.8.8.8 1.1.1.1 # <-- 您的 DNS 服务器 (用空格分隔多个)# dns-search mydomain.local    # 可选:DNS 搜索域

关键参数解释:
* auto enp0s3: 表示在系统启动时自动启用名为 enp0s3 的接口。
* iface enp0s3 inet static: 表示将 enp0s3 接口配置为使用静态 IPv4 地址。
* address: 您的静态 IP 地址。
* netmask: 您的子网掩码。
* gateway: 您的默认网关 IP 地址。
* dns-nameservers: 一个或多个 DNS 服务器的 IP 地址,用空格分隔。

如果您的接口之前是通过 DHCP 配置的,相关的行可能看起来像:

# iface enp0s3 inet dhcp

您需要注释掉(在行首加 #)或删除 DHCP 配置行,然后添加上面的静态配置。

4. 应用网络配置:

保存并关闭文件后,您需要重新启动网络服务或单独重置该接口以使更改生效。

  • 重启网络服务 (可能会短暂中断所有网络连接):

    sudo systemctl restart networking.service
    

    或者在非常旧的系统上:

    sudo /etc/init.d/networking restart
    
  • 单独重置接口 (推荐,影响范围较小):

    sudo ifdown enp0s3 && sudo ifup enp0s3
    

    这会先禁用接口,然后再启用它,加载新的配置。如果 ifdown 失败(例如,因为接口正忙),您可能需要先 sudo ifconfig enp0s3 downsudo ifup enp0s3,或者直接重启网络服务/系统。

5. 验证网络配置:

使用以下命令检查 IP 地址是否已正确设置:

ip addr show enp0s3  # 或者 ifconfig enp0s3

您应该能看到您配置的静态 IP 地址。

测试网络连接和 DNS 解析:

ping -c 3 192.168.1.1  # ping 您的网关
ping -c 3 google.com   # ping 一个外部地址以测试 DNS 和外网连接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/82337.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅聊大模型-有条件的文本生成

大家好我是木木&#xff0c;自从2022年11月30日OpenAI发布ChatGPT后&#xff0c;大模型迅速火热起来&#xff0c;人工智能作为当下最火的行业之一&#xff0c;2025年春节期间DeepSeek R1模型大火。LLM中有很多的技术&#xff0c;今天我们聊聊大模型-有条件的文本生成。 什么是…

华为银河麒麟 V10(ARM)系统软件部署全攻略:Redis、RabbitMQ、MySQL 等集群搭建指南

一、Redis 集群部署&#xff08;主从 哨兵模式&#xff09; 1. 环境准备 系统&#xff1a;华为银河麒麟 V10&#xff08;ARM64&#xff09;节点&#xff1a;3 台服务器&#xff08;1 主 2 从 3 哨兵&#xff09; 2. 安装包下载 bash # 华为镜像站 wget https://update.c…

Mysql数据库进阶

一、Mysql组织架构 连接层 1.验证用户的身份,用户名密码是否匹配 2.提供两种连接方式(TCP/IP连接、socket连接) 3.连接层提供了一个与sql层交互的线程 SQL层 1.接收连接层传过来的SQL语句 2.验证执行的SQL语法 3.验证SQL的语义(DDL,DML,DQL,DCL) 4.解析器:解析SQL语句,生…

系统思考:短期困境与长期收益

最近在项目中&#xff0c;一直有学员会提到一个议题&#xff0c;如何平衡当前困境和长期收益&#xff1f; 我的思考是在商业和人生的路上&#xff0c;我们常常听到“鱼和熊掌不可兼得”的说法&#xff0c;似乎短期利益和长期目标注定是对立的。但事实上&#xff0c;鱼与熊掌是…

Spring Web MVC快速入门

什么是Spring Web MVC Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架&#xff0c;从⼀开始就包含在 Spring 框架中。它的正式名称“Spring Web MVC”来⾃其源模块的名称(Spring-webmvc)&#xff0c;但它通常被称为"Spring MVC". View(视图) 指在应⽤程序…

DeepSeek基于注意力模型的可控图像生成

DeepSeek大模型高性能核心技术与多模态融合开发 - 商品搜索 - 京东 图像的加噪与模型训练 在扩散模型的训练过程中&#xff0c;首先需要对输入的信号进行加噪处理&#xff0c;经典的加噪过程是在图像进行向量化处理后在其中添加正态分布&#xff0c;而正态分布的值也是与时间…

第十六届蓝桥杯B组第二题

当时在考场的时候这一道题目 无论我是使用JAVA的大数&#xff08;BIGTHGER&#xff09;还是赛后 使用PY 都是没有运行出来 今天也是突发奇想在B站上面搜一搜 看了才知道这也是需要一定的数学思维 通过转换 设X来把运算式精简化 避免运行超时 下面则是代码 public class lanba…

HT71663同步升压2.7V-13V输入10A聚能芯半导体禾润一级代理

在便携式设备飞速发展的今天&#xff0c;电源转换效率与产品尺寸始终是行业难以平衡的难题。但现在&#xff0c;HT71663 高功率全集成升压转换器强势登场&#xff0c;一举打破僵局&#xff0c;为便携式系统带来颠覆性的高效小尺寸解决方案&#xff01;​ HT71663 的卓越性能&am…

Unity:输入系统(Input System)与持续检测键盘按键(Input.GetKey)

目录 Unity 的两套输入系统&#xff1a; &#x1f50d; Input.GetKey 详解 &#x1f3af; 对比&#xff1a;常用的输入检测方法 技术底层原理&#xff08;简化版&#xff09; 示例&#xff1a;角色移动 为什么会被“新输入系统”替代&#xff1f; Unity 的两套输入系统&…

港大今年开源了哪些SLAM算法?

过去的5个月&#xff0c;香港大学 MaRS 实验室陆续开源了四套面向无人机的在线 SLAM 框架&#xff1a;**FAST-LIVO2 、Point-LIO&#xff08;grid-map 分支&#xff09; 、Voxel-SLAM 、Swarm-LIO2 **。这四套框架覆盖了单机三传感器融合、高带宽高速机动、长时间多级地图优化以…

【质量管理】TRIZ因果链分析:解码质量问题的“多米诺效应“

为什么要使用因果链分析 没有发现问题并不等于没有问题。爱因斯坦曾说&#xff0c;如果我只有一个小时的时间来拯救世界&#xff0c;我将花45分钟时间分析问题&#xff0c;10分钟的时间来检查问题&#xff0c;最后5分钟的时间来解决问题。可见问题分析的重要性。 在质量管理实践…

线程中常用的方法

知识点详细说明 Java线程的核心方法集中在Thread类和Object类中,以下是新增整合后的常用方法分类解析: 1. 线程生命周期控制 方法作用注意事项start()启动新线程,JVM调用run()方法多次调用会抛出IllegalThreadStateException(线程状态不可逆)。run()线程的任务逻辑直接调…

c++:迭代器(Iterator)

目录 &#x1f6aa;什么是迭代器&#xff1f; &#x1f527; 迭代器的本质 为什么不用普通数组或下标&#xff1f; STL容器的迭代器并不是共用一个类型&#xff01; 迭代器的类型&#xff08;Iterator Categories&#xff09; &#x1f4e6; 常见容器的迭代器类型 ✅ 迭…

【文件系统—散列结构文件】

文章目录 一、实验目的实验内容设计思路 三、实验代码实现四、总结 一、实验目的 理解linux文件系统的内部技术&#xff0c;掌握linux与文件有关的系统调用命令&#xff0c;并在此基础上建立面向随机检索的散列结构文件&#xff1b;## 二、实验内容与设计思想 实验内容 1.设…

力扣26——删除有序数组中的重复项

目录 1.题目描述&#xff1a; 2.算法分析&#xff1a; 3.代码展示&#xff1a; 1.题目描述&#xff1a; 给你一个 非严格递增排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对…

ggplot2 | GO barplot with gene list

1. 效果图 2. 代码 数据是GO的输出结果&#xff0c;本文使用的是 metascape 输出的excel挑选的若干行。 # 1. 读取数据 datread.csv("E:\\research\\scPolyA-seq2\\GO-APA-Timepoint\\test.csv", sep"\t") head(dat)# 2. 选择所需要的列 dat.usedat[, c(…

学习搭子,秘塔AI搜索

什么是秘塔AI搜索 《秘塔AI搜索》的网址&#xff1a;https://metaso.cn/ 功能&#xff1a;AI搜索和知识学习&#xff0c;其中学习部分是亮点&#xff0c;也是主要推荐理由。对应的入口&#xff1a;https://metaso.cn/study 推荐理由 界面细节做工精良《今天学点啥》板块的知…

【C语言】--指针超详解(三)

目录 一.数组名的理解 二.使用指针访问数组 三.一维数组传参的本质 四.冒泡排序 五.二级指针 六.指针数组 6.1--指针数组的定义 6.2--指针数组模拟二维数组 &#x1f525;个人主页&#xff1a;草莓熊Lotso的个人主页 &#x1f3ac;作者简介&#xff1a;C方向学习者 &…

Linux防火墙

1.防火墙是一种位于内部网络与外部网络之间的网络安全系统&#xff0c;它依照特定的规则&#xff0c;允许或限制传输的数据通过&#xff0c;以保护内部网络的安全。以下从功能、分类、工作原理等方面为你详细讲解&#xff1a; 功能访问控制&#xff1a;这是防火墙最主要的功能。…

嵌入式培训之C语言学习完(十七)结构体、共用体、枚举、typedef关键字与位运算

目录 一、结构体&#xff08;struct关键字&#xff09; &#xff08;一&#xff09;声明一个结构体数据类型 &#xff08;二&#xff09;结构体的成员初始化与赋值 a、结构体变量赋值 b、结构体成员初始化 c、结构体的定义形式 &#xff08;三&#xff09;考点&#xff…