Bootstrap

网络配置命令

文章目录

一、查看网络接口信息 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地址

image-20240714185735120

1.2.2 输出解释
  1. 第一行:以太网卡的名字不是常见的 eth0,变成了 ens33。

    • en 代表以太网卡。
    • ens33 代表 PCI 接口的物理位置为 (0,3),其中横坐标代表 bus,纵坐标代表 slot。
    • UP:代表此网络接口为启用状态(down 为关闭状态)。
    • RUNNING:代表网卡设备已连接。
    • MULTICAST:表示支持组播。
    • MTU:为数据包最大传输单元。
  2. 第二行:网卡的 IP 地址、子网掩码、广播地址。

  3. 第三行:IP v6 地址。

  4. 第四行:Ethernet(以太网)表示连接类型;ether 表示为网卡的 MAC 地址。

  5. 第五行:接收数据包个数、大小统计信息。

  6. 第六行:异常接收包的个数,如丢包量、错误等。

  7. 第七行:发送数据包个数、大小统计信息。

  8. 第八行:发送包的个数,如丢包量、错误等。

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  # 显示所有活动及非活动的连接

image-20240714185807935

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

image-20240714185914568

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 使用 ifupifdown 控制网络接口

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 地址所在分类的默认子网掩码

image-20240714190048399

四、查看主机名称 hostname

主机名在 Linux 操作系统中,相当一部分网络服务都会通过主机名来识别主机,如果主机名配置不当,可能会导致程序功能出现故障。

4.1 查看主机名

hostname

示例输出:

localhost.localdomain

4.2 修改主机名

4.2.1 临时修改
hostname newhostname
4.2.2 永久修改
hostnamectl set-hostname newhostname

也可以直接编辑 /etc/hostname 文件。

image-20240714190116352

五、查看路由表条目 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

image-20240714190204407

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

image-20240714190334333

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 

image-20240714190402609

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 netstatss 命令的对比

当服务器的 socket 连接数量变得非常大时,使用 netstat 命令可能会很慢。相比之下,ss 命令更快速更高效,尤其是在服务器维持大量连接时。

image-20240714190445464

image-20240714190506719

七、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

image-20240714190549137

image-20240714190628776

八、测试网络连通性: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

image-20240714190716741

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 命令跟踪查看是在哪个中间结点存在故障。

image-20240714190756228

十、配置网络参数

10.1 临时配置

通过命令行直接修改当前正在使用的网络地址,修改后立即生效。这种方式操作简单快速,执行效率高,一般在调试网络的过程中使用。但由于所做的修改没有固定地存放在静态的文件中,因此当重启 network 服务或重启主机后将会失效。

10.2 永久配置

通过配置文件来存放固定的各种网络地址,需要重启 network 服务或重启主机后才会生效。这种方式操作上相对复杂,但相当于“永久配置”,一般在需要为服务器设置固定的网络地址时使用。

十一、查看本主机 IP

hostname -i

示例输出:

fe80::20c:29ff:fe4f:e948%ens33 192.168.245.151 192.168.122.1

image-20240714190834564

十二、域名解析 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

image-20240714190919107

十三、域名解析配置文件

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。

image-20240714191136027

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

image-20240714191318336

十四、查询 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: 一 621 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)
;