Linux入门攻坚——12、Linux网络属性配置相关知识2

CentOS 7网络属性配置

传统命名机制:以太网eth[0,1,2,...],wlan[0,1,2...]
可预测功能的命名机制:
    udev支持多种不同的命名方案:
        Firmware ,拓扑结构

    在对待设备文件这块,Linux改变了几次策略。早期,设备文件仅仅是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev目录下。后来,采用了devfs,一个基于内核的动态设备文件系统,他首次出现在2.3.46 内核中。devfs创建的设备文件是动态的。但是devfs有一些严重的限制,从 2.6.13版本后移走了。目前取代他的便是udev--一个用户空间程序。
在工作中多次碰到这样的要求:linux系统中原来有一块SCSI硬盘,系统分配的设备文件是/dev/sda。现在新增加了一个外置的磁盘阵列,通过SCSI卡连接。但接上这个磁盘阵列后,/dev/sda变成了磁盘阵列的硬盘了,原来内置的SCSI硬盘变成了 /dev/sdb,现在希望将设备文件固定下来。过去,这个比较麻烦,因为/dev/sda等文件都是linux内核自动分配的。很难固定下来,除非你更改加载SCSI卡驱动程序的顺序,让内置硬盘连接的SCSI卡比外接磁盘阵列连接的SCSI卡的驱动模块先加载到内核,这样就能保证/dev/sda总是指向内置的硬盘。但这种解决方法毕竟不太完美,而且对于其他的即插即用设备,如USB设备等都不适用。
udev是一种工具,它能够根据系统中的硬件设备的状态动态更新设备文件,包括设备文件的创建,删除等。设备文件通常放在/dev目录下。使用udev后,在/dev目录下就只包含系统中真正存在的设备。udev能够实现所有devfs实现的功能。但udev运行在用户模式中,而devfs运行在内核中。据称:devfs具有一些不太容易解决的先天缺陷。

udev的工作过程:
1. 当内核检测到在系统中出现了新设备后,内核会在sysfs文件系统中为该新设备生成一项新的记录,一般sysfs文件系统会被 mount到 /sys目录中。新记录是以一个或多个文件或目录的方式来表示。每个文件都包含有特定的信息。
 2. udev在系统中是以守护进程的方式udevd在运行,它通过某种途径,检测到新设备的出现,通过查找设备对应的sysfs中的记录得到设备的一些信息。
 3. udev 会根据/etc/udev/udev.conf文件中的udev_rules指定的目录,逐个检查该目录下的文件,这个目录下的文件都是针对某类或某个设备应该施行什么措施的规则文件。udev读取文件是按照文件名的ASCII字母顺序来读取的,如果udev一旦找到了与新加入的设备匹配的规则,udev 就会根据规则定义的措施对新设备进行配置。同时不再读后续的规则文件。

    (1)网卡命名机制
        systemd对网络设备的命名方式:
            1)如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如:eno1;
            2)如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如:ens1;
            3)如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0;
            4)如果用户显示启动,也可根据MAC地址进行命名,enx2387aadc56;
            5)上述均不可用,则使用传统命名机制;

        上述命名机制中,有的需要biosdevname程序的参与;

    (2)名称组成格式
            en:ethernet
            wl:wlan,无线局域网设备
            ww:wwan,无线广域网设备
        名称类型:
            o<index>:集成设备的设备索引号;
            s<slot>:扩展槽的索引号,支持虚拟设备
            x<MAC>:基于MAC地址的命名;
            p<bus>s<slot>:enp2s1

    网卡设备的命名过程:
        第一步:
            udev,辅助工具程序/lib/udev/rename_device,根据 /usr/lib/udev/rules.d/60-net.rules的指示,查找/etc/sysconfig/network-scripts/下的ifcfg-文件,如果HWADDR相同,将其中的DEVICE值作为网卡的名字。


        第二步:
            biosdevname会根据/usr/lib/udev/rules.d/71-biosdevname.rules所定义的规则进行命名


        第三步:
            通过检测网络接口设备,根据/usr/lib/udev/rules.d/75-net-description.rules
            ID_NET_NAME_ONBOARD,ID_NET_NAME_SLOT,ID_NET_NAME_PATH

对于CentOS6,是在/lib/udev/rules.d/目录下。

    回归传统命名方式:
        1)编辑/etc/default/grub配置文件
            GRUB_CMDLINE_LINUX="net.ifnames=0 rhgb quiet"

        2)为grub2生成其配置文件
            grub2-mkconfig -o /etc/grub2.cfg
        3)重启系统

地址配置工具:nmcli

0.8.1版本:nmcli  [ OPTIONS ] OBJECT { COMMAND | help }

1.18.8版本:
nmcli [OPTIONS...] {help | general | networking | radio | connection | device |
             agent | monitor} [COMMAND] [ARGUMENTS...]

[root@localhost rules.d]# nmcli help
Usage: nmcli [OPTIONS] OBJECT { COMMAND | help }

OPTIONS
  -a, --ask                                ask for missing parameters
  -c, --colors auto|yes|no                 whether to use colors in output
  -e, --escape yes|no                      escape columns separators in values
  -f, --fields <field,...>|all|common      specify fields to output
  -g, --get-values <field,...>|all|common  shortcut for -m tabular -t -f
  -h, --help                               print this help
  -m, --mode tabular|multiline             output mode
  -o, --overview                           overview mode
  -p, --pretty                             pretty output
  -s, --show-secrets                       allow displaying passwords
  -t, --terse                              terse output
  -v, --version                            show program version
  -w, --wait <seconds>                     set timeout waiting for finishing operations

OBJECT
  g[eneral]       NetworkManager's general status and operations
  n[etworking]    overall networking control
  r[adio]         NetworkManager radio switches
  c[onnection]    NetworkManager's connections
  d[evice]        devices managed by NetworkManager
  a[gent]         NetworkManager secret agent or polkit agent
  m[onitor]       monitor NetworkManager changes

nmcli general {status | hostname | permissions | logging} [ARGUMENTS...]


nmcli networking {on | off | connectivity} [ARGUMENTS...]
nmcli connection {show | up | down | modify | add | edit | clone | delete |
                        monitor | reload | load | import | export} [ARGUMENTS...]


     modify [--temporary] [id | uuid | path] <ID> ([+|-]<setting>.<property> <value>)+


setting.property:
    ipv4.address
    ipv4.gateway
    ipv4.dns
    ipv4.method
nmcli c modify ens33 -ipv4.address 192.168.138.139/24      删除IP

添加网关:[root@localhost rules.d]# nmcli c modify ens33 ipv4.gateway 192.168.138.2
错误:修改连接 "ens33" 失败:ipv4.gateway: 如果没有配置地址,网关会无法设置

[root@localhost rules.d]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=4c3624ae-a8b2-4dbc-8aec-5e475bc122c8
DEVICE=ens33
ONBOOT=yes
PEERDNS=no
PEERROUTES=no
[root@localhost rules.d]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=4c3624ae-a8b2-4dbc-8aec-5e475bc122c8
DEVICE=ens33
ONBOOT=yes
PEERDNS=no
PEERROUTES=no
IPADDR=192.168.138.139
PREFIX=24
GATEWAY=192.168.138.2
[root@localhost rules.d]# 

出现错误,IP地址配的是dhcp,查看/etc/sysconfig/network-scripts/ifcfg-ens33,如上,然后增加了一个IP:192.168.138.139/24,然后再增加网关,就成功了。
 nmcli device {status | show | set | connect | reapply | modify | disconnect |
                    delete | monitor | wifi | lldp} [ARGUMENTS...]

Linux语言环境管理命令:localectl

nmtui工具:nmtui

主机名称配置工具:hostname与hostnamectl命令:

网络客户端工具:lftp,ftp,lftpget,wget

安装:yum install lftp

lft [-p port] [-u user [, password]] server

在CentOS7下访问windows下的ftp服务器时,中文出现乱码,登录后进行如下设置(CentOS7的LANG=zh_CN.UTF-8):

lftp admin@192.168.138.1:/> set ftp:charset gbk
lftp admin@192.168.138.1:/> set file:charset utf8

下载文件,使用get(下载单个文件),或mget(同时下载多个文件),mget *,下载所有文件

lftpget URL

ftp已落后,不建议使用了。

wget :
    wget [option]...  URL...
        -q:静默模式
        -c:续传
        -O:保存位置(另存为别的名字)
        --limit-rates=:指定传输速率

nmap,ncat,tcpdump

nmap:“Network Mapper(网络映射器)”。是一款网络探测和安全审核的工具。目标是快速地扫描大型网络。它使用原始IP报文来发现网络上有哪些主机,主机提供什么服务(应用程序名和版本),服务运行在什么操作系统(包括版本信息), 它们使用什么类型的报文过滤器/防火墙,以及其它功能。

用法:nmap [Scan Type(s)] [Options] {target specification}
其中,target Specification用于指定扫描的目标,可以是一个主机或是一个网络,主机可以使用IP或主机名等。如指定一个IP:192.168.138.137,指定一个名字,如:www.baidu.com,指定一个网络,如:192.168.138.0/24,使用IP地址,四个数字部分都可以使用范围表示:如192.168.138.1-254,代表扫描192.168.138.1到192.168.138.254,或者192.168.138-140.1-254。使用逗号是列出多个值,如192.168.138.1,3-5,代表192.168.138.1,192.168.138.3,192.168.138.4,192.168.138.5.
选项:
    -sL:仅仅列出要扫描的目标列表

    -sP:ping扫描,仅仅确定主机是否在线

从运行报表结果可以看到,只报告在线的主机及其MAC地址,没有其他信息。
    -p<port range>:扫描开放相关端口的主机

    -A:激烈扫描模式,会扫描很多信息,包括操作系统、端口、服务、等等。

这里只是入门,nmap更详细的使用需要以后使用中再精通。
Usage: nmap [Scan Type(s)] [Options] {target specification}
TARGET SPECIFICATION:
  Can pass hostnames, IP addresses, networks, etc.
      Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0-255.0-255.1-254
     -iL <inputfilename>: Input from list of hosts/networks
      -iR <num hosts>: Choose random targets
      --exclude <host1[,host2][,host3],...>: Exclude hosts/networks
      --excludefile <exclude_file>: Exclude list from file
HOST DISCOVERY:
      -sL: List Scan - simply list targets to scan
      -sP: Ping Scan - go no further than determining if host is online
      -P0: Treat all hosts as online -- skip host discovery
      -PS/PA/PU [portlist]: TCP SYN/ACK or UDP discovery probes to given ports
      -PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes
      -n/-R: Never do DNS resolution/Always resolve [default: sometimes resolve]
SCAN TECHNIQUES:
      -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans
      -sN/sF/sX: TCP Null, FIN, and Xmas scans
      --scanflags <flags>: Customize TCP scan flags
      -sI <zombie host[:probeport]>: Idlescan
      -sO: IP protocol scan
      -b <ftp relay host>: FTP bounce scan
PORT SPECIFICATION AND SCAN ORDER:
      -p <port ranges>: Only scan specified ports
        Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080
      -F: Fast - Scan only the ports listed in the nmap-services file)
      -r: Scan ports sequentially - don't randomize
SERVICE/VERSION DETECTION:
      -sV: Probe open ports to determine service/version info
      --version-light: Limit to most likely probes for faster identification
      --version-all: Try every single probe for version detection
      --version-trace: Show detailed version scan activity (for debugging)
OS DETECTION:
      -O: Enable OS detection
      --osscan-limit: Limit OS detection to promising targets
      --osscan-guess: Guess OS more aggressively
TIMING AND PERFORMANCE:
      -T[0-6]: Set timing template (higher is faster)
      --min-hostgroup/max-hostgroup <size>: Parallel host scan group sizes
      --min-parallelism/max-parallelism <numprobes>: Probe parallelization
      --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <msec>: Specifies
      probe round trip time.
      --host-timeout <msec>: Give up on target after this long
      --scan-delay/--max-scan-delay <msec>: Adjust delay between probes
FIREWALL/IDS EVASION AND SPOOFING:
      -f; --mtu <val>: fragment packets (optionally w/given MTU)
      -D <decoy1,decoy2[,ME],...>: Cloak a scan with decoys
      -S <IP_Address>: Spoof source address
      -e <iface>: Use specified interface
      -g/--source-port <portnum>: Use given port number
      --data-length <num>: Append random data to sent packets
      --ttl <val>: Set IP time-to-live field
      --spoof-mac <mac address, prefix, or vendor name>: Spoof your MAC address
OUTPUT:
  -oN/-oX/-oS/-oG <file>: Output scan results in normal, XML, s|<rIpt kIddi3,
     and Grepable format, respectively, to the given filename.
      -oA <basename>: Output in the three major formats at once
      -v: Increase verbosity level (use twice for more effect)
      -d[level]: Set or increase debugging level (Up to 9 is meaningful)
      --packet-trace: Show all packets sent and received
      --iflist: Print host interfaces and routes (for debugging)
      --append-output: Append to rather than clobber specified output files
      --resume <filename>: Resume an aborted scan
      --stylesheet <path/URL>: XSL stylesheet to transform XML output to HTML
      --no-stylesheet: Prevent Nmap from associating XSL stylesheet w/XML output
MISC:
      -6: Enable IPv6 scanning
      -A: Enables OS detection and Version detection
      --datadir <dirname>: Specify custom Nmap data file location
      --send-eth/--send-ip: Send packets using raw ethernet frames or IP packets
      --privileged: Assume that the user is fully privileged
      -V: Print version number
      -h: Print this help summary page.
EXAMPLES:
      nmap -v -A scanme.nmap.org
      nmap -v -sP 192.168.0.0/16 10.0.0.0/8
      nmap -v -iR 10000 -P0 -p 80
ncat:ncat即Netcat,用于从TCP/UDP连接中读取或发送网络数据,连接和重定向套接字
有如下作用:
    端口侦听,ncat 可以作为 server 以 TCP 或 UDP 方式侦听指定端口;
    端口扫描,ncat 可以作为 client 发起 TCP 或 UDP 请求;
    机器之间传输文件;
    机器之间网络测速。
命令格式:ncat [OPTIONS...] [hostname] [port]
选项说明:

-4/6
    强制只使用 IPv4/IPv6 地址。
-d, --delay <time>
    读/写之间等待时间。
-h, --help
    打印出帮助信息。
-k, --keep-open
    在当前连接完成后继续侦听另一个连接。注意如果不使用 -l 选项,则使用此选项是错误的。
-l, --listen
    指定应该侦听传入的连接,而不是启动到远程主机的连接。将此选项与 -p、-s 或 -z 选项结合使用是错误的。此外,使用 -w 选项指定的超时将被忽略。
-n, --nodns
    不要在任何指定的地址、主机名或端口上执行任何 DNS 或服务查找。
-t, --telnet
    使 nc 发送 RFC 854 DON'T 和 WON'T 响应 RFC 854 的 DO 和 WILL 请求。这使得使用 nc 编写 telnet 会话脚本成为可能
-U, --unixsock
    指定使用 Unix 域套接字。
-u, --udp
    使用 UDP 代替默认选项 TCP。
-v, --verbose
    显示命令执行过程。
-z
    表示 zero,只扫描侦听守护进程,而不向它们发送任何数据。此选项与 -l 选项结合使用是错误的
-C, --crlf
    发送 CRLF 作为换行符。
-i, --idle-timeout <time>
    空闲读/写超时时间。
-p,  --source-port <port>
    指定源端口,但须受特权限制和可用性限制。将此选项与 -l 选项结合使用是错误的。
-s, --source <addr>
    设置本地主机送出数据包的 IP 地址。注意将此选项与 -l 选项结合使用是错误的。
-w, --wait <time>
    如果连接和 stdin 空闲超过指定秒数,则连接将被关闭。-w 标志对 -l 选项没有影响。缺省不超时。
-o, --output <filename>
    将会话数据转储到文件。
-x, --hex-dump <filename>
    将会话数据作为十六进制转储到文件。
--version
    显示版本信息。

监听本地端口:使用-l选项
ncat -vl 8888     

在192.168.138.137的8888端口启动监听,在132机器上连接此端口。
双方可以通话了,类似聊天功能。
文件传输:把 A 机器上的一个文本文件发送到 B 机器上,需注意操作次序,receiver 先侦听端口,sender 向 receiver 所在机器的该端口发送数据。

检查SSH版本信息:

tcpdump:一个运行在命令行下的抓包工具。
语法:
tcpdump [ -AdDefIJKlLnNOpqRStuUvxX ] [ -B buffer_size ] [ -c count ]
               [ -C file_size ] [ -G rotate_seconds ] [ -F file ]
               [ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ]
               [ -P in|out|inout ]
               [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
               [ -W filecount ]
               [ -E spi@ipaddr algo:secret,...  ]
               [ -y datalinktype ] [ -z postrotate-command ] [ -Z user ]
               [ expression ]

-a  将网络地址和广播地址转变成名字
-d  将匹配信息包的代码以人们能够理解的汇编格式给出
-dd  将匹配信息包的代码以c语言程序段的格式给出
-ddd 将匹配信息包的代码以十进制的形式给出
-D   显示所有可用网络接口的列表
-e  在输出行打印出数据链路层的头部信息
-f  将外部的Internet地址以数字的形式打印出来
-l  使标准输出变为缓冲行形式
-L   列出指定网络接口所支持的数据链路层的类型后退出
-n  不把网络地址转换成名字,即不做反向域名解析
-q   简洁地打印输出。即打印很少的协议相关信息, 从而输出行都比较简短
-t   在每行的输出中不输出时间
-tt  在每行的输出中会输出时间戳
-ttt 输出每两行打印的时间间隔(以毫秒为单位)
-tttt 在每行打印的时间戳之前添加日期的打印(此种选项,输出的时间最直观)

-v   产生详细的输出. 比如包的TTL,id标识,数据包长度,以及IP包的一些选项。同时它还会打开一些附加的包完整性检测,比如对IP或ICMP包头部的校验和。
-vv  产生比-v更详细的输出. 比如NFS回应包中的附加域将会被打印, SMB数据包也会被完全解码。
-vvv 产生比-vv更详细的输出。比如 telent 时所使用的SB, SE 选项将会被打印, 如果telnet同时使用的是图形界面,其相应的图形选项将会以16进制的方式打印出来
-c  在收到指定的包的数目后,tcpdump就会停止
-F  从指定的文件中读取表达式,忽略其它的表达式
-i  指定监听的网络接口
-r  从指定的文件中读取包(这些包一般通过-w选项产生)
-w  直接将数据报写入文件中,并不分析和打印出来
-T  将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程调用)和snmp(简单 网络管理协议)
-s   tcpdump 默认只会截取前 `96` 字节的内容,要想截取所有的报文内容,可以使用 `-s number`, `number` 就是你要截取的报文字节数,如果是 0 的话,表示截取报文全部内容。
-S  seq ack 使用绝对序列号,而不是相对序列号
-Z  后接用户名,在抓包时会受到权限的限制。如果以root用户启动tcpdump,tcpdump将会有超级用户权限

tcpdump -i ens33    #捕获指定接口(网卡)的数据包

tcpdump -i ens33 -c 3       #捕获指定个数的数据包(3个数据包)
tcpdump -A -i ens33 -c 3    #用ASCII码格式输出捕获的数据包
tcpdump -XX -i ens33        #用十六进制和ASCII码格式显示捕获的数据包


tcpdump -D    #显示可用的系统接口


tcpdump -w mydata.pcap -i ens33 -c 10      #把捕获的数据包写入到一个.pcap后缀的文件中

tcpdump -r tempDump.pcap    #读取捕获数据包文件的内容

tcpdump -n -i eth0    # 单个 n 表示不解析域名,直接显示 IP
tcpdump -i eth0 tcp    #捕获TCP类型的数据包,tcp可以换成其他,icmp如

tcpdump -i eth0 port 22   #捕获指定端口(这里是22)的数据包

tcpdump -i eth0 src 源ip地址   #捕获请求源是 192.169.12.101 的数据包

tcpdump -i eth0 dst 目标ip地址   #捕获指定目的IP的数据包
tcpdump -i eth0 dst host 目标ip地址 and port 8800 -w data.pcap  #抓取指定网卡,指定IP和端口的数据包 并写入到data.pcap文件中

tcpdump host 192.168.12.101 and 192.168.1.201 -w out &  #后台抓取两主机之间的数据
tcpdump -nn 单个 n 表示不解析域名,直接显示 IP;两个 n 表示不解析域名和端口。这样不仅方便查看 IP 和端口号,而且在抓取大量数据时非常高效,因为域名解析会降低抓取速度

tcpdump输出解释
tcpdump的Flags代表了这个数据包的用途,这些标记是TCP首部的内容
    [S] : SYN(开始连接)
    [S.]: SYN同步标识,以及确认[S]的ACK
    [P.] : PSH(推送数据)
    [F.] : FIN (结束连接)
    [R.] : RST(重置连接)
    [.] : 没有 Flag (意思是除上面四种类型外的其他情况,有可能是 ACK 也有可能是 URG:紧急指针)
     [FP.]: 标记FIN、PUSH、ACK组合,这样做是为了提升网络效率,减少数据来回确认等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/306411.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

c++在结构(Struct)中使用栈(Stack)

栈实现 1.入栈 2.出栈 3.空栈 4.满栈 5.栈顶 完整栈实现源码: // // myStack.hpp // algo_demo // // Created by Hacker X on 2024/1/9. //#ifndef myStack_hpp #define myStack_

一个Pygame的Hello World示例程序

创建一个标题为Hello World的窗口&#xff0c;窗口中间显示有Pygame的Logo的python代码 import sys import pygamedef main():pygame.init()screen pygame.display.set_mode((800, 400))pygame.display.set_caption("Hello World")logo pygame.image.load("p…

STL标准库与泛型编程(侯捷)笔记6(完结)

STL标准库与泛型编程&#xff08;侯捷&#xff09; 本文是学习笔记&#xff0c;仅供个人学习使用。如有侵权&#xff0c;请联系删除。 参考链接 Youbute: 侯捷-STL标准库与泛型编程 B站: 侯捷 - STL Github:STL源码剖析中源码 https://github.com/SilverMaple/STLSourceCo…

离线安装jenkins:使用rpm安装包

目录 一、安装jdk1.8二、安装yum软件包三、下载rmp安装包四、安装jenkins的rpm安装包五、创建jenkins文件目录六、设置环境变量七、配置jdk位置八、配置Jenkins配置文件九、启动Jenkins十、访问Jenkins十一、安装Jenkins插件 一、安装jdk1.8 根据博客Linux操作系统安装jdk1.8并…

Linux:linux计算机和windows计算机 之间 共享资源

在前面章节已经介绍过&#xff0c;NFS用于Linux系统之间的文件共享&#xff0c;windows 并不知道 NFS &#xff0c;而是使用 CIFS (Common Internet File System) 的协议机制 来 “共享” 文件。在1991年&#xff0c;Andrew Tridgell 通过逆向工程 实现了 CIFS 协议&#xff0c…

Swift单元测试Quick+Nimble

文章目录 使用QuickNimble1、苹果官方测试框架XCTest的优缺点2、选择QuickNimble的原因&#xff1a;3、QuickNimble使用介绍集成&#xff1a;Quick关键字说明&#xff1a;Nimble中的匹配函数等值判断&#xff1a;使用equal函数是否是同一个对象&#xff1a;使用beIdenticalTo函…

鼠标随动指定区域高亮显示(Excel聚光灯)

实例需求&#xff1a;工作表中数据表实现跟随鼠标选中高亮效果&#xff0c;需要注意如下几个细节需求 数据表为连续区域&#xff0c;但是不一定从A1单元格开始数据表的前两行&#xff08;标题行&#xff09;不使用高亮效果数据表中已经应用了条件格式&#xff0c;高亮显示取消…

stm32的FMC数据访问与突发模式

数据访问 配置外部存储器的宽度为 16 位&#xff0c; FMC 将使用内部的 ADDR[25:1]地址来作为对外部存储器的寻址地址 FMC_A[24:0]&#xff0c;这段描述是在解释在STM32的FMC&#xff08;Flexible Memory Controller&#xff09;中&#xff0c;如何配置外部存储器的宽度为16位…

YOLOv5改进 | 2023主干篇 | EfficientViT替换Backbone(高效的视觉变换网络)

一、本文介绍 本文给大家带来的改进机制是EfficientViT(高效的视觉变换网络),EfficientViT的核心是一种轻量级的多尺度线性注意力模块,能够在只使用硬件高效操作的情况下实现全局感受野和多尺度学习。本文带来是2023年的最新版本的EfficientViT网络结构,论文题目是Effici…

麒麟操作系统缓存rpm包,制作离线yum源

缓存rpm包&#xff0c;以make为例 mkdir -p /data/yum yumdownloader --resolve --destdir/data/yum make制作离线yum包 yum install createrepo -y cd /data/yum createrepo .写yum配置文件/etc/yum.repos.d/local.repo [local-repo] namelocal-repo baseurlfile:///data/…

spring boot 自动扫描Controller、Service、Component原理

项目里面为什么不加上ComponentScan("com.yym.*")注解&#xff0c;也能加载到子目录里面的Controller&#xff0c;Service&#xff0c;Component的bean呢&#xff1f; 启动类没有ComponentScan注解 SpringBootApplication public class BootStrap {public static v…

2023.11.16

1. 数据预处理&#xff0c; 对于质量守恒&#xff0c;加和比都为100% 数据清洗 箱型图 散点图 3σ 进行一次正态性检验 描述性分析&#xff1a;计算平均值、标准差。趋势分析&#xff0c;通过散点图&#xff0c;折线图&#xff0c;观察不同混合比对焦油、水、合成气体的…

数据挖掘在制造业中的预测与优化应用

随着大数据时代的到来&#xff0c;数据挖掘技术在各行各业的应用日益广泛&#xff0c;尤其在制造业中&#xff0c;其对于提升生产效率、降低运营成本、优化供应链管理等方面发挥着不可替代的作用。本文将探讨数据挖掘在制造业中的预测与优化应用&#xff0c;通过深入剖析实际案…

linux(ubuntu)中drontab定时器命令详解

linux&#xff08;ubuntu&#xff09;中drontab定时器命令详解 crontab 是一个用于创建、编辑和管理用户的定时任务的命令&#xff0c;它可以让用户在指定的时间自动执行指定的命令或脚本。 基本语法 -e&#xff1a;编辑用户的 crontab 文件&#xff1b;-l&#xff1a;列出用…

sentinel熔断简单实现

sentinel详细介绍网址 基于qps限流 package mainimport ("fmt"sentinel "github.com/alibaba/sentinel-golang/api""github.com/alibaba/sentinel-golang/core/base""github.com/alibaba/sentinel-golang/core/flow""log"…

CentOS常用命令

CentOS常用命令 1 背景知识1.1 Centos 简介1.2 centos 和ubuntu的区别1.3 安装centos的时候需要注意什么 2 常用命令集锦2.1 文件目录类&#xff1a;2.2 驱动挂载类&#xff1a;2.3 关机命令&#xff1a;2.4 查看系统信息命令&#xff1a;2.5 文本命令2.6 系统管理命令&#xf…

Redis异步写失败后补数逻辑设计

背景 最近各种机房事故频发&#xff0c;所以很多公司都对Redis存储等进行异步多活&#xff0c;我们公司采用的方式是通过客户端双写的方式来实现异地Redis机房的备份&#xff0c;但是当异地机房出现临时网络故障时&#xff0c;就涉及到了如何进行补数的操作&#xff0c;本文就…

6 - 数据备份与恢复|innobackupex

数据备份与恢复&#xff5c;innobackupex 数据备份与恢复数据备份相关概念物理备份与恢复逻辑备份&#xff08;推荐&#xff09;使用binlog日志文件实现对数据的时时备份‘使用日志 恢复数据 innobackupex 对数据做备份和恢复增量备份与恢复 数据备份与恢复 数据备份相关概念 …

【算法Hot100系列】搜索插入位置

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

资源调度(2)-----pod的亲和性和反亲和性

集群调度: schedule的调度算法。 预算策略&#xff1a;过滤出合适的节点 优先策略&#xff1a; 选择部署的节点 nodeName:硬匹配&#xff0c;不走调度策略。node01. nodeSelector&#xff1a;根据节点的标签选择&#xff0c;会走调度算法。 只要是走调度算法&#xff0c;在不满…