微信优化

weixinyouhua

linux上网配置怎么做?linux网络配置详细步骤指南

2026-08-30 06:59:27

Linux上网配置核心在于识别网卡后,针对网络环境选择DHCP自动获取或静态IP手动指定,通过nmcli、ip等命令快速完成设置,多数上网失败源于网卡未激活或DNS配置错误。

先搞清楚你的网卡叫什么名字

刚接触Linux的人常栽在第一步:不知道系统里网卡叫什么,Windows里叫“以太网适配器”,Linux里名字可能是ens33、eth0、wlan0,不同发行版命名规则不一样,用ip addr或ifconfig -a查看,后者需要先安装net-tools工具包,比如在Ubuntu上执行sudo apt install net-tools,然后ifconfig -a,看到带inet地址的就是已激活的网卡,没有inet字段说明没拿到IP。

如果只有lo(回环接口),说明物理网卡没被识别或驱动没加载,这时用lspci | grep -i ethernet确认硬件是否存在,再用dmesg | grep eth看内核日志有没有报错,行业共识认为,多数网卡不被识别是固件或驱动问题,先更新内核和固件包比手动编译驱动省事得多。

自动获取IP:大多数人最省心的路径

家用路由器和公司DHCP环境下,没必要手动设IP,现代Linux发行版默认网络管理由NetworkManager接管,命令行操作最直接的是nmcli。

用nmcli一键连接网络

先看当前网络状态:nmcli device status,输出里STATE列为connected表示已连接,disconnected就要手动连,无线网络用nmcli device wifi connect "WiFi名称" password "密码",有线网络通常插上网线就自动获取,没动静就执行nmcli device connect eth0(把eth0换成你的网卡名),当NetworkManager的托管与systemd-networkd冲突时,会出现网卡明明存在但无法激活,此时选择禁用其中一个服务,比如sudo systemctl stop NetworkManager后改用systemd-networkd配置。

图形界面和配置文件也能干这事

桌面版Linux用户直接在设置里的网络面板点连接即可,服务器版没有图形界面才用命令,纯命令行环境不想用NetworkManager,就编辑/etc/network/interfaces(Debian/Ubuntu)或/etc/sysconfig/network-scripts/ifcfg-(CentOS/RHEL),Ubuntu写入auto eth0加iface eth0 inet dhcp,然后sudo systemctl restart networking生效。

近年来,云服务器厂商默认镜像大多预装cloud-init,它会覆盖手动改的配置文件,你在云主机上设置静态IP,最好在云控制台操作,而不是改系统文件,否则重启后配置被还原。

静态IP配置:手动指定地址、网关和DNS

需要固定IP的场景很常见:搭建服务器、内网穿透、打印机共享,配置Linux静态IP时有两个关键点:必须与局域网网段匹配,网关要和路由器LAN口地址一致。

用nmcli快速设置静态IP

假设网卡叫ens33,要设IP为168.1.100,网关168.1.1,DNS用5.5.5

linux上网配置怎么做?linux网络配置详细步骤指南

(阿里DNS)和114.114.114(114DNS),一条命令搞定:

sudo nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "223.5.5.5 114.114.114.114"
sudo nmcli connection up ens33

这里/24代表子网掩码255.255.255.0,执行完用ip addr验证IP是否生效,注意connection名字可能叫“有线连接1”而不是网卡名,用nmcli connection show查看准确名称再改。

修改配置文件的方式更“传统”

CentOS/RHEL系改/etc/sysconfig/network-scripts/ifcfg-ens33,关键项如下:

BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=223.5.5.5
DNS2=114.114.114.114

保存后systemctl restart network(CentOS 7)或nmcli connection reload(CentOS 8+),Ubuntu 18.04以上用Netplan,配置文件在/etc/netplan/下,YAML格式,一个典型示例:

network:
  version: 2
  ethernets:
    ens33:
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [223.5.5.5, 114.114.114.114]

执行sudo netplan apply生效,这里有个坑:不同版本的gateway4写法在较新版本中已弃用,改用routes和routing-policy,但多数教程未提及,导致照搬后网关不生效。

DNS配置:域名解析失败是“上不了网”的隐形杀手

很多Linux用户遇到“能ping通IP但打不开网页”,就是DNS没设对。/etc/resolv.conf是传统DNS配置文件,但被systemd-resolved或NetworkManager托管时手动修改会被覆盖。正确做法是在网络连接配置里设定DNS,或直接编辑/etc/systemd/resolved.conf。

快速检验DNS是否正常

用nslookup www.baidu.com验证,如果报server can't find,换公共DNS再试,常见的公共DNS:阿里5.5.5、腾讯29.29.29、Google8.8.8,国内访问Google DNS可能延迟高,优先用国内服务商的,当你配置完静态IP后没设DNS,系统会默认用网关做DNS,部分路由器不支持转发域名解析,就会打不开网页。

临时修改与永久修改

临时生效:sudo echo "nameserver 223.5.5.5" > /etc/resolv.conf,重启网络服务后失效,永久生效要改网卡配置或Netplan,Ubuntu上如果你不想动Netplan,可以关闭systemd-resolved服务,让/etc/resolv.conf保留手动设置:sudo systemctl stop systemd-resolved && sudo systemctl disable systemd-resolved,但此操作会影响其他依赖该服务的程序。

排查Linux无法上网的常见故障

遇到上不了网,按顺序排查效率最高:物理链路、网卡状态、IP地址、路由表、DNS,下面是具体操作。

网卡未激活:最常见的问题

ip addr显示网卡没有inet字段,先尝试sudo ip link set ens33 up激活它,还不行就检查NetworkManager服务状态:

linux上网配置怎么做?linux网络配置详细步骤指南

systemctl status NetworkManager,有时候是网卡被设为“未托管”,用nmcli device set ens33 managed yes恢复,虚拟机里装Linux常出现网卡没连上虚拟交换机,检查虚拟网络编辑器里是否勾选“仅主机模式”或其他配置。

路由表错误导致能通内网不能上外网

ip route show查看默认网关,如果缺省路由缺失,添加:sudo ip route add default via 192.168.1.1 dev ens33,电脑上有多个网卡时,默认网关可能指向错误的接口,删掉再添加。

防火墙拦截:直接连不通

Linux自带的ufw或firewalld可能默认拒绝外部连接,测试时临时关闭:sudo ufw disable(Ubuntu)或sudo systemctl stop firewalld(CentOS 7+),确认是防火墙问题后,放行对应端口而不是永久关闭,以保证安全。

用ping和traceroute定位断点

  • ping 192.168.1.1网关通不通,不通则是局域网问题。
  • ping 223.5.5.5公网IP通不通,不通说明路由或运营商问题。
  • ping www.baidu.com域名通不通,不通则DNS故障。

业内专家指出,多数Linux上网问题集中在DNS配置和网卡未托管,两者占求助案例的相当大比例。

无线网卡的特殊配置

笔记本装Linux连WiFi,比有线多两步:确认无线网卡驱动和连接加密方式。nmcli device wifi list能扫到WiFi列表,就说明驱动OK,连接WPA2/WPA3网络的命令和之前一样,连接企业WiFi(802.1X)需要编辑配置文件,用nmcli connection edit交互式修改,字段涉及802-1x.eap、802-1x.identity等,如果无线网卡是Intel或Realtek的,新内核支持很完善,老内核就得装驱动,建议升级到发行版最新内核省心。

不同Linux发行版的配置差异对比

发行版 网络管理工具 静态IP配置文件 重启网络命令
Ubuntu 18.04+ Netplan /etc/netplan/.yaml sudo netplan apply
Debian ifupdown或NetworkManager /etc/network/interfaces sudo systemctl restart networking
CentOS 7 NetworkManager /etc/sysconfig/network-scripts/ifcfg- systemctl restart network
CentOS 8+/Rocky NetworkManager /etc/NetworkManager/system-connections/ nmcli connection reload
Arch/Manjaro systemd-networkd /etc/systemd/network/.network systemctl restart systemd-networkd

表格只列主流路径,实际工作中,优先使用发行版默认工具,我遇到过有人Ubuntu上强行用CentOS的配置方式,结果NetworkManager和Netplan冲突,网络服务起不来。

虚拟机和云服务器的上网配置注意点

VMware或VirtualBox里的Linux,网络模式选择影响IP获取,桥接模式让虚拟机与宿主机在同一局域网,NAT模式用虚拟机网卡地址,仅主机模式只能和宿主机通信,在NAT模式下,虚拟机默认通过虚拟网关上网,配置静态IP时

linux上网配置怎么做?linux网络配置详细步骤指南

网关要写成虚拟网络的网关(通常是192.168.x.1或10.0.2.2),而不是物理路由器的IP。

云服务器(简米云、酷番云)的Linux实例,除了系统内配置,还要在控制台安全组放行端口,常见误区:系统里防火墙全开,但安全组没放行80端口,外部访问仍然失败,这时用curl localhost测试本机服务是否监听,再用curl 公网IP测试外网连通性,逐步缩小范围。

实战案例:一台刚装好的Ubuntu服务器怎么配上网

新装Ubuntu 22.04服务器版,插上网线,SSH连不上,按这个顺序做:

  1. ip addr看网卡名,假设是enp3s0,状态为DOWN。
  2. sudo ip link set enp3s0 up,再ip addr确认有inet地址,如果没有,说明DHCP没获取到,手动发请求:sudo dhclient enp3s0。
  3. 能获取IP但ping 192.168.1.1不通,检查网线接口指示灯,确认网线插的是路由器LAN口而不是WAN口。
  4. 网关通但ping 223.5.5.5不通,查路由表ip route,缺默认路由就添加。
  5. 公网IP通但域名不通,在/etc/netplan/里配置DNS,然后sudo netplan apply。

整个过程不到十分钟,排查思路和Windows差不多,只是命令变了。

关于终端连接上网配置的常见疑问

如何查看Linux网卡当前IP地址?

用ip addr show最直接,显示所有网卡和IPv4/IPv6地址,也可以用hostname -I只看IP,不显示MAC和状态,图形界面用户点网络设置里的“齿轮”图标,也能看到详细IP信息。

linux配置ip地址命令是否适用于所有版本?

ip命令来自iproute2包,所有主流Linux发行版都自带,所以ip addr、ip link set是通用的,但ifconfig属于net-tools,部分精简系统没装,需要自己安装,而修改配置文件的命令因发行版而异,比如Ubuntu用netplan apply,CentOS用nmcli connection up,命令不能混用但功能对等。

配置好静态IP后如果重启失效怎么办?

多数情况是配置文件语法错误或服务没有正确加载,检查netplan的缩进是否对齐(YAML对空格敏感),或者ifcfg-文件里参数名是否写错,另外确认网络管理服务是否开机自启:systemctl is-enabled NetworkManager,如果显示disabled,执行systemctl enable NetworkManager,云服务器上重启失效,大概率是cloud-init覆盖了你的配置,去云控制台用“弹性网卡”功能固定私网IP。

配置Linux上网没有想象中复杂,理清自动获取和静态IP两条路线,掌握ip、nmcli和发行版的配置文件操作,再遇到网络问题,照着排查顺序就能解决,经验累积后你会发现,大部分问题都出在细节上,比如网卡名认错、网关写错、防火墙没放行,而把基础命令练熟,就能以不变应万变。

相关文章

2024年,SaaS软件行业碰到获客难、增长慢等问题吗?

我们努力让每一次邂逅总能超越期待