主机的网络接口卡(网卡)通常称为网络接口
在 Linux 操作系统中,使用 ifconfig 命令可以查看网络接口的地址配置信息
若采用 mini 版 CentOS 7 安装的系统,默认是没有 ifconfig 命令的,需要先通过 yum 方式安装 net-tools 软件包,才有 ifconfig 命令
ens33
第一块以太网卡的名称,“ens33”中的“en”是“EtherNet”的缩写,表示网卡类型为以太网,“s”表示热插拔插槽上的设备(hot-plug Slot),数字“33”表示插槽编号
ifconfig #显示已启用的网络接口,不包括禁用的设备
inet 192.168.126.15 #ip地址
netmask 255.255.255.0 #子网掩码
broadcast 192.168.126.255 #广播地址
ether 00:0c:29:8e:38:02 #mac地址
第一行:以太网卡的名字不是常见的eth0,变成了ens33。其中en代表以太网卡
ens33代表PCI接口的物理位置为(0,3), 其中横座标代表bus,纵座标代表slot
UP:代表此网络接口为启用状态(down为关闭状态)
RUNNING:代表网卡设备已连接
MULTICAST:表示支持组播
mut:为数据包最大传输单元,每个网络设备都有自己的mtu,默认为1500
第二行:网卡的IP地址、子网掩码、广播地址
第三行:IP v6地址
第四行:Ethernet(以太网)表示连接类型;
ether:表示为网卡的MAC地址
RX:接受数据包个数、大小统计信息
RX:异常接受包的个数、如丢包量、错误等
TX:发送数据包个数、大小统计信息
TX:发送包的个数、如丢包量、错误等
ifconfig ens33 #只查看网卡 ens33 的配置信息
ifconfig -a #显示所有活动及非活动的连接
lo
“回环”网络接口,“lo”是“loopback”的缩写,它不代表真正的网络接口,而是一个虚拟的网络接口,其 IP 地址默认是“127.0.0.1”,子网掩码为8位,回环地址通常仅用于对本机的网络测试
用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。比如把 HTTPD服务器的指定到回坏地址,在浏览器输入 127.0.0.1 就能看到你所架WEB网站了。但只是您能看得到,局域网的其它主机或用户无从知道
virbr0
一个虚拟的网络连接端口,默认为0号虚拟网络连接端口;一般在通过虚拟机进行移植操作系统时,默认会以nat的网络地址转移,但是可以选择桥接或者是无网络连接也是可以的(因为本人用的是centos镜像的虚拟机,所以会有这一行)
在 CentOS 7 操作系统中,当修改了网络接口的配置文件以后,若要使新的配置生效, 可以重新启动 network 服务或者重启主机 systemctl restart network
注:建议关闭NetworkManager服务,否则有时启动network会报错
systemctl stop NetworkManager
systemctl disable NetworkManager
ifconfig ens37 192.168.10.20 netmask 255.255.255.0 #临时配置网卡的ip地址
ifconfig ens37 192.168.10.20/24 #当不指定子网掩码时,将使用 IP 地址所在分类的默认子网掩码
如果只是禁用、启用某一个网络接口(而不是所有接口),可分别使用两个接口控制脚本 ifdown、ifup
为网卡绑定虚拟接口:在对服务器网络进行调试的过程中,有时候需要临时在同一个网卡上使用一个新的 IP 地址,但是又不能覆盖原有 IP 地址而导致服务程序不可用。
这时可以为网卡绑定一个虚拟的网络接口,然后为虚拟接口设置新的 IP 地址(相当于一块网卡配多个 IP 地址)。
[root@localhost ~]# hostname xjj #临修改时主机名称
[root@localhost ~]hostnamectl set-hostname xjj #永久修改主机名称
或
vim /etc/hostname #自行添加主机名,设置完后需重启系统才能生效
hostname -i #查看本主机ip
[root@localhost ~]# 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
- Destination 列对应目标网段的地址,当目标网段为“default”时,表示此行是默认网关记录
- Gateway 列对应下一跳路由器的地址,当下一跳为“gateway”时,表示目标网段是与本机直接相连的
- Iface 列对应发送数据的网络接口
- 目标网段为“0.0.0.0”时表示此行为默认网关记录
- 下一跳是“0.0.0.0”时表示目标网段与本主机直连
[root@localhost ~]# 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
[root@localhost ~]# 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
[root@localhost ~]# ip route
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
-n | 以数字的形式显示相关的主机地址、端口等信息 |
---|---|
-r | 显示路由表信息 |
-a | 显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口) |
-l | 显示处于监听(Listenin状态的网络连接及端口信息 |
-t | 查看 TCP(Transmission Control Protocol,传输控制协议)相关的信息 |
-u | 显示 UDP(User Datagram Protocol,用户数据报协议)协议相关的信息 |
-p | 显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限) |
用法:①通常使用“-anpt”组合选项,以数字形式显示当前系统中所有的 TCP 连接信息,同时显示对应的进程信息
②配合管道符grep过滤出特定的记录
[root@localhost ~]# netstat -anpt | grep sshd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6860/sshd
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 9904/sshd: root@pts
tcp 0 52 192.168.245.211:22 192.168.245.1:64550 ESTABLISHED 9904/sshd: root@pts
tcp6 0 0 :::22 :::* LISTEN 6860/sshd
tcp6 0 0 ::1:6010 :::* LISTEN 9904/sshd: root@pts
[root@localhost ~]#
[root@localhost ~]# netstat -lnpt | grep sshd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6860/sshd
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 9904/sshd: root@pts
tcp6 0 0 :::22 :::* LISTEN 6860/sshd
tcp6 0 0 ::1:6010 :::* LISTEN 9904/sshd: root@pts
[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
[root@localhost ~]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt 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 0 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
ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快速更高效
当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。
ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效
ss命令是Linux CentOS 7中iproute软件包的一部分,默认已经安装
[root@localhost ~]# time ss
real 0m0.012s
user 0m0.003s
sys 0m0.005s
[root@localhost ~]# time netstat -an
real 0m0.027s
user 0m0.001s
sys 0m0.006s
查看并发连接数ss和netstat对比
[root@shengjie ~]# time netstat -ant | grep EST | wc -l
0
real 0m0.002s
user 0m0.002s
sys 0m0.002s
[root@shengjie ~]# time ss -o state established | wc -l
711
real 0m0.013s
user 0m0.003s
sys 0m0.003s
为什么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 解释为域名,把端口号解释为协议名称 |
[root@centos7 ~]# ss -tn | grep -w 22
ESTAB 0 0 192.168.245.151:22 192.168.245.152:35318
ESTAB 0 21800 192.168.0.105:22 192.168.0.103:61488
ESTAB 0 0 192.168.0.105:22 192.168.0.103:61491
[root@localhost ~]# ss -o state 'established' | grep ssh #-o选项可用于显示计时器信息。该信息向我们展示了诸如重新传输计时器值、已经发生的重新传输的数量以及已发送的keepalive探测的数量
tcp 0 52 192.168.245.211:ssh 192.168.245.1:64550 timer:(on,234ms,0)
[root@localhost ~]# ss -t state established #established, syn-sent, syn-recv, fin-wait-1, fin-wait-2, time-wait, closed, closed-wait, last-ack监听和关闭等状态
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 52 192.168.245.211:ssh 192.168.245.1:64550
[root@shengjie ~]# ss -tnl sport le 500
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:111 *:*
LISTEN 0 5 192.168.122.1:53 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 :::111 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
[root@xjj ~]# ping baidu.com #后面还可跟域名
PING www.a.shifen.com (180.101.49.12) 56(84) bytes of data.
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=1 ttl=128 time=58.0 ms
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=2 ttl=128 time=48.4 ms
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=3 ttl=128 time=52.0 ms
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=4 ttl=128 time=41.2 ms
64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=5 ttl=128 time=47.5 ms
^C
--- www.a.shifen.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4008ms
rtt min/avg/max/mdev = 41.227/49.484/58.045/5.535 ms
ping -c 10 192.168.126.15 #-c表示指定ping的次数
ping -c 10 -i 0.5 192.168.126.15 #-i 秒数:设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次
ping -w 5 www.baidu.com #表示ping的超时时间为5s,意思是只ping5秒,5秒后结束
[root@localhost ~]# ping 192.168.10.11
PING 192.168.10.11 (192.168.10.11) 56(84) bytes of data.
From 192.168.10.9 icmp_seq=1 Destination Host Unreachable
From 192.168.10.9 icmp_seq=2 Destination Host Unreachable
From 192.168.10.9 icmp_seq=3 Destination Host Unreachable
From 192.168.10.9 icmp_seq=4 Destination Host Unreachable
From 192.168.10.9 icmp_seq=5 Destination Host Unreachable
From 192.168.10.9 icmp_seq=6 Destination Host Unreachab
[root@xjj ~]# traceroute www.baidu.com
traceroute to www.baidu.com (180.101.49.11), 30 hops max, 60 byte packets
1 gateway (192.168.126.2) 0.088 ms 0.037 ms 0.024 ms
traceroute命令能比ping命令更加准确的定位网络连接的故障点(中断点),执行命令也会比ping稍慢一点
在网络测试与排错过程中,通常会先试用ping命令测试与目的主机的网络连接,如果发现有故障,再来使用traceroute命令跟踪查看故障在哪个中间节点,也是记得按Ctrl+C终止
两种方式:临时配置和永久配置
软件包的名字就可以使用 yum install -y bind-utils
当域名解析出现异常的时候,将无法再使用域名的形式来访问网络中的Web站点、电子邮件系统等服务
nslookup是专门用来测试域名解析的专用工具,使用时只要指定要解析的目标域名作为参数即可
nslookup 目标主机地址 [DNS服务器地址]
[root@xjj ~]# nslookup www.baidu.com
Server: 192.168.126.2 #所使用的的DNS服务器
Address: 192.168.126.2#53 #DNS的服务器IP地址和端口号
Non-authoritative answer: #以下为DNS解析的反馈结果
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com #解析的IP地址
Address: 180.101.49.11
Name: www.a.shifen.com
Address: 180.101.49.12
vi /etc/resolv.conf
search localdomain #设置默认的搜索域(域名扩展名),当访问主机“localhost”时,就相当于访问“localhost.localdomain”
nameserver 202.106.0.20
nameserver 202.106.148.1
/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 文件只保存在本地,所以其中的映射记录也只适用于当前主机,而无法作用于整个网络
果找不到再去向 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 文件只保存在本地,所以其中的映射记录也只适用于当前主机,而无法作用于整个网络
[外链图片转存中…(img-sdpwNYbP-1629652355025)]