当前位置 博文首页 > Linux网络设置详情

    Linux网络设置详情

    作者:姜姜是美女 时间:2021-09-13 17:57

    目录
    • Linux网络设置
      • 一、查看网络配置接口
        • 1.查看网络接口信息—ifconfig
        • 2.修改网络配置文件
        • 3.设置网络接口参数 ifconfig
        • 4.查看主机名称—hostname
        • 5.查看路由表条目route
        • 6.查看网络连接情况-netstat
        • 7.获取socket统计信息-ss
      • 二、测试网络连接
        • 1.测试网络连通性—ping
        • 2.跟踪数据包的路由途径—traceroute
        • 3.测试DNS域名解析—nslookup
        • 4.域名配置文件
        • 5.本地主机映射文件

    Linux网络设置

    一、查看网络配置接口

    1.查看网络接口信息—ifconfig

    主机的网络接口卡(网卡)通常称为网络接口

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

    IO

    “回环”网络接口,“lo”是“loopback”的缩写,它不代表真正的网络接口,而是一个虚拟的网络接口,其 IP 地址默认是“127.0.0.1”,子网掩码为8位,回环地址通常仅用于对本机的网络测试

    用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。比如把 HTTPD服务器的指定到回坏地址,在浏览器输入 127.0.0.1 就能看到你所架WEB网站了。但只是您能看得到,局域网的其它主机或用户无从知道

    virbr0

    一个虚拟的网络连接端口,默认为0号虚拟网络连接端口;一般在通过虚拟机进行移植操作系统时,默认会以nat的网络地址转移,但是可以选择桥接或者是无网络连接也是可以的(因为本人用的是centos镜像的虚拟机,所以会有这一行)

    2.修改网络配置文件

    • 网络接口的配置文件默认位于/etc/sysconfig/network-script/ifcfg-ens33
    • 文件名格式为 “ifcfg-XXX”,其中“XXX”是网络接口的名称

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

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

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

    3.设置网络接口参数 ifconfig

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

    ifconfig ens37 192.168.10.20 netmask 255.255.255.0   #临时配置网卡的ip地址
    ifconfig ens37 192.168.10.20/24  #当不指定子网掩码时,将使用 IP 地址所在分类的默认子网掩码

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

    ifconfig ens37 down|up ifup/ifdown ens37

    为网卡绑定虚拟接口:在对服务器网络进行调试的过程中,有时候需要临时在同一个网卡上使用一个新的 IP 地址,但是又不能覆盖原有 IP 地址而导致服务程序不可用。
    这时可以为网卡绑定一个虚拟的网络接口,然后为虚拟接口设置新的 IP 地址(相当于一块网卡配多个 IP 地址)。

    ifconfig ens33:0 192.168.20.20

    4.查看主机名称—hostname

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

    [root@localhost ~]# hostname xjj                     #临修改时主机名称
    
    [root@localhost ~]hostnamectl set-hostname xjj       #永久修改主机名称
    或
    vim /etc/hostname                                    #自行添加主机名,设置完后需重启系统才能生效
    hostname -i                                          #查看本主机ip
    
    

    5.查看路由表条目route

    路由表:Linux 操作系统中的路由表决定着从本机向其他主机、其他网络发送数据的去向,是排除网络故障的关键信息
    直接执行“route”命令可以查看当前主机中的路由表信息

    [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”时表示目标网段与本主机直连
    

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

    [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

    ip route show=ip route #查看路由配置

    [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 
    

    设置路由记录 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 -net 192.168.3.0/24
    添加、删除默认网关记录,需要注意的是,在同一个主机的路由表中只应有一条默认网关记录。若同时存在多条默认网关记录,则可能导致该主机的网络连接出现故障
    添加、删除默认网关记录时,与添加、删除静态路由记录的命令格式类似,但指定目标网段时只需简单地使用“default”表示即可
    route add default gw 网关ip
    route del default gw 网关ip/route del default

    6.查看网络连接情况-netstat

    查看系统的网络连接状态、路由表、接口统计等信息,是了解网络状态及排除网络服务故障的有效工具
    -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
    
    

    7.获取socket统计信息-ss

    查看系统的网络连接情况,获取socket统计信息,它可以显示和 netstat 命令类似的输出内容
    socket:即套接字,上连应用进程,下连网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议根进行交互的接口

    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                                            :::*       
    

    二、测试网络连接

    1.测试网络连通性—ping

    使用ping命令可以向目标主机持续的发送测试数据包,并反馈显示结果,直到按“Ctrl+C”组合键后终止测试并显示最终统计结果
    例:测试从本机到百度网站的连通性情况(记得Ctrl+C终止,否则会一直显示下去)
    ping 192.168.126.15 #最常用是后面跟ip地址

    [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秒后结束
    

    可能会发生以下情况
    (1)“Destination Host Unreacheble”表示目的主机不可达,可能目标地址不存在或者目的主机已关闭
    (2)”Netwokr is unreacheable”表示没有可用的路由记录(如默认网关),无法到达目标主机所在网络
    (3)也有可能因为网络中存在影响通信过程稳定的因素(如网卡故障、病毒或网络攻击)时,会看到“Request timeout”的反馈结果,表示与目的主机连接超时(数据包响应缓慢或丢失)
    (4)也还有可能是目标主机防火墙的限制导致连接超时反馈

    [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
    

    2.跟踪数据包的路由途径—traceroute

    测试从当前主机到目的主机之间经过了哪些网络节点,并显示了各中间节点的连接状态(响应时间)
    对于无法显示的节点,连接状态将显示“*”
    例:从本主机到百度之间,需要跨越一个路由器192.168.126.2

    [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终止

    两种方式:临时配置和永久配置

    临时配置:临时配置:通过命令行直接修改当前正在使用的网络地址,修改后立即可以生效。 这种方式操作简单快速、执行效率高,一般在调试网络的过程中使用。但由于所做 的修改并没有固定地存放在静态的文件中,因此当重启 network 服务或重启主机后 将会失效
    永久配置:通过配置文件来存放固定的各种网络地址,需要重启 network 服务或重 启主机后才会生效。这种方式操作上相对要复杂一些,但相当于“永久配置”,一般 在需要为服务器设置固定的网络地址时使用

    3.测试DNS域名解析—nslookup

    软件包的名字就可以使用 yum install -y bind-utils

    当域名解析出现异常的时候,将无法再使用域名的形式来访问网络中的Web站点、电子邮件系统等服务

    nslookup是专门用来测试域名解析的专用工具,使用时只要指定要解析的目标域名作为参数即可

    nslookup 目标主机地址 [DNS服务器地址]

    示例:
    执行以下命令后,nslookup程序将提交查询请求,询问百度站点对应的IP地址是多少

    [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
    

    若能够成功反馈要查询域名的IP地址,则表示域名解析没有问题,否则需要根据实际反馈情况来判断故障原因

    4.域名配置文件

    bind-utils 安装包

    vi /etc/resolv.conf 
    search localdomain          #设置默认的搜索域(域名扩展名),当访问主机“localhost”时,就相当于访问“localhost.localdomain”
    nameserver 202.106.0.20 
    nameserver 202.106.148.1

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

    5.本地主机映射文件

    /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 文件只保存在本地,所以其中的映射记录也只适用于当前主机,而无法作用于整个网络

    jsjbwy
    下一篇:没有了