5、网络管理

网络状态查看

net-tools VS iproute

1、net-tools

  • ifconfig(注意,不是ipconfig,ipconfig是window的命令)
  • route
  • netstat

2、iproute2

  • ip
  • ss

查看网络配置

[root@rh9-001 ~]# ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:0c:d5:bf:f9  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.157.132  netmask 255.255.255.0  broadcast 192.168.157.255
        inet6 fe80::20c:29ff:fe5f:b814  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:5f:b8:14  txqueuelen 1000  (Ethernet)
        RX packets 1024801  bytes 1280244519 (1.1 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 480386  bytes 30942341 (29.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 334949  bytes 20109098 (19.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 334949  bytes 20109098 (19.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0



网卡接口命名修改

  • 网卡命名规则受biosdevname和net.ifnames两个参数影响
  • 编辑 /etc/default/grub文件,怎加biosdevname=0 net.ifnames=0
  • 更新grub
    • grub2-mkconfig -o /boot/grub2/grub.cfg
  • 重启
    • reboot

biosdevnamenet.ifnames网卡名
默认01ens33
组合110em1
组合200eth0
vim /etc/default/grub
// 以下是grub文件的内容,GRUB_CMDLINE_LINUX末尾新增 biosdevname=0 net.ifnames=0
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=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet biosdevname=0 net.ifnames=1"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
// 修改完成后更新grub
grub2-mkconfig -o /boot/grub2/grub.cfg
// 重启
reboot

查看网卡物理连接情况(网线连接)

  • mii-tool eth0

查看网关命令

  • 查看网关
    • route -n
    • 使用 -n参数不解析主机名
route -n
// 返回
[root@rh9-001 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.157.2   0.0.0.0         UG    100    0        0 ens160
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.157.0   0.0.0.0         255.255.255.0   U     100    0        0 ens160


网络配置

网络配置命令

  • ifconfig <接口> <IP地址> [netmask 子网掩码]
    • ifconfig eth0 192.168.157.36
  • ifup <接口> # 启动网卡
  • ifdown <接口> # 禁用网卡

网关配置命令

  • 添加网关
    • route add default gw <网关IP>
    • route add -host <指定IP> gw <网关IP>
    • route add -net <指定网段> netmask <子网掩码> gw <网关IP>

路由命令

网络故障排除

  • ping
    • 检测当前主机和目标主机是否畅通,查看是否出现网络中断或目标主机有防火墙的情况;
  • traceroute追踪路由
    • 检测当前主机和目标主机的网络状况;辅助ping命令使用,如果网络畅通,但是还是访问异常,可以使用traceroute来追踪主机的每个服务的网络质量;
  • mtr
    • 检测当前主机和目标主机之间是否有数据包丢失;辅助ping命令使用,如果网络畅通,但是还是访问异常,可以使用mtr来检查是否出现数据包丢失;
  • nslookup
    • 域名访问,通过nslookup 可以查看域名对应的IP是什么;
  • telnet
    • 主机可以访问,但是服务仍然异常,可以继续查看端口问题,使用telnet查看端口是否畅通;
telnet www.baidu.com 80
// 如果畅通则返回
Trying 183.240.98.161...
Connected to www.baidu.com.

// 退出使用 ctrl + ],然后输入 quit 退出telnet

  • tcpdump
    • 用于捕获和分析网络流量。抓包逐个检查;
    • tcpdump的常用选项包括:
      • -i指定要监听的网络接口。如果不指定,默认监听第一个非环回接口(如eth0)。
      • -n不解析主机名,直接显示 IP 地址。
      • -nn不解析主机名和端口号,直接显示 IP 地址和端口号。
      • -c <数量>捕获指定数量的数据包后退出。
      • -w <文件>将捕获的数据包保存到文件中(文件格式为.pcap)。
      • -r <文件>从文件中读取并分析数据包。
      • port <端口号>捕获指定端口号的数据包。
      • host <ip>捕获来自主机的数据包。
      • port <端口号> and host <ip>捕获指定主机和端口的数据包。
// 捕获所有网卡的数据包
tcpdump -i any
// 捕获所有网卡的数据包且不解析主机名,直接显示 IP 地址。
tcpdump -i any -n
// 捕获所有网卡的数据包且不解析主机名和端口,直接显示 IP 地址和端口号。
tcpdump -i any -nn
// 捕获任意网卡访问80端口的数据包;
tcpdump -i any -n port 80
// 捕获任意网卡访问指定ip和指定端口的数据包
tcpdump -i any -n host 10.0.0.1 and port 80
// 将捕获的数据包存储到文件中
tcpdump -i any -n host 10.0.0.1 and port 80 -w /tmp/filename


  • netstat

    用于查看网络连接、路由表、接口统计等信息。

    • 显示网络连接:可以查看当前的TCP和UDP连接,包括 Established、Listening、Closed等状态。

    • 显示路由表:查看系统的路由表,了解数据包是如何路由的。

    • 显示接口统计:查看网络接口的统计信息,如接收和发送的字节数、包数等。

    • 显示masquerade连接:在使用NAT时,可以查看被伪装的连接。

    • 显示多播成员列表:查看系统加入的多播组

    • netstat的常用选项包括:

      • -a:显示所有连接和监听端口。
      • -t:显示TCP连接。
      • -u:显示UDP连接。
      • -n:显示数字形式的地址和端口号,不进行反向解析。
      • -p:显示与连接相关的进程ID和程序名称。
      • -r:显示路由表。

      示例命令:

netstat-tuln
// 返回
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.0.1:4330          0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:44321         0.0.0.0:*               LISTEN     
tcp6       0      0 ::1:44321               :::*                    LISTEN     
tcp6       0      0 :::111                  :::*                    LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:4330                :::*                    LISTEN     
udp        0      0 127.0.0.1:323           0.0.0.0:*                          
udp        0      0 0.0.0.0:56943           0.0.0.0:*                          
udp        0      0 0.0.0.0:111             0.0.0.0:*                          
udp        0      0 0.0.0.0:5353            0.0.0.0:*                          
udp6       0      0 ::1:323                 :::*                               
udp6       0      0 :::42532                :::*                               
udp6       0      0 :::111                  :::*                               
udp6       0      0 :::5353                 :::*                               



    这个命令会显示所有监听的TCP和UDP端口,以及它们的IP地址和端口号。
  • ss(功能和netstat一样,但功能更强大,性能更高)

    • ss的常用选项包括:
      • -a:显示所有套接字。
      • -t:显示TCP套接字。
      • -u:显示UDP套接字。
      • -n:显示数字形式的地址和端口号,不进行反向解析。
      • -p:显示与套接字相关的进程ID和程序名称。
      • -r:显示路由表。

    示例命令:

ss -tuln
// 返回
Netid           State            Recv-Q           Send-Q                     Local Address:Port                      Peer Address:Port           Process           
udp             UNCONN           0                0                              127.0.0.1:323                            0.0.0.0:*                                
udp             UNCONN           0                0                                0.0.0.0:56943                          0.0.0.0:*                                
udp             UNCONN           0                0                                0.0.0.0:111                            0.0.0.0:*                                
udp             UNCONN           0                0                                0.0.0.0:5353                           0.0.0.0:*                                
udp             UNCONN           0                0                                  [::1]:323                               [::]:*                                
udp             UNCONN           0                0                                   [::]:42532                             [::]:*                                
udp             UNCONN           0                0                                   [::]:111                               [::]:*                                
udp             UNCONN           0                0                                   [::]:5353                              [::]:*                                
tcp             LISTEN           0                5                              127.0.0.1:4330                           0.0.0.0:*                                
tcp             LISTEN           0                4096                             0.0.0.0:111                            0.0.0.0:*                                
tcp             LISTEN           0                128                              0.0.0.0:22                             0.0.0.0:*                                
tcp             LISTEN           0                5                              127.0.0.1:44321                          0.0.0.0:*                                
tcp             LISTEN           0                5                                  [::1]:44321                             [::]:*                                
tcp             LISTEN           0                4096                                [::]:111                               [::]:*                                
tcp             LISTEN           0                128                                 [::]:22                                [::]:*                                
tcp             LISTEN           0                5                                  [::1]:4330                              [::]:*                                

这个命令与`netstat -tuln`类似,用于显示所有监听的TCP和UDP端口。

网络服务管理

  • 网络服务管理程序分为两种,分别为SysV和systemd
    • service network start|stop|restart
    • chkconfig -list network
    • systemctl list-unit-files NetworkManager.service
    • systemctl start|stop|restart NewworkManager
    • systemctl enable|disable NetworkManager

常用网络配置文件

  • ifcfg-eth0
  • /etc/hosts

网络配置存放地址

  • /etc/sysconfig/network-scripts
    • 该目录下有对应的网卡配置文件,ifcfg-<网卡名>
  • /etc/hosts
    • 当使用命令hostnamectl set-hostname <主机名> 后,需要在/etc/hosts文件中新增新主机名的解析127.0.0.1 <主机名>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gene Z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值