linux网络服务

发布时间 2023-11-12 23:10:24作者: 一个低调的wy

linux网络服务

1. 网络配置命令

1.1 查看网络接口信息 ifconfig

ifconfig

[root@localhost ~]# ifconfig
# 直接输入 ifconfig 显示活动的网卡

image-20231109142800915

ifconfig -a

[root@localhost ~]# ifconfig -a
# ifconfig 查看所有网卡

image-20231109142609689

ifconfig ens33

[root@localhost ~]# ifconfig ens33
# 查看指定网卡信息

[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.32.11  netmask 255.255.255.0  broadcast 192.168.32.255
        inet6 fe80::58fa:a7f6:1a19:f5e1  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:e4:94:f4  txqueuelen 1000  (Ethernet)
        RX packets 9965  bytes 692444 (676.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1470  bytes 147802 (144.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@localhost ~]# 

UP         网卡接口已启动
BROADCAST  支持广播
RUNNING    正在运行
MULTICAST  支持组播,混杂模式
mtu 1500   最大传输1500字节

inet6 fe80::58fa:a7f6:1a19:f5e1  IPv6地址
prefixlen 64                     子网长度
scopeid 0x20<link>               作用域,表示仅对该接口有效

ether 00:0c:29:e4:94:f4   mac地址
txqueuelen 1000           传输队列最大长度(传输缓存大小),比如当网卡同一时间接收了1500数据后,再有数据进来就要排队
(Ethernet)                接口类型

RX                         接收
packets 9965               报文个数
bytes 692444 (676.2 KiB)   总和字节数

RX          接收
errors 0    错误个数
dropped 0   丢弃个数,当数据排队也排满了后,再来的数据就会被丢弃
overruns 0  溢出个数
frame 0     冲突帧数

TX                        发送
packets 1470              报文个数
bytes 147802 (144.3 KiB)  总字节数

TX             发送
errors 0       错误
dropped 0      丢弃
overruns 0     溢出
carrier 0      载荷数
collisions 0   冲突书

image-20231109151720834

为什么centos 6的网卡名用eth0,而centos 7的网卡名用ens33呢

​ centos 6 eth0,自定义网卡名,可以随便取

​ centos 7 ens33,表示以太网在该主板上的33号接口

​ "ens33"中的“en”表示 EtherNet,以太网(局域网的一种),互联网类型为以太网;“s”表示热插拔插槽上的设备(hot-plug Slot),数字“33”表示插槽编号

​ 但是在生产环境中,我们还是把网卡改为eth0,为了统一标准,方便管理,为了自动化运维

开启或关闭网卡

ifconfig 网卡名  up        启动网卡
ip  link  set  网卡名  up  关闭网卡
[root@localhost ~]# ifconfig ens36 down
[root@localhost ~]# ip link set ens36 down


ifconfig  网卡名   down      关闭网卡
ip  link  set  网卡名  down  关闭网卡
[root@localhost ~]# ifconfig ens36 up
[root@localhost ~]# ip link set ens36 up


临时设置IP地址

ifconfig  网卡名  IP地址/子网掩码 
[root@localhost ~]# ifconfig ens36 192.168.32.16/24
[root@localhost ~]# ping 192.168.32.16
PING 192.168.32.16 (192.168.32.16) 56(84) bytes of data.
64 bytes from 192.168.32.16: icmp_seq=1 ttl=64 time=0.050 ms
64 bytes from 192.168.32.16: icmp_seq=2 ttl=64 time=0.061 ms
^C
--- 192.168.32.16 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.050/0.055/0.061/0.009 ms
[root@localhost ~]#  


临时为网卡设置IP地址,只能被使用一次,使用完一次后失效

设置虚拟网卡

ifconfig  网卡名:0  IP地址/子网掩码
[root@localhost ~]# ifconfig ens36:0 192.168.32.16/24
[root@localhost ~]# ping 192.168.32.16
PING 192.168.32.16 (192.168.32.16) 56(84) bytes of data.
64 bytes from 192.168.32.16: icmp_seq=1 ttl=64 time=0.031 ms
64 bytes from 192.168.32.16: icmp_seq=2 ttl=64 time=0.078 ms
^C
--- 192.168.32.16 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.031/0.054/0.078/0.024 ms


临时设置虚拟网卡,临时测试使用,重启后该IP地址失效

网络通信情况

[root@localhost ~]# ifconfig -s
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33     1500      228      0      0 0           143      0      0      0 BMRU
ens36     1500      103      0      0 0            48      0      0      0 BMRU
lo       65536      104      0      0 0           104      0      0      0 LRU
virbr0    1500        0      0      0 0             0      0      0      0 BMU
[root@localhost ~]# 


查看网卡的通讯情况

nmcli

nmcli 修改IP地址,网关等信息

1.2 ip

link表示链路层,link可以简写为 l 或 li 或 lin
ip l  查看所有的网络设备(因为是链路层,只显示MAC地址)。其中,lo、ens33 等是真实的物理设备,通过 ip l add 命令创建的都是虚拟设备。

# ip link
[root@localhost ~]# ip link 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:e4:94:f4 brd ff:ff:ff:ff:ff:ff
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT qlen 1000
    link/ether 52:54:00:3d:83:52 brd ff:ff:ff:ff:ff:ff
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN mode DEFAULT qlen 1000
    link/ether 52:54:00:3d:83:52 brd ff:ff:ff:ff:ff:ff
5: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:e4:94:fe brd ff:ff:ff:ff:ff:ff
[root@localhost ~]# 

修改网卡名称

① 临时修改

# 先将网卡关闭
ip link set ens36 down
# 然后给该网卡改名
ip link set ens36 name ab
# 最后再启动网卡
ip link set ab up


[root@localhost ~]# ip link set ens36 down
[root@localhost ~]# ifconfig ens36
ens36: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether 00:0c:29:e4:94:fe  txqueuelen 1000  (Ethernet)
        RX packets 2186  bytes 132747 (129.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 488  bytes 85872 (83.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@localhost ~]# ip link set ens36 name ab
[root@localhost ~]# ifconfig ab
ab: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::c253:badf:d7b0:67b8  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:e4:94:fe  txqueuelen 1000  (Ethernet)
        RX packets 2191  bytes 133047 (129.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 496  bytes 87096 (85.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


# 临时网卡改名总结
先关闭网卡
然后改名
再启动

② 永久修改网卡名称

vim /etc/default/grub
net.ifnames=0
grub2-mkconfig  -o  /boot/grub2/grub.cfg
-----------------------------------------------------------------------
[root@localhost ~]# vim /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet net.ifnames=0"
GRUB_DISABLE_RECOVERY="true"
# 一定要在 GRUB_CMDLINE_LINUX 这一行的最后面添加 net.ifnames=0

[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg 
grub2-mkconfig  重新生成 grub.cfg 文件

[root@localhost ~]# reboot

[root@localhost ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::f604:49fb:b86f:a994  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:e4:94:f4  txqueuelen 1000  (Ethernet)
        RX packets 65  bytes 7026 (6.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 27  bytes 5010 (4.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
NAME=eth0    # 删除
DEVICE=eth0

[root@localhost ~]# systemctl restart network

[root@localhost ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.32.11  netmask 255.255.255.0  broadcast 192.168.32.255
        inet6 fe80::7b3f:f958:459e:6266  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:e4:94:f4  txqueuelen 1000  (Ethernet)
        RX packets 180  bytes 21541 (21.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 135  bytes 19028 (18.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ip address

address可以简写为 a

# ip a 查看所有网卡的IP地址
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:e4:94:f4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.32.11/24 brd 192.168.32.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::58fa:a7f6:1a19:f5e1/64 scope link 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 52:54:00:3d:83:52 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
    link/ether 52:54:00:3d:83:52 brd ff:ff:ff:ff:ff:ff
5: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:e4:94:fe brd ff:ff:ff:ff:ff:ff
    inet6 fe80::4678:1425:a871:930a/64 scope link 
       valid_lft forever preferred_lft forever
[root@localhost ~]# 



# 查看指定网卡的IP地址
[root@localhost ~]# ip address show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:e4:94:f4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.32.11/24 brd 192.168.32.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::58fa:a7f6:1a19:f5e1/64 scope link 
       valid_lft forever preferred_lft forever
       
[root@localhost ~]# ip a show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:e4:94:f4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.32.11/24 brd 192.168.32.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::58fa:a7f6:1a19:f5e1/64 scope link 
       valid_lft forever preferred_lft forever
[root@localhost ~]# 

ip route

route 可以简写为 r 或 ro 或 rou

# ip r  查看所有静态路由
[root@localhost ~]# ip r
default via 192.168.32.2 dev ens33 proto static metric 100 
192.168.32.0/24 dev ens33 proto kernel scope link src 192.168.32.11 metric 100 
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 
[root@localhost ~]# 

[root@localhost ~]# ip route
default via 192.168.32.2 dev ens33 proto static metric 100 
192.168.32.0/24 dev ens33 proto kernel scope link src 192.168.32.11 metric 100 
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 
[root@localhost ~]# 

1.3 开启路由转发功能

[root@localhost ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
[root@localhost ~]# sysctl  -p   # 查看修改后的配置
net.ipv4.ip_forward = 1
[root@localhost ~]# 

1.4 文件

/etc/hostname 主机名

/etc/hosts 域名解析文件,优先级最高

/etc/resolv.conf 域名解析服务器地址,保存本机需要使用的dns服务器IP地址

route -n 怎么看网关

ifconfig 看IP地址

nslookup 解析域名

1.5 网络接口配置文件

第一块以太网卡的配置文件位置:/etc/sysconfig/network-scripts/ifcfg-ens33

配置IP地址

vim /etc/sysconfig/network-scripts/ifcfg-ens33
------------------------------------------------------------
# 以下配置是最简配置,都是必不可少
BOOTPROTO=static
ONBOOT=yes
DEVICE=ens33
IPADDR=192.168.32.11
NETMASK=255.255.255.0
# PREFIX=24
GATEWAY=192.168.32.2
DNS1=114.114.114.114 

# 重启网络服务
systemctl restart network

# 禁用、启用网络接口
ifdown ens33
ifup ens33

1.6 修改主机名 hostname

临时修改主机名

[root@localhost test]# hostname h1  # 临时修改主机名
[root@localhost test]# su
[root@h1 test]# 

永久修改主机名

[root@localhost test]# hostnamectl set-hostname test1   # 永久修改主机名
[root@localhost test]#reboot     # 重启后,更改主机名
[root@test1 ~]# 


[root@localhost ~]# vim /etc/hostname    # 永久修改主机名
test           # 只有第一个生效
localhost                   
[root@localhost test]#reboot    # 重启刷新主机名
[root@test ~]# 

centos 6 上永久修改主机名

vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain

1.7 查看网卡信息 ethtool

ethtool -i ens33 查看指定网卡的信息

[root@localhost ~]# ethtool -i ens33
driver: e1000
version: 7.3.21-k8-NAPI
firmware-version: 
expansion-rom-version: 
bus-info: 0000:02:01.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
[root@localhost ~]# 

ethtool -p ens33

[root@localhost ~]# ethtool -p ens33   # 让 ens33 网卡快速闪烁,在机房方便找到网卡
^C
[root@localhost ~]# 

1.8 查看路由表条目 route

route 查看静态路由

[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    100    0        0 ens33
192.168.32.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@localhost ~]# 


Gateway   既是下一跳地址,也是网关

route -n 以数字形式查看静态路由

[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.32.2    0.0.0.0         UG    100    0        0 ens33
192.168.32.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@localhost ~]# 

route del -net 0.0.0.0/0

或者 route del default


route add -net IP地址 gw 下一跳地址

[root@localhost ~]# route add -net 192.168.31.0/24 gw 192.168.32.2
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.32.2    0.0.0.0         UG    100    0        0 ens33
192.168.31.0    192.168.32.2    255.255.255.0   UG    0      0        0 ens33
192.168.32.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@localhost ~]# 

1.9 查看网络连接情况 netstat

选项

-a  显示主机中所有活动的网络连接信息
-n  以数字的形式显示相关的主机地址、端口等信息
-t  查看tcp(传输控制协议)相关的信息,只显示tcp协议
-u  查看udp(用户数据报协议)相关的信息,只显示udp协议
-p  显示与网络连接相关的进程号、进程名称信息(该选项需要root权限)

-a  所有
-r  显示路由表信息
-l  显示处于监听状态的网络连接及端口信息

用法

[root@localhost ~]# netstat -antp | grep tcp
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1351/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1038/sshd           
[root@localhost ~]#

1.10 查看网络连接情况 ss

socket statistics

选项

-a  显示主机中所有活动的网络连接信息
-n  以数字的形式显示相关的主机地址、端口等信息
-t  查看tcp(传输控制协议)相关的信息,只显示tcp协议
-u  查看udp(用户数据报协议)相关的信息,只显示udp协议
-p  显示与网络连接相关的进程号、进程名称信息(该选项需要root权限)

-a  所有
-r  显示路由表信息
-l  显示处于监听状态的网络连接及端口信息

用法

[root@localhost ~]# ss -antp | head -n 5
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN     0      128          *:111                      *:*         users:(("systemd",pid=1,fd=45))
LISTEN     0      5      192.168.122.1:53                 *:*         users:(("dnsmasq",pid=1351,fd=6))
LISTEN     0      128          *:22                       *:*         users:(("sshd",pid=1038,fd=3))
LISTEN     0      128    127.0.0.1:631                    *:*         users:(("cupsd",pid=1036,fd=12))




State  状态,tcp的11中状态机
Address:Port  IP地址和端口号
Peer Address:Port   进程

netstat与ss的总结

ss 更靠近socket文件

netstat 遍历/proc/net/tcp文件

​ ss,是查看网络连接情况,主要用于获取socket(内核态)统计信息,能够显示更多更详细的有关TCP和连接状态的信息

​ netstat,也是查看网络连接情况,它是遍历"/proc/net/tcp"文件里面的内容

​ 当服务器的链接数(socket)变得很多时,ss就会比netstat更加快速,更加高效;当链接数很少时,ss和netstat速度差不多

使用time来比较netstat与ss

[root@localhost ~]# time netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN     
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN     
tcp        0     36 192.168.32.11:22        192.168.32.1:61975      ESTABLISHED
tcp        0      0 192.168.32.11:22        192.168.32.1:61805      LISTEN     

real	0m0.004s
user	0m0.000s
sys	0m0.004s



[root@localhost ~]# time ss -ant
State       Recv-Q Send-Q Local Address:Port                Peer Address:Port              
LISTEN      0      128                *:111                            *:*                  
LISTEN      0      5      192.168.122.1:53                             *:*                                   
ESTAB       0      36     192.168.32.11:22                  192.168.32.1:61975              
ESTAB       0      0      192.168.32.11:22                  192.168.32.1:61805                 

real	0m0.004s
user	0m0.000s
sys	0m0.004s

1.11 ping

检测网络连通性

选项

-c      ping多少个包,就是ping多少次
-w      等待时间
crtl+c  停止ping

ping -c

ping -c 3 192.168.32.12    # -c ping几次

[root@localhost ~]# ping 192.168.32.12 -c 3
PING 192.168.32.12 (192.168.32.12) 56(84) bytes of data.
64 bytes from 192.168.32.12: icmp_seq=1 ttl=64 time=1.19 ms
64 bytes from 192.168.32.12: icmp_seq=2 ttl=64 time=0.703 ms
64 bytes from 192.168.32.12: icmp_seq=3 ttl=64 time=1.08 ms

--- 192.168.32.12 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.703/0.993/1.196/0.210 ms
[root@localhost ~]# 

ping -w

ping 192.168.32.12 -w 10   # -w  等待10秒

1.12 traceroute

路由追踪

traceroute IP地址

[root@localhost ~]# traceroute 192.168.32.12
traceroute to 192.168.32.12 (192.168.32.12), 30 hops max, 60 byte packets
 1  192.168.32.12 (192.168.32.12)  0.482 ms !X  0.472 ms !X  1.171 ms !X
[root@localhost ~]# 

1.13 域名解析

nslookup 域名 域名解析

[root@localhost ~]# nslookup www.baidu.com
Server:		114.114.114.114
Address:	114.114.114.114#53

Non-authoritative answer:
www.baidu.com	canonical name = www.a.shifen.com.
Name:	www.a.shifen.com
Address: 153.3.238.102
Name:	www.a.shifen.com
Address: 153.3.238.110

dig 域名 域名解析

[root@localhost ~]# dig www.baidu.com

; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27567
;; 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.		1064	IN	CNAME	www.a.shifen.com.
www.a.shifen.com.	73	IN	A	153.3.238.102
www.a.shifen.com.	73	IN	A	153.3.238.110

;; Query time: 21 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: 四 11月 09 21:18:40 CST 2023
;; MSG SIZE  rcvd: 101

域名解析的过程

① 先访问域名服务器,域名服务器会告诉你百度的IP地址

② 然后你再用IP地址访问百度

1.14 内容分发网络 cdn

1.15 抓包 tcpdump

格式

tcpdump option proto   dir       type
tcpdump  选项   协议  数据的方向  抓取的数据类型

proto(协议)
1. tcp  udp  icmp
2. ip  ipv6
3. arp

dir(方向)
1. src  源
2. dst  目的
3. src and dst  源和目的(默认)

type(类型)
1. host 主机
2. net  网段
3. port 端口
4. port range 端口范围

支持:and、or

tcpdump -i ens33 -nnn

[root@localhost ~]# tcpdump -i ens33 -nn   # -n、-nn、-nnn
# 抓包,只抓ens33网卡的包

22:07:34.913121 IP 192.168.32.1.53021 > localhost.localdomain.ssh: Flags [.], ack 1170877, win 4095, length 0
22:07:34.913128 IP localhost.localdomain.ssh > 192.168.32.1.53021: Flags [P.], seq 1171153:1171317, ack 180, win 261, length 164

host选项

主机2  ping   主机1 

[root@localhost data]#tcpdump -i ens33  host 192.168.91.101
#只关心 和 192.168.91.101 有关的流量

dst 选项 目的地址 src 选项 源地址

[root@localhost ~]#tcpdump -i ens33  dst 192.168.91.101
[root@localhost ~]#tcpdump -i ens33  src 192.168.91.101

net 选项 tcpdump net 192.168.91.0/24

[root@localhost ~]#tcpdump net 192.168.91.0/24 -i ens33

控制方向
[root@localhost ~]#tcpdump -i ens33  src net 192.168.91.0/24
[root@localhost ~]#tcpdump -i ens33  dst net 192.168.91.0/24
基于端口过滤

port 端口号 tcpdump port 80

[root@localhost ~]#tcpdump -i ens33 port 80

or

[root@localhost ~]#tcpdump -i ens33 port 80 or port 22
#80 和 22 端口

[root@localhost ~]#tcpdump -i ens33  src port 80 or port 22
[root@localhost ~]#tcpdump -i ens33  dst port 80 or port 22

范围的端口

[root@localhost ~]#tcpdump -i ens33 portrange 80-8080
#80 和 22 端口

[root@localhost ~]#tcpdump -i ens33  src portrange 80-8080
[root@localhost ~]#tcpdump -i ens33  dst portrange 80-8080
基于协议

protocal

协议种类:ip arp icmp tcp udp

应用层协议不可以直接抓取

[root@localhost ~]#ping  www.baidu.com
[root@localhost ~]#tcpdump -i ens33 icmp
常见参数

-i 指定监听网络监听端口

[root@localhost ~]#tcpdump -i ens33
[root@localhost ~]#tcpdump -i any

1.16 Bond

多网卡绑定

实现高可用、负载均衡

实验

bond实现多网卡绑定

准备两块物理网卡,一个虚拟网卡

/etc/sysconfig/network-scripts/ifcfg-bond0
TYPE=bond
NAME=bond0
BOOTPROTO=static
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.32.15
PREFIX=24
GATEWAY=192.168.32.2
DNS1=114.114.114.114
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"
#miimon指定链路监测时间间隔。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路


/etc/sysconfig/network-scripts/ifcfg-ens33
NAME=ens33
DEVICE=ens33
BOOTPROTO=static
MASTER=bond0
SLAVE=yes
NOBOOT=yes


/etc/sysconfig/network-scripts/ifcfg-ens36
NAME=ens36
DEVICE=ens36
BOOTPROTO=static
MASTER=bond0
SLAVE=yes
NOBOOT=yes


查看bond0状态
cat /proc/net/bonding/bond0


删除bond0
ifconfig bond0 down
rmmod bonding

系统调优

做Bonding

统一主机名

统一网卡名称

内核调优

​ 开启路由转发功能

掌握

修改主机名   hostnamectl   set

查看系统连接状态   ss  -antp

添加路由  route  add -net  192.168.32.0/24  gw  192.168.32.2

删除路由  route  del  -net  192.168.32.0/24

修改网卡配置
DEVICE
BOOTPROTO
ONBOOT
IPADDR
NETMASK(PREFIX)
GATEWAY
DNS1

绑定网卡  bond

抓包  tcpdump

排障工具
ping
traceroute
ss
nmap
ifconfig

修改网卡名

作业
永久添加路由

故障案例

xshell连不上虚拟机?

第一步:虚拟机ping百度,看是否能ping通

image-20231109140025120

ping百度成功,说明 /etc/sysconfig/network-scripts/ifcfg-ens33 配置文件没有问题

第二步:在虚拟机使用ssh尝试连接

image-20231109140413896

第三步:考虑是否是真机的问题

XShell是装在真机上面的,说明真机上面有问题

因为我们使用了VM8,NAT模式,查看DHCP服务器是开启还是关闭;

​ 如果dhcp是开启,那么真机上面的vm8使用自动获取IP地址;

​ 如果dhcp是关闭,那么真机上面的vm8必须使用手动获取IP地址

image-20231109135016699

因为这里将dhcp去掉,没有使用DHCP,所以检查真机的vm8配置信息

image-20231109141142005

image-20231109141254814

​ 可以看到真机上vm8使用的是自动获取IP地址,但是我们又把dhcp服务器关闭了,所以vm8获取了一个169.254.X.X网段的IP地址,这是一个错误的IP地址,所以导致了连不上XShell

​ 修改真机的VM8模式的IPv4为手动获取IP地址,输入相应的IP地址

image-20231109141656809

XShell尝试再次连接虚拟机

image-20231109142208961