文章目录
一、查看网络接口信息 ifconfig
主机的网络接口卡(网卡)通常称为网络接口。在 Linux 操作系统中,使用 ifconfig
命令可以查看网络接口的地址配置信息(Interface Configuration)。
若采用 mini 版 CentOS 7 安装的系统,默认是没有 ifconfig
命令的,需要先通过 yum
方式安装 net-tools
软件包,才有 ifconfig
命令。
1.1 网络接口名称
- ens33:第一块以太网卡的名称。“ens33”中的“en”是“EtherNet”的缩写,表示网卡类型为以太网,“s”表示热插拔插槽上的设备(hot-plug Slot),数字“33”表示插槽编号。
- lo:回环网络接口,“lo”是“loopback”的缩写,它不代表真正的网络接口,而是一个虚拟的网络接口,其 IP 地址默认是“127.0.0.1”。回环地址通常仅用于对本机的网络测试。
1.2 使用 ifconfig
查看网络接口信息
ifconfig # 显示已启用的网络接口,不包括禁用的设备
1.2.1 输出示例
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.245.211 netmask 255.255.255.0 broadcast 192.168.245.255
inet6 fe80::20c:29ff:fef4:bf17 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:f4:bf:17 txqueuelen 1000 (Ethernet)
RX packets 117334 bytes 171217990 (163.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 17699 bytes 1155659 (1.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
inet 192.168.245.211 # ip地址
netmask 255.255.255.0 # 子网掩码
broadcast 192.168.245.255 # 广播地址
ether 00:0c:29:f4:bf:17 # mac地址
1.2.2 输出解释
-
第一行:以太网卡的名字不是常见的 eth0,变成了 ens33。
en
代表以太网卡。ens33
代表 PCI 接口的物理位置为 (0,3),其中横坐标代表 bus,纵坐标代表 slot。UP
:代表此网络接口为启用状态(down 为关闭状态)。RUNNING
:代表网卡设备已连接。MULTICAST
:表示支持组播。MTU
:为数据包最大传输单元。
-
第二行:网卡的 IP 地址、子网掩码、广播地址。
-
第三行:IP v6 地址。
-
第四行:Ethernet(以太网)表示连接类型;
ether
表示为网卡的 MAC 地址。 -
第五行:接收数据包个数、大小统计信息。
-
第六行:异常接收包的个数,如丢包量、错误等。
-
第七行:发送数据包个数、大小统计信息。
-
第八行:发送包的个数,如丢包量、错误等。
1.3 查看特定网络接口信息
ifconfig ens33 # 只查看网卡 ens33 的配置信息
1.3.1 输出示例
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.245.211 netmask 255.255.255.0 broadcast 192.168.245.255
inet6 fe80::20c:29ff:fef4:bf17 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:f4:bf:17 txqueuelen 1000 (Ethernet)
RX packets 117396 bytes 171222511 (163.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 17724 bytes 1159336 (1.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
1.4 查看所有网络接口信息
ifconfig -a # 显示所有活动及非活动的连接
1.5 特殊网络接口
-
lo:表示主机的回环地址,IP 地址固定为 127.0.0.1,子网掩码为 8 位,表示本机。用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。比如把 HTTPD 服务器的指定到回环地址,在浏览器输入 127.0.0.1 就能看到你所架设的 WEB 网站,但只是您能看得到,局域网的其它主机或用户无从知道。
-
virbr0:是一个虚拟的网络连接端口,默认为 0 号虚拟网络连接端口。一般在通过虚拟机进行移植操作系统时,默认会以 nat 的网络地址转移,但是可以选择桥接或者是无网络连接也是可以的(因为本人用的是 CentOS 镜像的虚拟机,所以会有这一行)。
二、修改网络配置文件
网络接口的配置文件默认位于 /etc/sysconfig/network-scripts/ifcfg-ens33
。文件名格式为 “ifcfg-XXX”,其中“XXX”是网络接口的名称。例如,网卡 ens33 的配置文件是 “ifcfg-ens33”,回环接口 lo 的配置文件是 “ifcfg-lo”。
2.1 配置文件示例
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="769b6c3c-8981-44ca-8920-26b48cad5496"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.78.22
NETMASK=255.255.255.0
GATEWAY=192.168.78.2
DNS1=114.114.114.114
2.2 使配置生效
在 CentOS 7 操作系统中,当修改了网络接口的配置文件以后,若要使新的配置生效,可以重新启动 network 服务或者重启主机。
systemctl restart network # 重启网络服务
2.3 关闭 NetworkManager 服务
建议关闭 NetworkManager 服务,否则有时启动 network 会报错。
systemctl stop NetworkManager
systemctl disable NetworkManager
三、设置网络接口参数 ifconfig
ifconfig
命令不仅可以用于查看网卡配置,还可以修改网卡的 IP 地址、子网掩码,也可以绑定虚拟网络接口、激活或禁用网络接口。
3.1 启用、禁用网络接口配置
ifconfig ens37 down # 禁用网络接口
ifconfig ens37 up # 启用网络接口
3.2 使用 ifup
和 ifdown
控制网络接口
ifup ens37 # 启用网络接口
ifdown ens37 # 禁用网络接口
3.3 为网卡绑定虚拟接口
在对服务器网络进行调试的过程中,有时候需要临时在同一个网卡上使用一个新的 IP 地址,但是又不能覆盖原有 IP 地址而导致服务程序不可用。这时可以为网卡绑定一个虚拟的网络接口,然后为虚拟接口设置新的 IP 地址(相当于一块网卡配多个 IP 地址)。
ifconfig ens37:0 192.168.10.20 netmask 255.255.255.0 #
临时配置网卡的 IP 地址
ifconfig ens37:0 192.168.10.20/24 # 当不指定子网掩码时,将使用 IP 地址所在分类的默认子网掩码
四、查看主机名称 hostname
主机名在 Linux 操作系统中,相当一部分网络服务都会通过主机名来识别主机,如果主机名配置不当,可能会导致程序功能出现故障。
4.1 查看主机名
hostname
示例输出:
localhost.localdomain
4.2 修改主机名
4.2.1 临时修改
hostname newhostname
4.2.2 永久修改
hostnamectl set-hostname newhostname
也可以直接编辑 /etc/hostname
文件。
五、查看路由表条目 route
路由表决定着从本机向其他主机、其他网络发送数据的去向,是排除网络故障的关键信息。
5.1 查看当前路由表信息
route
示例输出:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 0 0 0 ens33
link-local 0.0.0.0 255.255.0.0 U 1002 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.245.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
5.2 查看数字形式的路由表
route -n
示例输出:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.245.2 0.0.0.0 UG 0 0 0 ens33
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.245.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
5.3 使用 ip route
查看路由配置
ip route show
示例输出:
default via 192.168.245.2 dev ens33
169.254.0.0/16 dev ens33 scope link metric 1002
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
192.168.245.0/24 dev ens33 proto kernel scope link src 192.168.245.211
5.4 添加和删除静态路由
5.4.1 添加静态路由
route add -net 192.168.3.0/24 gw 192.168.10.1
5.4.2 删除静态路由
route del -net 192.168.3.0/24
5.5 添加和删除默认网关
5.5.1 添加默认网关
route add default gw 192.168.10.1
5.5.2 删除默认网关
route del default gw 192.168.10.1
六、netstat
命令
netstat
命令用于查看当前操作系统的网络连接状态、路由表、接口统计等信息,是了解网络状态及排除网络服务故障的有效工具。
6.1 常用参数
-n
:以数字的形式显示相关的主机地址、端口等信息。-r
:显示路由表信息。-a
:显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)。-l
:显示处于监听状态的网络连接及端口信息。-t
:查看 TCP(Transmission Control Protocol,传输控制协议)相关的信息。-u
:显示 UDP(User Datagram Protocol,用户数据报协议)协议相关的信息。-p
:显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限)。
6.2 使用示例
6.2.1 显示所有 TCP 连接
netstat -at
6.2.2 显示所有 UDP 连接
netstat -au
6.2.3 显示所有活动的网络连接
netstat -a
6.2.4 显示所有监听状态的网络连接及端口信息
netstat -l
6.2.5 显示所有监听状态的 TCP 连接
netstat -lnpt
6.2.6 显示所有监听状态的 UDP 连接
netstat -lnpu
6.3 netstat
和 ss
命令的对比
当服务器的 socket 连接数量变得非常大时,使用 netstat
命令可能会很慢。相比之下,ss
命令更快速更高效,尤其是在服务器维持大量连接时。
七、ss
命令
ss
命令(Socket Statistics)用于获取 socket 统计信息,显示和 netstat
类似的内容,但能显示更多更详细的有关 TCP 和连接状态的信息,比 netstat
更快速更高效。
7.1 ss
命令参数
-h
:–help,获取更多使用帮助。-V
:–version,显示软件版本号。-t
:–tcp,显示 TCP 协议的 sockets。-u
:–udp,显示 UDP 协议的 sockets。-n
:–numeric,不解析服务的名称。-l
:–listening,只显示处于监听状态的端口。-p
:–processes,显示监听端口的进程。-a
:–all,显示所有套接字(sockets)。-r
:–resolve,把 IP 解释为域名,把端口号解释为协议名称。
7.2 使用示例
7.2.1 显示所有 TCP 连接
ss -t -a
7.2.2 显示 Sockets 摘要
ss -s
7.2.3 显示所有打开的网络连接端口
ss -l
7.2.4 查看进程使用的 socket
ss -pl
7.2.5 找出打开特定端口的应用程序
ss -lp | grep 3306
7.2.6 显示所有 UDP Sockets
ss -u -a
7.2.7 显示所有状态为 established 的 HTTP 连接
ss -o state established '( dport = :http or sport = :http )'
7.2.8 列举处于 FIN-WAIT-1 状态的源端口为 80 或 443 的所有 TCP 套接字
ss -o state fin-wait-1 '( sport = :http or sport = :https )' dst 193.233.7/24
八、测试网络连通性:ping
使用 ping
命令可以向目标主机持续地发送测试数据包,并显示反馈结果,直到按 Ctrl+C 组合键后中止测试,并显示最终统计结果。
8.1 常用示例
8.1.1 测试与某 IP 地址的连通性
ping 192.168.10.10
8.1.2 指定发送的 ICMP 数据包数
ping -c 10 192.168.10.10
8.1.3 设置 ping 的间隔时间
ping -c 10 -i 0
.5 192.168.10.10
8.1.4 设置 ping 的超时时间
ping -w 5 www.baidu.com
8.2 错误反馈信息
- “Destination Host Unreachable”:目的主机不可达,可能目标地址不存在或者主机已经关闭。
- “Network is unreachable”:没有可用的路由记录(如默认网关),无法达到目标主机所在的网络。
- “Request timeout”:目标主机有严格的防火墙限制,或者网络中存在影响通信过程稳定性的因素(如网卡故障、病毒或网络攻击等)。
九、跟踪数据包 traceroute
若服务器上没有 traceroute
命令,可通过 yum
方式安装 traceroute
软件包。
9.1 使用 traceroute
跟踪数据包
traceroute 192.168.245.201
traceroute
命令能够比 ping
命令更加准确地定位网络连接的故障点(中断点),因此执行速度会比 ping
命令稍慢。在网络测试与排错过程中,通常会先使用 ping
命令测试与目的主机的网络连接,如果发现网络连接有故障,再使用 traceroute
命令跟踪查看是在哪个中间结点存在故障。
十、配置网络参数
10.1 临时配置
通过命令行直接修改当前正在使用的网络地址,修改后立即生效。这种方式操作简单快速,执行效率高,一般在调试网络的过程中使用。但由于所做的修改没有固定地存放在静态的文件中,因此当重启 network 服务或重启主机后将会失效。
10.2 永久配置
通过配置文件来存放固定的各种网络地址,需要重启 network 服务或重启主机后才会生效。这种方式操作上相对复杂,但相当于“永久配置”,一般在需要为服务器设置固定的网络地址时使用。
十一、查看本主机 IP
hostname -i
示例输出:
fe80::20c:29ff:fe4f:e948%ens33 192.168.245.151 192.168.122.1
十二、域名解析 nslookup
12.1 安装 bind-utils
yum install -y bind-utils
12.2 使用 nslookup
查询域名
nslookup www.google.com
示例输出:
Server: 114.114.114.114
Address: 114.114.114.114#53
Non-authoritative answer:
Name: www.google.com
Address: 31.13.87.19
Name: www.google.com
Address: 2001::45ab:f20b
十三、域名解析配置文件
13.1 修改 /etc/resolv.conf
文件
vi /etc/resolv.conf
内容示例:
search localdomain
nameserver 202.106.0.20
nameserver 202.106.148.1
resolv.conf
文件中的“search localdomain”行用来设置默认的搜索域(域名扩展名)。例如,当访问主机“localhost”时,就相当于访问“localhost.localdomain”。一行一个 DNS,最多配置三个 DNS。
13.2 本地主机映射文件
/etc/hosts
文件中记录着一份主机名与 IP 地址的映射关系表,一般用来保存经常需要访问的主机的信息。当访问一个未知的域名时,先查找该文件中是否有相应的映射记录,如果找不到再去向 DNS 服务器查询。
若在 /etc/hosts
文件中添加“119.75.218.70 www.baidu.com”的映射记录,则当访问网站 www.baidu.com 时,将会直接向 IP 地址 119.75.218.70 发送 Web 请求,省略了向 DNS 服务器的查询。
119.75.218.70 www.baidu.com
十四、查询 DNS 记录 dig
dig
是一个在类 Unix 命令行模式下查询 DNS 记录(包括 NS 记录、A 记录、MX 记录等)相关信息的工具,系统默认安装。
14.1 使用 dig
查询域名
dig www.baidu.com
示例输出:
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15827
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.baidu.com. IN A
;; ANSWER SECTION:
www.baidu.com. 882 IN CNAME www.a.shifen.com.
www.a.shifen.com. 189 IN A 180.101.49.12
www.a.shifen.com. 189 IN A 180.101.49.11
;; Query time: 14 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: 一 6月 21 19:51:19 CST 2021
;; MSG SIZE rcvd: 101
P2.el7 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15827
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.baidu.com. IN A
;; ANSWER SECTION:
www.baidu.com. 882 IN CNAME www.a.shifen.com.
www.a.shifen.com. 189 IN A 180.101.49.12
www.a.shifen.com. 189 IN A 180.101.49.11
;; Query time: 14 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: 一 6月 21 19:51:19 CST 2021
;; MSG SIZE rcvd: 101
![image-20240714191346253](https://img-blog.csdnimg.cn/img_convert/9df56a0729a922aa1a5d9239299a7906.png)