拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Ubuntu网络配置全攻略:从DHCP到静态IP,图形界面与命令行详解

1. 项目概述为什么Ubuntu网络配置是新手的第一道坎刚接触Ubuntu尤其是从Windows切换过来的朋友十有八九会在网络连接上卡壳。图形界面里找不到熟悉的“网络和共享中心”命令行里一堆陌生的术语一个不小心虚拟机里的Ubuntu就成了信息孤岛连不上网什么也干不了。这感觉就像拿到了新房的钥匙却找不到电灯开关非常憋屈。“Ubuntu下的网络配置——连接网络”这个标题直指的就是这个核心痛点。它不是一个高深的网络优化课题而是一个从零到一、让系统“活”起来的基础生存技能。无论是安装在物理机上的双系统还是运行在VMware、VirtualBox里的虚拟机亦或是Windows Subsystem for Linux (WSL)第一步都是搞定网络。网络不通后续的软件更新、包安装、远程连接统统无从谈起。网上教程很多但要么过于简略只给命令不说原理要么过于复杂一上来就大谈网络栈和路由表让新手望而却步。这篇内容的目标就是用最直白的方式结合清晰的图文帮你捋清Ubuntu里连接网络的几种典型场景和背后的逻辑。你会发现一旦理解了那几个关键概念和配置文件网络配置其实一点也不神秘。2. 核心概念扫盲DHCP、静态IP与网络管理器在动手配置之前花几分钟理解几个基础概念能让你在遇到问题时不再抓瞎。Ubuntu的网络配置核心围绕两个选择自动获取DHCP和手动设置静态IP。2.1 自动获取DHCP省心的“租房”模式你可以把DHCP动态主机配置协议服务想象成小区里的“自动租房中介”。你的Ubuntu系统开机后会大喊一声“我需要上网”网络里的DHCP服务器通常由你的路由器扮演听到后就会回应“来这个IP地址比如192.168.1.105租给你用网关是192.168.1.1DNS是8.8.8.8租期24小时。”系统拿到这些信息后就能顺利联网了。优点无需任何手动配置插上网线或连接Wi-Fi通常就能直接用。特别适合家庭、公司等动态环境设备来来去去都不会冲突。缺点IP地址可能会变。如果你的Ubuntu服务器需要被其他设备通过固定IP访问比如做文件共享、Web服务器这就很麻烦。适用场景绝大多数个人桌面用户、笔记本电脑。注意虚拟机使用“桥接模式”或“NAT模式”时默认就是通过宿主机的网络以DHCP方式获取IP。如果宿主机本身能上网但虚拟机里的Ubuntu获取不到IP问题往往出在虚拟机的网络适配器设置或Ubuntu内部的网络服务上。2.2 手动设置静态IP稳定的“自购房”模式静态IP就是你自己为网卡指定一个固定的IP地址、子网掩码、网关和DNS。这好比你在小区里买下了一套房有了固定的门牌号别人随时都能按这个地址找到你。优点地址固定不变非常适合服务器或需要端口转发、内部网络服务的场景。缺点需要你手动规划如果设错了比如IP和别的设备冲突、网关填错就连不上网。配置要点你必须知道所在局域网的网段例如192.168.1.0/24、可用的IP地址范围、网关地址和DNS服务器地址。2.3 NetworkManager vs netplan配置工具的演进这是Ubuntu网络配置中容易让人困惑的一点因为不同版本用的工具不一样。NetworkManager图形界面/nmcli在Ubuntu桌面版中长期占据主导地位。我们点击右上角网络图标进行的Wi-Fi连接、有线网络设置背后都是它在管理。它也可以通过命令行工具nmcli进行非常强大的配置。对于桌面用户优先与它打交道。netplanYAML配置文件从Ubuntu 17.10开始引入旨在简化网络配置成为底层统一的配置抽象层。它读取/etc/netplan/目录下的.yaml文件然后根据文件内容去驱动后端的NetworkManager或systemd-networkd来实际配置网络。在较新的Ubuntu服务器版和桌面版中它已成为默认的配置方式。简单来说对于新手在桌面版用图形界面或nmcli如果需要编写配置文件尤其是服务器或无图形界面环境就编辑netplan的YAML文件。它们最终的目的都是让网络通起来。3. 图形化配置桌面用户的快速上手路径对于安装了GNOME等桌面环境的Ubuntu用户图形化配置是最直观的方式。我们分有线和无线两种情况来看。3.1 连接有线网络以太网物理连接确保网线已插入电脑网口。对于虚拟机确保网络适配器已连接如VMware的“已连接”状态打勾。自动连接绝大多数情况下插上网线后Ubuntu会自动通过DHCP获取IP并连接网络。你只需观察桌面右上角或系统托盘区的网络图标它会从“未连接”状态一个带叉的扇形变为“有线连接已连接”状态。手动设置静态IP如需点击右上角网络图标 - “有线设置”或“网络设置”。在打开的设置窗口中找到你的有线连接点击旁边的齿轮图标。切换到“IPv4”或“IPv6”选项卡。将“方法”从“自动(DHCP)”改为“手动”。在“地址”栏你需要填写地址你想要的固定IP例如192.168.1.100子网掩码通常填写255.255.255.0也可以写成前缀长度24网关你的路由器地址通常是网段的第一个地址如192.168.1.1在“DNS”栏可以填写DNS服务器例如8.8.8.8Google DNS或114.114.114.114国内DNS。可以添加多个用逗号分隔。点击“应用”。系统可能会要求你输入用户密码以授权更改。关键一步回到网络设置主界面找到刚才配置的连接点击一下开关将其先关闭再打开或者直接点击“连接”按钮以使新配置生效。3.2 连接无线网络Wi-Fi打开Wi-Fi点击右上角网络图标确保“Wi-Fi”选项是开启状态滑块为蓝色。选择网络系统会自动扫描并列出可用的Wi-Fi网络。点击你要连接的网络名称SSID。输入密码如果网络是加密的通常都是会弹出密码输入框。输入正确的Wi-Fi密码。连接成功密码正确后网络图标会变成扇形Wi-Fi信号强度指示器表示已连接。配置静态IP较少用但可行步骤与有线网络类似。在Wi-Fi设置中找到已连接或要连接的网络点击齿轮图标在IPv4设置中将方法改为“手动”并填写信息即可。但家庭Wi-Fi环境通常不需要为客户端设置静态IP在路由器上做DHCP保留地址绑定是更常见的做法。实操心得图形界面设置静态IP后有时会碰到“设置已保存但未生效”的情况。这是因为NetworkManager可能有多个连接配置profile在竞争管理同一个物理设备。一个可靠的方法是在更改设置后通过命令行重启NetworkManager服务sudo systemctl restart NetworkManager。或者更彻底地先用sudo nmcli connection down “你的连接名”断开再用sudo nmcli connection up “你的连接名”重新连接。4. 命令行配置一使用nmcli管理网络连接当你没有图形界面例如在服务器或通过SSH连接时或者需要编写脚本自动化配置时nmcli命令是NetworkManager的利器。它功能强大但命令稍长。4.1 查看网络连接与设备信息首先了解当前状态是第一步。# 查看所有网络连接配置profile nmcli connection show # 查看活动的连接 nmcli connection show --active # 查看所有网络设备及其状态 nmcli device status # 查看指定设备如ens33的详细连接信息 nmcli device show ens33通过nmcli device status你可以看到设备名如ens33,wlp2s0、类型ethernet,wifi、状态connected,disconnected以及关联的连接配置名。这个设备名和连接名在后续命令中非常重要。4.2 使用nmcli连接Wi-Fi假设你的无线网卡设备名是wlp2s0要连接的Wi-Fi名是MyWiFi密码是MyPassword。# 扫描附近的Wi-Fi网络需要sudo权限 sudo nmcli device wifi rescan sudo nmcli device wifi list # 连接到指定的Wi-Fi网络 sudo nmcli device wifi connect MyWiFi password MyPassword # 如果连接需要额外的企业级认证如WPA2-Enterprise命令会更复杂需要指定用户名等信息。连接成功后nmcli会创建一个以Wi-Fi名命名的连接配置并自动激活它。4.3 使用nmcli配置静态IP假设要为有线网卡ens33配置静态IP。先查看现有连接配置名nmcli connection show。假设找到名为“有线连接 1”的配置对应ens33。修改该连接的IPv4配置# 设置IPv4为手动模式并指定IP、网关、DNS sudo nmcli connection modify 有线连接 1 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8 114.114.114.114 # 重新激活应用这个连接配置 sudo nmcli connection up 有线连接 1命令参数解析ipv4.addresses 192.168.1.100/24/24是CIDR表示法等同于子网掩码255.255.255.0。它定义了IP地址和网络前缀。ipv4.dns “8.8.8.8 114.114.114.114”设置了两个DNS服务器用空格分隔。connection up这个命令会先down再up该连接使新配置生效。4.4 创建全新的连接配置你也可以不修改现有配置而是创建一个全新的。# 为设备ens33创建一个新的连接配置命名为“my-static-eth”并设置静态IP sudo nmcli connection add type ethernet ifname ens33 con-name my-static-eth ipv4.method manual ipv4.addresses 192.168.1.200/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8 # 激活这个新配置 sudo nmcli connection up my-static-eth注意事项nmcli配置是持久化的重启后依然有效。如果你有多个连接配置对应同一个物理设备一次只能有一个处于激活active状态。激活新的配置会自动停用旧的。5. 命令行配置二使用netplan配置网络现代Ubuntu首选对于Ubuntu 18.04及之后的版本特别是服务器版netplan是官方推荐的网络配置方式。它通过简洁的YAML文件定义网络清晰易读。5.1 定位与理解netplan配置文件Netplan的配置文件位于/etc/netplan/目录下。文件名可能类似01-network-manager-all.yaml或00-installer-config.yaml具体取决于安装方式。# 查看netplan配置文件 sudo ls -l /etc/netplan/ # 使用cat或文本编辑器查看内容 sudo cat /etc/netplan/01-network-manager-all.yaml一个典型的、使用DHCP的配置文件内容如下# 这是一个YAML格式文件缩进非常重要 network: version: 2 renderer: NetworkManager # 指定由NetworkManager来渲染此配置桌面版常用 ethernets: ens33: # 网络接口名称 dhcp4: true # 启用IPv4 DHCP optional: true # 系统启动时是否等待此接口配置完成。true表示不等待避免因网络未就绪导致启动卡住。5.2 配置静态IP地址将上面的配置改为静态IPnetwork: version: 2 renderer: networkd # 对于服务器常用networkd作为渲染器。如果桌面版想用netplan管理这里也可以是NetworkManager。 ethernets: ens33: dhcp4: no # 关闭DHCP addresses: - 192.168.1.150/24 # 设置静态IP和子网掩码 routes: - to: default via: 192.168.1.1 # 设置默认网关 nameservers: addresses: [8.8.8.8, 1.1.1.1] # 设置DNS服务器这是一个YAML列表 optional: true关键字段解释addresses: 是一个列表可以为接口配置多个IP地址。routes: 定义路由。to: default和via: 网关地址的组合定义了默认路由。nameservers: 定义DNS服务器。addresses后面的值是一个YAML列表格式。5.3 应用netplan配置编辑并保存配置文件后必须应用它才能生效。# 测试配置文件语法是否正确非常重要 sudo netplan try这个命令会应用配置并等待你确认。如果网络连接没有断开你能继续操作按回车确认更改。如果网络断了比如配置有误导致失联它会在超时默认120秒后自动回滚到之前的配置。这是防止把自己关在门外的安全机制。# 直接应用配置生产环境常用但确保配置正确 sudo netplan apply # 重启网络相关服务有时apply后需要 sudo systemctl restart systemd-networkd # 如果renderer是networkd # 或 sudo systemctl restart NetworkManager # 如果renderer是NetworkManager5.4 配置Wi-Fi连接netplan用netplan配置Wi-Fi相对复杂一些因为需要指定SSID和密码。network: version: 2 wifis: wlp2s0: # 无线网卡设备名 dhcp4: yes # 对于Wi-Fi通常还是用DHCP access-points: MyWiFi: # 你要连接的Wi-Fi SSID password: s3cr3tp4ssw0rd # Wi-Fi密码 optional: true重要提示在YAML文件中明文存储Wi-Fi密码存在安全风险。对于需要更高安全性的场景可以考虑使用nmcli交互式连接或者研究netplan配合wpa_supplicant使用密钥文件的方式。对于大多数个人桌面用户直接使用图形界面或nmcli连接Wi-Fi更为方便。6. 虚拟机网络配置详解桥接、NAT与仅主机在VMware或VirtualBox中安装Ubuntu网络不通是最高频的问题。其根源往往在于没理解虚拟网络的三种主要模式。6.1 NAT模式网络地址转换工作原理虚拟机共享宿主机的IP地址上网。虚拟机会被分配一个虚拟局域网如192.168.xx.xx的IP宿主机充当路由器进行地址转换。优点配置简单虚拟机可以无障碍访问外网宿主机也可以访问虚拟机。虚拟机对宿主机所在的物理网络是“隐身”的不会占用物理网络的IP地址避免了IP冲突。缺点物理网络中的其他设备无法直接访问虚拟机除非在宿主机上做端口转发。Ubuntu内配置通常无需特殊配置使用DHCP自动获取即可。虚拟网卡如ens33会从VMware/VirtualBox的虚拟DHCP服务器拿到一个192.168.xx.xx段的IP。适用场景绝大多数个人学习、开发环境。你只想让虚拟机上网并不需要它被局域网内其他电脑访问。6.2 桥接模式Bridged工作原理虚拟机的网卡直接“桥接”到宿主机的物理网卡上。相当于在物理网络上接了一台真实的电脑。优点虚拟机会从你物理网络的路由器获取一个和宿主机同网段的IP如192.168.1.xxx。它和宿主机、以及局域网内其他物理机完全平等可以互相直接访问。缺点会占用一个物理网络的IP地址可能导致IP冲突如果IP是手动分配的。某些公司或公共网络环境可能禁止桥接模式。Ubuntu内配置同样使用DHCP即可自动获取物理网络的IP。也可以像配置物理机一样配置静态IP需符合物理网络规划。适用场景需要将虚拟机作为一台独立服务器供局域网内其他设备访问如搭建内部测试网站、文件服务器。6.3 仅主机模式Host-Only工作原理创建一个完全封闭的虚拟网络只有虚拟机和宿主机之间可以互相通信虚拟机无法访问外网。优点最安全与外界完全隔离。适合做封闭的网络实验、安全测试。缺点无法上网。适用场景需要绝对隔离的网络环境测试。6.4 虚拟机网络配置实战与排错常见问题1虚拟机无法获取IP地址NAT/桥接模式下检查1虚拟机软件确保虚拟机的网络适配器已启用并连接到正确的网络如“NAT网络”或“桥接模式”。检查2Ubuntu内部在Ubuntu中运行ip addr或ifconfig查看对应网卡如ens33是否有inet地址。如果没有尝试重启网络服务# 对于使用netplan的较新系统 sudo netplan apply # 或重启NetworkManager sudo systemctl restart NetworkManager检查3虚拟网络编辑器在VMware的“编辑”-“虚拟网络编辑器”中确保NAT或桥接对应的虚拟网络是启用的并且NAT设置里的DHCP服务是开启的。常见问题2桥接模式无法上网检查1确认宿主机本身能上网。检查2在“虚拟网络编辑器”中检查桥接模式所“桥接到”的物理网卡是否正确。特别是笔记本电脑有有线网卡和无线网卡如果你用Wi-Fi上网桥接就应该选无线网卡用网线上网就选有线网卡。选错会导致桥接失败。检查3检查物理网络环境。有些企业网络会绑定MAC地址或禁止陌生设备接入导致桥接的虚拟机被拒绝。常见问题3能ping通外网IP但无法解析域名如ping不通baidu.com原因DNS配置错误。虚拟机可能没有获取到有效的DNS服务器。解决手动配置DNS。可以在netplan配置的nameservers里添加或者编辑/etc/resolv.conf文件注意如果使用NetworkManager此文件可能被覆盖。更持久的方法是在netplan或nmcli中设置。7. 网络诊断与排错工具箱网络出问题时不要慌按顺序使用以下命令像侦探一样层层排查。7.1 第一步检查接口与IP地址# 查看所有网络接口的简要状态和IP地址最常用 ip addr show # 或使用老命令 ifconfig # 查看具体某个接口如ens33 ip addr show ens33看什么确认你的网卡如ens33,wlp2s0是否存在状态是UP还是DOWN。检查inet后面是否有IPv4地址。如果没有IP说明DHCP获取失败或未配置静态IP。7.2 第二步检查路由与网关# 查看路由表 ip route show # 或 route -n看什么找到一行以default via开头的记录这就是默认网关。确认网关地址是否正确通常是你路由器的IP。没有默认路由数据包就不知道往哪里发去访问外网。7.3 第三步测试连通性# 1. 测试与网关的连通性局域网内 ping -c 4 192.168.1.1 # 将地址换成你的网关 # 2. 测试与外部IP的连通性如一个公网DNS ping -c 4 8.8.8.8 # 3. 测试域名解析 ping -c 4 baidu.com排查逻辑如果第1步不通问题在局域网内。检查IP地址是否在同一网段、网线、交换机、防火墙sudo ufw status查看是否屏蔽了ICMP。如果第1步通但第2步不通问题可能出在网关本身路由器没连外网或者更上层的网络问题。如果第2步通但第3步不通DNS解析问题。重点检查/etc/resolv.conf文件中的DNS服务器设置。7.4 第四步检查DNS解析# 查看当前使用的DNS服务器 cat /etc/resolv.conf # 使用nslookup或dig测试域名解析 nslookup baidu.com # 或 dig baidu.com如果nslookup或dig失败但ping 8.8.8.8成功那基本就是DNS配置错误。按照前面章节的方法在netplan或nmcli中修正DNS服务器地址。7.5 第五步检查网络服务状态# 查看NetworkManager服务状态 systemctl status NetworkManager # 查看netplan应用的渲染器服务状态如systemd-networkd systemctl status systemd-networkd # 查看防火墙状态Ubuntu默认的ufw sudo ufw status确保关键的网络管理服务是active (running)状态。如果防火墙启用Status: active并且你没有配置规则它可能会默认阻止所有传入连接影响某些服务但通常不影响基本的出站上网。如果不确定可以暂时禁用防火墙测试sudo ufw disable测试完记得重新启用sudo ufw enable。8. 高级话题与扩展配置掌握了基础连接后你可能还会遇到一些特定需求。8.1 配置多网卡或绑定IP地址一台服务器可能有多个网卡用于连接不同网络。多网卡在netplan中为每个接口如ens33,ens34分别写一段配置即可。它们可以有不同的IP、网关但默认网关只能有一个。单网卡多IP在netplan的addresses字段下以列表形式添加多个地址。ethernets: ens33: addresses: - 192.168.1.100/24 - 10.0.0.100/24 # 第二个IP属于另一个子网8.2 配置静态主机名解析/etc/hosts/etc/hosts文件可以让你在本地为IP地址指定一个容易记的主机名绕过DNS。sudo nano /etc/hosts在文件末尾添加一行例如192.168.1.50 my.server.local保存后你就可以在终端里用ping my.server.local或ssh my.server.local来访问192.168.1.50这台机器了。这在搭建小型内部集群时非常有用。8.3 解决“Device not managed”问题有时在图形界面或nmcli中你会看到网卡状态是“未托管”。这意味着NetworkManager不管理这个网卡通常是因为netplan配置指定了renderer: networkd或者/etc/NetworkManager/NetworkManager.conf中配置了unmanaged-devices。解决方法如果是netplan导致的确保配置文件中的renderer是NetworkManager。检查/etc/NetworkManager/NetworkManager.conf在[keyfile]部分确保没有类似unmanaged-devicesinterface-name:ens33的条目将其排除管理。重启NetworkManagersudo systemctl restart NetworkManager。网络配置是使用Ubuntu的基石看似复杂但拆解开来无非是“接口、IP、网关、DNS”几个要素通过“图形界面、nmcli、netplan”几种工具去设置。从虚拟机三种网络模式的理解到命令行逐层排查故障的思路这些经验需要在实际操作中反复练习才能内化。我最深的体会是遇到网络问题切忌盲目乱试一定要按照“接口状态 - IP地址 - 路由网关 - DNS解析”这个顺序像剥洋葱一样一层层检查配合ping和ip命令绝大多数问题都能快速定位。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门