云计算【第一阶段(26)】Linux网络设置

一、查看网络配置

1.查看网络接口信息ifconfig

  • 查看所有活动的网络接口信息

2.ifconfig命令

  • 查看指定网络接口信息

ifconfig 网络接口

(1)第一行:以太网卡的名字  ens33其中en代表以太网卡, centos6的是eth0,
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. ifconfig -a #显示所有活动及非活动的连接

  2. ip a命令是 iproute2 套件的一部分,该套件提供了一套强大的工具来管理路由、网络设备、接口和隧道。

  • ens33:第一块以太网卡的名称。"ens33"中的"en"是"EtherNet"的缩写,表示网卡类型为以太网,"s"表示热插拔插槽上的设备(hot-plug Slot),数字"33"表示插槽编号。
  • lo:"回环"网络接口,"lo"是"loopback"的缩写,它不代表真正的网络接口,而是一个虚拟的网络接口,其 IP 地址默认是"127.0.0.1"。回环地址通常仅用于对本机的网络测试

注意:若采用 minini centos 安装的系统,默认是没有 ifconfig 命令的,需要先通过yum 方式安装 net-tools软件包,才有 ifconfig 命令

5.virbr0

  • virbr0 是一个虚拟的桥接网络接口,由虚拟化软件(如libvirt)自动创建和管理。它作为虚拟机网络中的虚拟交换机,允许虚拟机之间以及虚拟机与宿主机(或外部网络)之间的通信。
  • 默认情况下,virbr0 可能会配置为NAT(网络地址转换)模式,这意味着虚拟机通过宿主机连接到外部网络时,它们的IP地址会被转换成宿主机的IP地址(或某个指定的地址范围),从而隐藏了虚拟机的真实IP地址。

二、修改网络配置文件

网络接口的配置文件默认位于/etc/sysconfig/network-script/ifcfg-ens33

文件名格式为 "ifcfg-XXX",其中"XXX"是网络接口的名称。

例如,网卡 ens33 的配置文件是"ifcfg-ens33", 回环接口 lo 的配置文件是"ifcfg-lo"。

TYPE=Ethernet    #设置网卡类型,"Ethernet"表示以太网。
BOOTPROTO=static    #设置网络接口的配置方式,值为"static"时表示使用静态指定的 IP 地址,为"dhcp"时表示通过 DHCP 的方式动态获取地址。
DEVICE=ens33   #设置网络接口的名称
NAME=ens33     #设置网络接口的名称
UUID=01f717ed-f7ac-4ac0-a209-c7c5889e3635   #设备ID
ONBOOT=yes     #设置网络接口是否在 Linux 操作系统启动时激活。
IPADDR=192.168.10.9  #设置网络接口的 IP 地址。 
NETMASK=255.255.255.0  #设置网络接口的子网掩码。
GATEWAY=192.168.10.1  #设置网络接口的默认网关地址
DNS1=8.8.8.8       #设置域名解析服务器
DNS2=114.114.114.114

在 CentOS 7 操作系统中,当修改了网络接口的配置文件以后,若要使新的配置生效, 可以重新启动 network 服务或者重启主机

systemctl restart network

注:建议关闭NetworkManager服务,否则有时启动network会报错

systemctl stop NetworkManager #停止

systemctl disable NetworkManager #开机自动关闭

三、使用网络配置命令

3.1、网卡配置

ifconfig 命令不仅可以用于查看网卡配置,还可以修改网卡的 IP 地址、子网掩码,也可以绑定虚拟网络接口、激活或禁用网络接口。

有一个新的网卡设备 ens37

如果只是禁用、启用某一个网络 接口(而不是所有接口),可分别使用两个接口控制脚本

ifconfig ens37 down / up 或 ifup/ifdown ens37

为网卡绑定虚拟接口:在对服务器网络进行调试的过程中,有时候需要临时在同一个网卡上使用一个新的 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 地址所在分类的默认子网掩码

3.2、主机名设置

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

临时修改:hostname yc666

永久修改

hostnamectl set-hostname yc777 或者vim /etc/hostname

hostname -i

因为hosts文件没有对应的hostname解析IP地址,显示一堆乱七八糟的玩意儿

3.3、路由设置

路由表:Linux 操作系统中的路由表决定着从本机向其他主机、其他网络发送数据的去向,是排除网络故障的关键信息。

直接执行"route"命令可以查看当前主机中的路由表信息

当目标网段为"default"时,表示此行是默认网关记录;当下一跳为"gateway"时,表示目标网段是与本机直接相连的。

但是,直接执行"route"命令无法直接看出默认网关地址

route -n #查看路由,使用-n可以将路由记录中的地址显示为数字形式,这可以跳过解析主机名的过程,在路由表条目较多的情况下能够加快执行速度

Destination 列对应目标网段的地址

Gateway 列对应下一跳路由器的地址

Iface 列对应发送数据的网络接口

ip route show或者 ip route #查看路由配置

添加、删除静态路由记录

route 命令不仅可以用于查看路由表信息,还可用来添加、删除静态的路由表条目,其中也包括设置默认网关地址(默认网关记录是一条特殊的静态路由条目)

route add操作可以添加路由记录 ,#添加静态路由结合"-net"选项指定目标网段的地址 ,结合"gw"选项指定下一跳路由器的IP 地址

route add -net 192.168.3.0/24 gw 192.168.10.1 #表示可以通过192.168.10.1到192.168.3.0/24网络

route del 操作可以删除路由记录

route del -net 192.168.3.0/24

添加、删除默认网关记录,需要注意的是,在同一个主机的路由表中只应有一条默认网关记录。若同时存在多条默认网关记录,则可能导致该主机的网络连接出现故障。

添加、删除默认网关记录时,与添加、删除静态路由记录的命令格式类似,但指定目标网段时只需简单地使用"default"表示即可 (-net有-,gw没有)

route add default gw 网关ip

route del default gw 网关ip/route del default

3.4、natstat命名

netstat命令 | 查看当前操作系统的网络连接状态、路由表、接口统计等信息,它是了解网络状态及排除网络服务故障的有效工具

选项 描述
-n 以数字形式显示地址和端口号,不进行名称解析。
-r 显示路由表信息。
-a 显示所有选项,默认不显示LISTEN相关。
-l 仅显示监听服务状态。
-t 仅显示TCP连接。
-u 仅显示UDP连接。
-p 显示进程标识符和进程名称,需要root权限。

用法:①通常使用" -anpt "组合选项,以数字形式显示当前系统中所有的 TCP 连接信息,同时显示对应的进程信息

②配合管道符grep过滤出特定的记录

netstat -anpt | grep sshd

netstat -lnpt | grep sshd

[root@localhost ~]# netstat -lnpu | grep ntp

udp 0 0 192.168.122.1:123 0.0.0.0:* 65421/ntpd

udp 0 0 192.168.245.211:123 0.0.0.0:* 65421/ntpd

udp 0 0 127.0.0.1:123 0.0.0.0:* 65421/ntpd

udp 0 0 0.0.0.0:123 0.0.0.0:* 65421/ntpd

netstat -rn

查看全部的组合键是 anptlu

3.5、ss 命令

可以查看网络连接情况,主要用于获取 socket 统计信息,它可以显示和 netstat 命令类似的输出内容。但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快速更高效(但是大多数人习惯用netstat)

当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。

ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效

ss命令是Linux CentOS 7中iproute软件包的一部分,默认已经安装。

3.5.1、实验1

比较速度

time ss

time netstat -an

查看并发连接数ss和netstat对比

为什么ss比netstat快:

netstat是遍历/proc下面每个PID目录,ss直接读/proc/net下面的统计信息。所以ss执行的时候消耗资源以及消耗的时间都比netstat少很多

选项:

-h:--help 通过该选项获取更多的使用帮助。

-V:--version 显示软件的版本号。

-t:--tcp 显示 TCP 协议的 sockets。

-u:--udp 显示 UDP 协议的 sockets。

-n:--numeric 不解析服务的名称,如 "22" 端口不会显示成 "ssh"。

-l:--listening 只显示处于监听状态的端口。

-p:--processes 显示监听端口的进程。

-a: --all 对 TCP 协议来说,既包含监听的端口,也包含建立的连接。

-r: --resolve 把 IP 解释为域名,把端口号解释为协议名称。

-o选项可用于显示计时器信息

3.5.2、一些案例

ss -tn | grep -w 22

ss -o state 'established' | grep ssh #-o选项可用于显示计时器信息。该信息向我们展示了诸如重新传输计时器值、已经发生的重新传输的数量以及已发送的keepalive探测的数量

  • state 'established' 指定只显示状态为 established 的连接。established 状态表示连接已经成功建立,数据可以在两个方向上自由流动。

ss -t state established

套接字的其他状态,如 established, syn-sent, syn-recv, fin-wait-1, fin-wait-2, time-wait, closed, closed-wait, last-ack监听和关闭 等,这些状态代表了TCP连接的不同阶段。

ss -tnl sport le 500

port le 500 部分指定了源端口(source port,虽然在监听上下文中通常指的是端口号本身,因为监听套接字不区分源端口和目标端口)小于或等于(le)500的过滤条件。

四、测试网络连接

4.1、ping

使用 ping 命令可以向目标主机持续地发送测试数据包,并显示反馈结果,直到按 Ctrl +C 组合键后中止测试,并显示最终统计结果

若看到"Destination Host Unreachable"的反馈信息, 则表示目的主机不可达,可能目标地址不存在或者主机已经关闭;

若看到"Network is unreachable"的反馈信息,则表示没有可用的路由记录(如默认网关),无法达到目标主机 所在的网络。

当目标主机有严格的防火墙限制时,或者当网络中存在影响通信过程稳定性的因素(如网卡故障、病毒或网络攻击等)时,可能收到 "Request timeout"的反馈结果

4.1.1、案列

[root@localhost ~]# ping 192.168.10.10 #最常用是后面跟ip地址

[root@localhost ~]# ping www.baidu.com #后面还可跟域名

[root@localhost ~]# ping -c 2 192.168.10.10 #-c表示指定ping的次数

[root@localhost ~]# ping -c 10 -i 0.5 192.168.10.10 #-i 秒数:设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。

[root@shengjie ~]# ping -w 5 www.baidu.com #-w表示ping的超时时间为5s,意思是只ping5秒,5秒后结束

4.2、traceroute

跟踪数据包的路由途径:traceroute

若服务器上没有 traceroute 命令,可通过 yum 方式安装 traceroute 软件包

traceroute 命令可以用于测试从当前主机到目的主机之间经过了哪些网络结点,并显示各中间结点的连接状态(响应时间)。对于无法响应的结点,连接状态将显示为"*"

traceroute 192.168.10.10

traceroute 命令能够比 ping 命令更加准确地定位网络连接的故障点(中断点),因此执行速度会比 ping 命令稍慢。

在网络测试与排错过程中,通常会先使用 ping 命令测试与目的主机的网络连接,如果发现网络连接有故障,再使用 traceroute 命令跟踪查看是在哪个中 间结点存在故障。

4.3、域名解析

nslookup

下载 yum install -y bind-utils

nslookup www.baidu.com

#以下为 DNS 解析的反馈结果

4.3.1、域名解析配置文件

bind-utils 安装包

vi /etc/resolv.conf

resolv.conf 文件中的"search localdomain"行用来设置默认的搜索域(域名扩展名)。

例如,当访问主机"localhost"时,就相当于访问"localhost.localdomain"。

一行一个DNS,最多配置三个DNS

指定了两个DNS服务器:

  1. 114.114.114.114:这是一个由中国电信和清华大学等维护的公共DNS服务器,被很多中国用户用作替代默认DNS服务器的选择,因为它在国内访问速度较快,且提供了一定的安全过滤功能。

  2. 8.8.8.8:这是Google提供的公共DNS服务器,全球范围内广泛使用,以其解析速度快和安全性高著称。

/etc/resolv.conf 文件中记录了本机默认使用的 DNS 服务器的地址信息,对该文件所做 的修改将会立刻生效。Linux 操作系统中最多可以指定 3 个(第 3 个以后的将被忽略)不同 的 DNS 服务器地址,优先使用第一个 DNS 服务器。

4.3.2、本地主机映射文件

/etc/hosts 文件中记录着一份主机名与 IP 地址的映射关系表,一般用来保存经常需要访问的主机的信息。当访问一个未知的域名时,先查找该文件中是否有相应的映射记录,如果找不到再去向 DNS 服务器查询。

若在/etc/hosts 文件中添加"119.75.218.70 www.baidu.com"的映射记录,则当访问网站 www.baidu.com 时,将会直接向 IP 地址 119.75.218.70 发送 Web 请求,省略了向 DNS。

Dig是一个在类Unix命令行模式下查询DNS包括NS记录,A记录,MX记录等相关信息的工具,系统默认安装

对于经常访问的一些网站,可以通过在/etc/hosts 文件添加正确的映射记录,减少 DNS 查询过程,从而提高上网速度。当然,若添加了错误的映射记录,则可能导致网站访问出现异常。另外,因为 hosts 文件只保存在本地,所以其中的映射记录也只适用于当前主机,而无法作用于整个网络。

[root@localhost ~]# dig www.baidu.com #后跟域名直接查询

相关推荐
飞行的俊哥几秒前
Linux 内核学习 3b - 和copilot 讨论pci设备的物理地址在内核空间和用户空间映射到虚拟地址的区别
linux·驱动开发·copilot
幽兰的天空1 小时前
介绍 HTTP 请求如何实现跨域
网络·网络协议·http
lisenustc2 小时前
HTTP post请求工具类
网络·网络协议·http
心平气和️2 小时前
HTTP 配置与应用(不同网段)
网络·网络协议·计算机网络·http
心平气和️2 小时前
HTTP 配置与应用(局域网)
网络·计算机网络·http·智能路由器
hunter2062062 小时前
ubuntu向一个pc主机通过web发送数据,pc端通过工具直接查看收到的数据
linux·前端·ubuntu
qzhqbb2 小时前
web服务器 网站部署的架构
服务器·前端·架构
不会飞的小龙人2 小时前
Docker Compose创建镜像服务
linux·运维·docker·容器·镜像
不会飞的小龙人2 小时前
Docker基础安装与使用
linux·运维·docker·容器
Mbblovey2 小时前
Picsart美易照片编辑器和视频编辑器
网络·windows·软件构建·需求分析·软件需求