在Linux系统中,查看网络设置是日常运维和故障排查的基础操作,无论是确认IP地址、检查路由表,还是验证DNS配置,掌握多种查看方法都能高效解决问题,以下从命令行工具、配置文件、图形界面等多个维度,详细介绍Linux网络设置的查看方式。
使用命令行工具查看网络信息
命令行是Linux管理中最常用的方式,通过丰富的命令可以全面获取网络配置细节。
查看网络接口与IP地址
ip
命令(现代Linux发行版推荐,功能全面):
-
ip addr show
:显示所有网络接口的IP地址、MAC地址、状态等信息。
示例输出:1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:1c:23:45:67:89 brd ff:ff:ff:ff:ff:ff inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::21c:23ff:fe45:6789/64 scope link valid_lft forever preferred_lft forever
关键字段:
UP
(接口启用)、inet
(IPv4地址)、/24
(子网掩码)、brd
(广播地址)、link/ether
(MAC地址)。 -
ip link show
:仅显示网络接口的物理状态(如启用/禁用、MAC地址)。 -
ip -s link show eth0
:查看eth0接口的详细统计信息(如接收/发送字节数、错误包数)。
ifconfig
命令(传统工具,逐渐被ip
取代,部分系统仍保留):
ifconfig
:显示所有接口信息;ifconfig eth0
:查看指定接口。
查看路由表与网关
路由表决定了数据包的转发路径,网关是跨网段通信的出口。
-
ip route show
:查看当前路由表。
示例输出:default via 192.168.1.1 dev eth0 proto dhcp src 192.168.1.100 metric 100 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100
第一行:默认路由(目标为
0.0.0/0
),通过网关168.1.1
(via
)从eth0接口发出。
第二行:直连路由,目标网段168.1.0/24
直接通过eth0可达。 -
ip route get 8.8.8.8
:查询访问特定IP(如Google DNS)所使用的路由路径。
查看DNS配置
DNS用于域名解析,配置通常存储在/etc/resolv.conf
,但部分系统(如使用systemd-resolved
)会通过服务管理。
cat /etc/resolv.conf
:直接查看DNS服务器地址。
示例:nameserver 8.8.8.8
(Google DNS)、nameserver 114.114.114.114
(国内公共DNS)。resolvectl status
(使用systemd-resolved
的系统):显示更详细的DNS解析信息,包括当前使用的DNS服务器、域名搜索列表等。
查看网络连接与端口监听
-
ss
命令(推荐,替代netstat
,性能更优):ss -tuln
:查看所有监听(l
)的TCP(t
)和UDP(u
)端口,不显示域名解析(n
)。
示例:LISTEN 0 128 *:22 *:*
(SSH服务监听所有接口的22端口)。ss -tanp | grep :80
:查看所有TCP(t
)连接中监听80端口的进程ID(p
)。
-
netstat -tuln
:传统命令,效果与ss -tuln
一致,但ss
已逐渐成为主流。
查看网络配置文件
Linux网络配置通常存储在文本文件中,通过查看文件可了解静态设置(如固定IP、网关),不同发行版的配置文件位置略有差异:
发行版系列 | 主要配置文件位置 | 说明 |
---|---|---|
Debian/Ubuntu | /etc/network/interfaces |
传统配置文件,通过iface 段定义接口配置(静态IP/DHCP)。 |
RHEL/CentOS 7+ | /etc/sysconfig/network-scripts/ifcfg-eth0 |
网络接口配置文件,如BOOTPROTO=dhcp (DHCP)或static (静态IP)。 |
Ubuntu 18.04+ | /etc/netplan/*.yaml |
使用YAML格式,通过netplan apply 生效,支持DHCP和静态IP配置。 |
通用(NetworkManager) | /etc/NetworkManager/system-connections/ |
NetworkManager管理的连接配置文件,存储每个连接的详细参数(如IP、DNS)。 |
示例:查看Ubuntu的netplan配置
文件/etc/netplan/01-netcfg.yaml
内容:
network: version: 2 ethernets: eth0: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 114.114.114.114]
说明:静态IP168.1.100
,子网掩码/24
,网关168.1.1
,DNS为Google和国内公共DNS。
图形界面查看网络设置
对于桌面版Linux,可通过图形界面直观查看网络信息:
- GNOME(Ubuntu等):进入“设置”>“网络”,点击已连接的网卡(如“有线”),查看IP地址、DNS、网关等。
- KDE(openSUSE等):打开“系统设置”>“网络连接”,选择对应连接,点击“编辑”查看详细信息。
- 通用工具:如
nmtui
(NetworkMenu Text User Interface),通过终端运行交互式菜单查看/修改网络配置。
常用网络查看命令总结
命令 | 作用 | 示例 |
---|---|---|
ip addr show |
查看所有接口IP与MAC地址 | ip addr show eth0 |
ip link show |
查看接口物理状态 | ip link show |
ip route show |
查看路由表 | ip route show |
cat /etc/resolv.conf |
查看DNS服务器 | cat /etc/resolv.conf |
ss -tuln |
查看监听端口 | ss -tuln |
netstat -tuln |
传统方式查看监听端口 | netstat -tuln |
hostname -I |
查看所有IP地址(简洁) | hostname -I |
相关问答FAQs
Q1:如何永久修改Linux的IP地址?
A:修改方式取决于发行版和网络管理工具:
- 静态IP(Ubuntu netplan):编辑
/etc/netplan/01-netcfg.yaml
,设置dhcp4: no
并配置addresses
、gateway4
、nameservers
,运行sudo netplan apply
生效。 - 静态IP(RHEL/CentOS):编辑
/etc/sysconfig/network-scripts/ifcfg-eth0
,添加/修改BOOTPROTO=static
、IPADDR=192.168.1.100
、NETMASK=255.255.255.0
、GATEWAY=192.168.1.1
,重启网络服务sudo systemctl restart network
。 - DHCP:将配置文件中的
BOOTPROTO
设为dhcp
或dhcp4: true
,重启网络服务即可自动获取IP。
Q2:Linux网络不通时如何排查?
A:按以下步骤逐步排查:
- 检查接口状态:运行
ip link show
,确认目标接口(如eth0)状态为UP
(若为DOWN
,用sudo ip link set eth0 up
启用)。 - 检查IP配置:运行
ip addr show eth0
,确认IP地址、子网掩码是否正确(静态IP需核对配置文件,DHCP需检查是否获取到IP)。 - 检查网关:运行
ip route show
,确认默认路由中的网关IP可达(ping 网关IP
,如ping 192.168.1.1
)。 - 检查DNS:运行
ping 8.8.8.8
测试外网连通性,若通但域名无法解析(如ping www.baidu.com
失败),检查/etc/resolv.conf
中的DNS服务器是否正确,或尝试临时修改为nameserver 8.8.8.8
。 - 检查防火墙:运行
sudo systemctl stop firewalld
(临时关闭)或sudo iptables -F
(清空规则),若网络恢复,说明是防火墙规则拦截,需调整策略。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/22260.html