在Linux系统中,通过命令行连接网络是系统管理和运维的基本技能,无论是服务器还是无图形界面的终端环境,掌握命令行网络配置方法都至关重要,本文将详细介绍Linux下使用命令连接网络的核心操作,包括有线/无线网络配置、常用网络工具及故障排查思路,帮助读者全面掌握命令行网络管理能力。
基础网络状态查看与接口管理
在配置网络前,需先了解当前网络接口状态,Linux系统中,网络接口(如以太网eth0
、无线wlan0
)是网络通信的基础,可通过ip
命令(现代Linux推荐)或传统ifconfig
命令查看和管理。
查看网络接口信息
使用ip addr show
(或简写ip a
)可列出所有网络接口的详细信息,包括接口状态(UP/DOWN)、IP地址、子网掩码、MAC地址等。
ip addr show
输出示例中,inet
字段为IPv4地址,inet6
为IPv6地址,link/ether
为MAC地址,state UP
表示接口已启用。
启用/禁用网络接口
若接口处于DOWN
状态,需手动启用,以eth0
为例:
sudo ip link set eth0 up # 启用接口 sudo ip link set eth0 down # 禁用接口
启用后,若通过DHCP获取IP,可使用dhclient eth0
(需安装dhcp-client
工具);若系统启用了NetworkManager(如Ubuntu、CentOS 7+),则建议通过nmcli
管理(后文详述)。
有线网络配置
静态IP配置
若需固定IP地址(如服务器环境),可通过ip
命令临时配置,或修改配置文件实现持久化。
临时配置(重启失效):
# 设置IP地址(192.168.1.100/24,子网掩码255.255.255.0) sudo ip addr add 192.168.1.100/24 dev eth0 # 设置网关 sudo ip route add default via 192.168.1.1 # 设置DNS(需修改/etc/resolv.conf) echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
持久化配置(以Debian/Ubuntu为例):
编辑/etc/network/interfaces
文件:
sudo nano /etc/network/interfaces ```根据实际接口名修改): ```plaintext auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8 114.114.114.114
保存后重启网络服务(或重启接口):
sudo systemctl restart networking # Ubuntu/Debian # 或 sudo ifdown eth0 && sudo ifup eth0 # 传统方式
CentOS/RHEL系统:
配置文件位于/etc/sysconfig/network-scripts/ifcfg-eth0
类似:
TYPE=Ethernet BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 ONBOOT=yes
保存后执行sudo nmcli connection reload && sudo nmcli connection up eth0
(NetworkManager环境)或sudo systemctl restart network
。
动态IP配置(DHCP)
若通过路由器自动获取IP,确保接口启用且配置文件中BOOTPROTO=dhcp
(Debian/Ubuntu)或BOOTPROTO=dhcp
(CentOS/RHEL),然后重启网络服务:
# Debian/Ubuntu sudo systemctl restart networking # CentOS/RHEL sudo systemctl restart network
验证IP是否获取成功:ip addr show eth0 | grep inet
。
无线网络配置
Linux下无线网络配置依赖无线驱动和工具,主流方式是通过NetworkManager
的命令行工具nmcli
(推荐),或传统iwconfig
+wpa_supplicant
组合。
使用nmcli(现代Linux发行版默认)
前提:确保安装了NetworkManager
并运行(sudo systemctl status NetworkManager
)。
步骤:
-
扫描无线网络:
nmcli dev wifi list
输出包含SSID(网络名称)、信号强度(BARS)、安全类型(WPA2/WEP)等。
-
连接无线网络:
# 连接开放网络(无需密码) sudo nmcli dev wifi connect <SSID> # 连接加密网络(WPA2/WPA3) sudo nmcli dev wifi connect <SSID> password <密码> # 保存连接(避免下次重复输入密码) sudo nmcli dev wifi connect <SSID> password <密码> name <自定义连接名>
-
查看连接状态:
nmcli connection show # 查看已保存的连接 nmcli dev status # 查看设备状态
传统无线配置(无NetworkManager时)
若系统未使用NetworkManager(如 minimal 安装),需手动配置:
-
安装工具:
sudo apt install wireless-tools wpasupplicant # Debian/Ubuntu sudo yum install wireless-tools wpa_supplicant # CentOS/RHEL
-
扫描网络:
iw dev wlan0 scan | grep SSID # wlan0为无线接口名
-
创建WPA配置文件:
编辑/etc/wpa_supplicant/wpa_supplicant.conf
:network={ ssid="MyWiFi" psk="your_password" key_mgmt=WPA-PSK # WPA2/WPA3常用,WEP需用wep_key0 }
-
启动连接:
sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf sudo dhclient wlan0 # 获取IP
常用网络工具与测试
配置完成后,需使用工具验证网络连通性及服务状态。
网络连通性测试
命令 | 功能说明 | 示例 |
---|---|---|
ping |
测试与目标主机的网络连通性 | ping -c 4 8.8.8.8 (发送4个包) |
traceroute |
追踪数据包到目标主机的路径 | traceroute www.baidu.com |
mtr |
结合ping和traceroute,实时监控 | mtr 8.8.8.8 (需安装mtr) |
网络服务与端口检查
命令 | 功能说明 | 示例 |
---|---|---|
ss |
查看端口监听状态(替代netstat) | ss -tuln (显示所有监听端口) |
netstat |
传统网络工具(需安装) | netstat -tuln |
curl |
发送HTTP请求,测试Web服务 | curl -I https://www.baidu.com |
wget |
下载文件,测试网络访问 | wget https://www.baidu.com |
路由与DNS检查
- 查看路由表:
ip route show
或route -n
- 测试DNS解析:
nslookup www.baidu.com
或dig www.baidu.com
网络故障排查思路
当网络连接异常时,可按以下步骤排查:
- 检查接口状态:
ip link show
,确认接口是否为UP
状态,若未启用则执行sudo ip link set <interface> up
。 - 检查IP配置:
ip addr show
,确认IP地址、子网掩码是否正确,静态IP需检查配置文件,DHCP需确认dhclient
是否正常运行。 - 检查路由表:
ip route show
,确认默认网关是否存在,若缺失需手动添加(sudo ip route add default via <gateway>
)。 - 检查DNS解析:
nslookup www.baidu.com
,若无法解析,修改/etc/resolv.conf
添加DNS服务器(如8.8.8
)。 - 检查防火墙:
sudo systemctl status firewalld
(CentOS)或sudo ufw status
(Ubuntu),确认防火墙是否阻止了网络访问。 - 查看系统日志:
journalctl -u NetworkManager
(NetworkManager日志)或dmesg | grep -i network
(内核日志),定位错误信息。
相关问答FAQs
Q1:Linux下如何切换到命令行模式连接网络?
A:若系统启动后进入图形界面,可通过快捷键切换到纯命令行模式:
- Ubuntu/Debian:按
Ctrl+Alt+F2
~F6
(任意一个虚拟终端),输入用户名和密码登录。 - CentOS/RHEL:按
Ctrl+Alt+F2
~F6
,登录后执行systemctl isolate multi-user.target
进入命令行模式。
切换后即可使用本文介绍的命令配置网络(如nmcli
、ip
等)。
Q2:为什么用ping测试能通(如ping通网关),但无法上网(如无法访问百度)?
A:这种情况通常与DNS或路由配置有关,排查步骤如下:
- 检查DNS解析:执行
nslookup www.baidu.com
,若显示“server can’t find”,说明DNS未配置或配置错误,需修改/etc/resolv.conf
添加有效DNS(如8.8.8
)。 - 检查默认路由:执行
ip route show
,确认是否存在default via <gateway>
条目,若无需添加网关路由。 - 检查防火墙/代理:若使用公司网络或代理,需确认防火墙是否阻止外网访问,或是否设置了代理环境变量(如
http_proxy
)。 - 检查网关连通性:ping网关(如
168.1.1
)通,但ping不通外网IP(如8.8.8
),说明网关可能故障或网络策略限制。
通过以上步骤,可逐步定位并解决“能通局域网,不能通外网”的问题。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/37264.html