linux: ip route 与 route 用法详解与对比

文章目录

  • 1. 引言
  • 2. ip route
    • 2.1 描述
    • 2.2 语法
    • 2.3 参数
    • 2.4 例子
  • 3. route
    • 3.1 描述
    • 3.2 语法
    • 3.3 参数
    • 3.4 例子
  • 4. 对比
  • 5. 参考


1. 引言

本文主要介绍 ip route 以及 route 的用法和区别。

2. ip route

2.1 描述

用于管理静态路由表。linux 系统中,可以自定义从 1-252个路由表。其中,linux系统维护了4个路由表:

  • 0 表: 系统保留表
  • 253 表: default table 没特别指定的默认路由都放在该表
  • 254 表: main table 没指明路由表的所有路由放在该表
  • 255 表: local table 保存本地接口地址,广播地址、NAT地址 由系统维护,用户不得更改

2.2 语法

ip route help# 以下是输出:
Usage: ip route { list | flush } SELECTORip route save SELECTORip route restoreip route showdumpip route get [ ROUTE_GET_FLAGS ] ADDRESS[ from ADDRESS iif STRING ][ oif STRING ] [ tos TOS ][ mark NUMBER ] [ vrf NAME ][ uid NUMBER ] [ ipproto PROTOCOL ][ sport NUMBER ] [ dport NUMBER ]ip route { add | del | change | append | replace } ROUTE
SELECTOR := [ root PREFIX ] [ match PREFIX ] [ exact PREFIX ][ table TABLE_ID ] [ vrf NAME ] [ proto RTPROTO ][ type TYPE ] [ scope SCOPE ]
ROUTE := NODE_SPEC [ INFO_SPEC ]
NODE_SPEC := [ TYPE ] PREFIX [ tos TOS ][ table TABLE_ID ] [ proto RTPROTO ][ scope SCOPE ] [ metric METRIC ][ ttl-propagate { enabled | disabled } ]
INFO_SPEC := { NH | nhid ID } OPTIONS FLAGS [ nexthop NH ]...
NH := [ encap ENCAPTYPE ENCAPHDR ] [ via [ FAMILY ] ADDRESS ][ dev STRING ] [ weight NUMBER ] NHFLAGS
FAMILY := [ inet | inet6 | mpls | bridge | link ]
OPTIONS := FLAGS [ mtu NUMBER ] [ advmss NUMBER ] [ as [ to ] ADDRESS ][ rtt TIME ] [ rttvar TIME ] [ reordering NUMBER ][ window NUMBER ] [ cwnd NUMBER ] [ initcwnd NUMBER ][ ssthresh NUMBER ] [ realms REALM ] [ src ADDRESS ][ rto_min TIME ] [ hoplimit NUMBER ] [ initrwnd NUMBER ][ features FEATURES ] [ quickack BOOL ] [ congctl NAME ][ pref PREF ] [ expires TIME ] [ fastopen_no_cookie BOOL ]
TYPE := { unicast | local | broadcast | multicast | throw |unreachable | prohibit | blackhole | nat }
TABLE_ID := [ local | main | default | all | NUMBER ]
SCOPE := [ host | link | global | NUMBER ]
NHFLAGS := [ onlink | pervasive ]
RTPROTO := [ kernel | boot | static | NUMBER ]
PREF := [ low | medium | high ]
TIME := NUMBER[s|ms]
BOOL := [1|0]
FEATURES := ecn
ENCAPTYPE := [ mpls | ip | ip6 | seg6 | seg6local | rpl ]
ENCAPHDR := [ MPLSLABEL | SEG6HDR ]
SEG6HDR := [ mode SEGMODE ] segs ADDR1,ADDRi,ADDRn [hmac HMACKEYID] [cleanup]
SEGMODE := [ encap | inline ]
ROUTE_GET_FLAGS := [ fibmatch ]
# 操作 Linux 系统中路由表的命令。
# 具体来说,这个命令可以列出或清除符合特定条件的路由。
# SELECTOR 可以是一个具体的 IP 地址、一个 IP 地址范围,或者一个特定的网络接口。
# list:列出符合 SELECTOR 条件的路由。
# flush:清除符合 SELECTOR 条件的路由。
ip route { list | flush } SELECTORSELECTOR := [ root PREFIX ] [ match PREFIX ] [ exact PREFIX ][ table TABLE_ID ] [ proto RTPROTO ][ type TYPE ] [ scope SCOPE ]
# 用于从先前保存的路由表中恢复原有的路由表。
# 请注意,该命令需要读取用 ip route save 保存的数据流。
ip route restore
# 将当前符合 SELECTOR 条件的路由保存到系统中,以便在将来可以恢复或回滚到这些路由。
ip route save SELECTOR
# 用于显示路由表中的路由记录。帮助查看路由表中存储的路由信息,包括目标地址、网关、接口等
ip route showdump
# 用于获取特定 IP 地址的路由信息。这个命令可以帮助了解从当前主机到指定 IP 地址的数据包路由路径。
ip route get ADDRESS [ from ADDRESS iif STRING ][ oif STRING ]  [ tos TOS ][ mark NUMBER ]
可选的 option:
- to ADDRESS (default):目的地址
- from ADDRESS:源地址
- tos TOS:服务类型
- iif NAME:此数据包预期从中到达的设备
- oif NAME:强制将此数据包路由到的输出设备
- connected:如果未给出源地址(选项from),则重新查找源设置为从第一次查找收到的首选地址的路由。 如果使用策略路由,则可能是其他路由
# 常用命令
ip route delete # 删除路由
ip route flush  # 清空路由表或删除特定目标的路由ip route add/change/replace
可选的 option:
- to TYPE PREFIX (default):路由的目标前缀。如果省略TYPE,则ip采用unicast类型。上面列出了其他类型的值。前缀是一个IP或IPv6地址,后跟斜杠和前缀长度。如果前缀的长度丢失,ip将采用全长主机路由。还有一个特殊的前缀默认值-相当于IP 0/0或IPv6::/0。
- tos TOS:服务类型(TOS)密钥。这个密钥没有相关的掩码,最长的匹配被理解为:首先,比较路由和包的TOS。如果它们不相等,则分组仍然可以匹配具有零TOS的路由。TOS是8位十六进制数或/etc/iproute2/rt_dsfield中的标识符。
- metric :跳数,该条路由记录的质量,一般情况下,如果有多条到达相同目的地的路由记录,路由器会采用metric值小的那条路由
- table TABLEID:要将此路由添加到的表。TABLEID可以是文件/etc/iproute2/rt_tables中的数字或字符串。如果省略此参数,ip将采用主表,但本地、广播和nat路由除外,默认情况下,这些路由将放入本地表中
- dev NAME:输出设备名称
- via ADDRESS:下一跳路由器的地址。 实际上,此字段的含义取决于路由类型。 对于普通的单播路由,它要么是真正的下一跳路由器,要么是以BSD兼容模式安装的直接路由,它可以是接口的本地地址。 对于NAT路由,它是已转换IP目标块的第一个地址
- src ADDRESS:发送到路由前缀所覆盖的目的地时首选的源地址
- realm REALMID:此路由被分配到的领域。REALMID可以是/etc/iproute2/rt_realms文件中的数字或字符串。
- mtu MTU/mtu lock MTU:到达目的地的路径上的MTU。 如果未使用修饰符锁定,则由于路径MTU发现,内核可能会更新MTU。 如果使用了修饰符锁定,则将不尝试任何路径MTU发现,在IPv4情况下,所有数据包将在没有DF位的情况下发送,或者将其分片到IPv6的MTU
- window NUMBER:TCP播发到这些目的地的最大窗口,以字节为单位。它限制了允许TCP对等方发送给我们的最大数据突发
- rtt TIME:初始RTT(“往返时间”)估算值。 如果未指定后缀,则这些单位是直接传递到路由代码的原始值,以保持与先前版本的兼容性。 否则,如果使用后缀s,sec或secs来指定秒数,而使用ms,msec或msecs的后缀来指定毫秒。
- rttvar TIME (2.3.15+ only):初始RTT方差估算值。 与上面的rtt一样指定值
- rto_min TIME (2.6.23+ only):与此目标通信时要使用的最小TCP重新传输超时。值的指定与上面的rtt相同
- ssthresh NUMBER (2.3.15+ only):初始慢启动阈值的估计值
- cwnd NUMBER (2.3.15+ only):锁定标志,如果不使用锁定标志,则忽略该选项
- initcwnd NUMBER (2.5.70+ only):到此目标的连接的初始拥塞窗口大小。 实际窗口大小是该值乘以相同连接的MSS(``最大段大小'')。 默认值为零,表示使用RFC2414中指定的值。
- initrwnd NUMBER (2.6.33+ only):到此目标的连接的初始接收窗口大小。 实际窗口大小是此值乘以连接的MSS。 默认值为零,表示使用慢启动值。
- features FEATURES (3.18+only):启用或禁用每路由功能。此时唯一可用的特性是ecn,它可以在启动到给定目标网络的连接时启用显式拥塞通知。当响应来自给定网络的连接请求时,即使net.ipv4.tcp_ecn sysctl设置为0
- congctl NAME/congctl lock NAME (3.20+ only):仅针对给定的目的地设置特定的TCP拥塞控制算法。 如果未指定,Linux将保留当前的全局默认TCP拥塞控制算法或应用程序中的一种。 如果未使用修饰符锁定,则应用程序仍可能会覆盖该目的地的建议拥塞控制算法。 如果使用了修饰符锁,则不允许应用程序覆盖该目的地的指定拥塞控制算法,因此将强制/保证使用建议的算法
- advmss NUMBER (2.3.15+ only):在建立TCP连接时向这些目标播发的MSS(“最大段大小”)。如果没有给定,Linux将使用从第一跳设备MTU计算的默认值
- reordering NUMBER (2.3.15+ only):到此目的地的路径上的最大重新排序。 如果未给出,则Linux使用通过sysctl变量net/ipv4/tcp_reordering选择的值
- nexthop NEXTHOP:多路径路由的下一跳。 NEXTHOP是一个复杂值,其语法类似于顶级参数列表:- via ADDRESS:下一跳路由- dev NAME:输出设备名称- weight NUMBER:是多路径路由的此元素的权重,反映其相对带宽或质量
- scope SCOPE_VAL:路由前缀所覆盖的目的地范围。 SCOPE_VAL可以是数字/etc/iproute2/rt_scopes中的字符串。 如果省略此参数,则ip假定所有网关单播路由的作用域是全局范围,直接单播和广播路由的作用域链接以及本地路由的作用域主机
- protocol RTPROTO:该路由的路由协议标识符。 RTPROTO可以是文件/ etc / iproute2 / rt_protos中的数字或字符串。如果未提供路由协议ID,则ip会采用协议引导方式(即假定路由是由不了解自己在做什么的人添加的)。 几个协议值具有固定的解释。- redirect: 路由是由于ICMP重定向而安装的- kernel:路由是在自动配置期间由内核安装的- boot:路由是在启动过程中安装的。如果路由守护进程启动,它将清除所有这些守护进程- static:该路由由管理员安装,以覆盖动态路由。 路由守护程序将尊重它们,甚至可能将它们通告给其对等端。- ra:路由是通过路由器发现协议安装的
ip route show # 该命令显示路由表的内容或按某些条件选择的路由可选的 option:
- to SELECTOR (default):仅从给定的目的地范围内选择路线。 SELECTOR由一个可选的修饰符(root 、match、exact)和一个前缀组成。 root PREFIX选择前缀不小于PREFIX的路由。 F.e. 根0/0选择整个路由表。 match PREFIX选择前缀不超过PREFIX的路由。 比如: 匹配10.0/16选择10.0/16、10/8和0/0,但不选择10.1/16和10.0.0/24。 精确的PREFIX(或仅PREFIX)选择具有此精确前缀的路由。 如果这两个选项都不存在,则ip假定根目录为0/0,即列出整个表。
- tos TOS:仅选择具有给定TOS的路线
- table TABLEID:显示此表中的路由。默认设置是显示主表。TABLEID可以是实表的ID,也可以是特殊值之一:- all:列出所有表- cache:转储路由缓存
- cloned:缓存列表克隆的路由,即由于某些路由属性(例如MTU)已更新而从其他路由动态分叉的路由。 实际上,它等效于表缓存。
- from SELECTOR:与to的语法相同,但它绑定的是源地址范围而不是目的地。请注意,from选项仅适用于克隆路由
- protocol RTPROTO:只列出该协议的路由
- scope SCOPE_VAL:仅列出具有此范围的路由
- type TYPE:仅列出该类型的路由
- dev NAME:仅列出通过此设备的路由
- via PREFIX:仅列出通过前缀选择的nexthop路由器的路由
- src PREFIX:仅列出具有按前缀选择的首选源地址的路由
- realms FROMREALM/TOREALM/REALMID:仅列出具有这些领域的路由。

2.3 参数

# 一些用到的参数解释
SELECTOR := [ root PREFIX ] [ match PREFIX ] [ exact PREFIX ][ table TABLE_ID ] [ proto RTPROTO ][ type TYPE ] [ scope SCOPE ]
ROUTE := NODE_SPEC [ INFO_SPEC ]
NODE_SPEC := [ TYPE ] PREFIX [ tos TOS ][ table TABLE_ID ] [ proto RTPROTO ][ scope SCOPE ] [ metric METRIC ]
INFO_SPEC := NH OPTIONS FLAGS [ nexthop NH ]...
NH := [ via ADDRESS ] [ dev STRING ] [ weight NUMBER ] NHFLAGS
OPTIONS := FLAGS [ mtu NUMBER ] [ advmss NUMBER ][ rtt TIME ] [ rttvar TIME ] [reordering NUMBER ][ window NUMBER ] [ cwnd NUMBER ] [ initcwnd NUMBER ][ ssthresh NUMBER ] [ realms REALM ] [ src ADDRESS ][ rto_min TIME ] [ hoplimit NUMBER ] [ initrwnd NUMBER ][ features FEATURES ] [ quickack BOOL ] [ congctl NAME ][ expires TIME ]
TYPE := { unicast | local | broadcast | multicast | throw |unreachable | prohibit | blackhole | nat }
TABLE_ID := [ local | main | default | all | NUMBER ]
SCOPE := [ host | link | global | NUMBER ]
NHFLAGS := [ onlink | pervasive ]
RTPROTO := [ kernel | boot | static | NUMBER ]
TIME := NUMBER[s|ms]
BOOL := [1|0]
FEATURES := ecn
Route TYPE 类型及解释:
unicast:描述了由路由前缀覆盖的目标的真实路径。
unreachable:这些目标不可达。丢弃数据包并生成ICMP消息“主机不可达”。本地发送者收到“EHOSTUNREACH”错误。
blackhole:这些目标不可达。静默地丢弃数据包。本地发送者收到“EINVAL”错误。
prohibit:这些目标不可达。丢弃数据包并生成管理上禁止的ICMP消息“通信被禁止”。本地发送者收到“EACCES”错误。
local:目标被分配给此主机。数据包被环回并在本地传递。
broadcast:目标是一个广播地址。数据包作为链接广播发送。
throw:与策略规则一起使用的特殊控制路由。如果选择了这种路由,则会在未找到路由的情况下终止此表中的查找。没有策略路由时,相当于路由表中没有路由。丢弃数据包并生成ICMP消息“net unreachable”。本地发送者收到“ENETUNREACH”错误。
NAT:一个特殊的NAT路由。前缀所覆盖的目标被认为是虚拟(或外部)地址,在转发之前需要将其转换为真实(或内部)地址。使用属性via选择要转换的地址。但请注意,Linux 2.6版本不再支持Route NAT。
anycast:这种路由类型尚未实现。目标是被分配给此主机的任播地址。主要等效于本地,但有一个区别:当用作任何数据包的源地址时,这些地址是无效的。
multicast:该路由类型是用于多播路由的特殊类型。

2.4 例子

  1. 查询路由
# 以下三种显示系统路由
ip r
ip route
ip route show
ip route list	 	

在这里插入图片描述

# 精准匹配某一条路由,ip 是目的地址
ip route show 172.17.0.0/16
# 模糊匹配某一条路由,ip 是目的地址	
ip route show match 192.168											

在这里插入图片描述
在这里插入图片描述

# 查询经由网卡 ens33 的路由
ip route show dev ens33
# 查询源地址为 192.168.127.128 的路由
ip route show src 192.168.127.128
# 查询下一跳为192.168.127.2的路由							
ip route show via 192.168.127.2
# 查看本地路由表						
ip route show table local
ip route list table local

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 添加路由
# 在1号表中添加默认路由为192.168.127.1
ip route add default via 192.168.127.1 table 1
# 在1号表中添加目的为192.168.127.0网段的路由为192.168.127.2
ip route add 192.168.127.0/24 via 192.168.127.2 table 1
# 设置系统默认路由	
ip route add default via 192.168.127.1
# 设置目的为192.168.127.0网段的网关为192.168.127.254,通过网卡 eth33 出去
ip route add 192.168.127.0/24 via 192.168.0.254 dev eth33
# 设置默认网关为 192.168.127.254,通过网卡 eth33 出去
ip route add default via 192.168.127.254 dev eth33
# 设置请求的目地192.168.127.130不可达的路由
ip route add prohibit 192.168.127.130
# 设置源IP 192.168.127.129到达192.168.127.130不可达				
ip route add prohibit 192.168.127.130 from 192.168.127.129	
# 更改默认路由。此操作等同于先删除,后新增	
ip route change default via 192.168.127.1 dev eth33
  1. 删除路由
# 删除默认路由
ip route del default
# 删除通往192.168.127.0/24的路由
ip route del 192.168.127.0/24
# 删除经由网卡 ens33 通往192.168.127.0/24的路由
ip route del 192.168.127.0/24 dev eth33
# 清空路由表
ip route flush table main								

3. route

3.1 描述

用于显示和操作IP静态路由表。

直接执行 route 命令来添加路由不会永久保存,当网卡重启或者机器重启之后,该路由就失效了。要想永久保存,可以保存到配置文件。

  1. /etc/sysconfig/static-routes文件为路由固化文件,但是 linux 系统一般不会自动生成,需要手动创建。
  2. 在文件内编辑路由,路由格式是固定的:
    • 添加默认路由:any net 0.0.0.0 netmask 0.0.0.0 gw 10.60.60.1
    • 添加网络路由:any net 1.1.1.0 netmask 255.255.255.0 gw 10.60.60.1

3.2 语法

route -h# 以下是输出:
Usage: route [-nNvee] [-FC] [<AF>]           List kernel routing tablesroute [-v] [-FC] {add|del|flush} ...  Modify routing table for AF.route {-h|--help} [<AF>]              Detailed usage syntax for specified AF.route {-V|--version}                  Display version/author and exit.-v, --verbose            be verbose-n, --numeric            don't resolve names-e, --extend             display other/more information-F, --fib                display Forwarding Information Base (default)-C, --cache              display routing cache instead of FIB<AF>=Use -4, -6, '-A <af>' or '--<af>'; default: inetList of possible address families (which support routing):inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP)x25 (CCITT X.25)

3.3 参数

可选 option:
-v:显示详细的处理信息
-A family:用指定的地址族(如inet,inet6)
-n:以数字形式代替解释主机名形式来显示地址
-e:用netstat(8)的格式来显示选路表
-ee:使用更详细的资讯来显示
-net:到一个网络的路由表
-host:到一个主机的路由表
-F:显示内核的FIB选路表。其格式可以用-e 和 -ee选项改变
-C:显示内核的路由缓存
del :删除一条路由
add:添加一条路由
target:指定目标网络或主机。可以用点分十进制形式的IP地址或主机/网络名
netmask Nm:为添加的路由指定网络掩码
gw Gw:为发往目标网络/主机的任何分组指定网关。注意:指定的网关首先必须是可达的。也就是说必须为该网关预先指定一条静态路由。如果你为本地接口之一指定这个网关地址的话,那么此网关地址将用于决定此接口上的分组将如何进行路由
metric M:把选路表中的路由值字段(由选路进程使用)设为M
mss M:把基于此路由之上的连接的TCP最大报文段长度设为M字节。这通常只用于优化选路设置。默认值为536
window W:把基于此路由之上的连接的TCP窗口长度设为W字节。这通常只用于AX.25网络和不能处理背对背形式的帧的设备
irtt I:把基于此路由之上的TCP连接的初始往返时间设为I毫秒(1-12000)。这通常也只用于AX.25网络。如果省略此选项,则使用RFC1122的缺省值300ms
reject:设置一条阻塞路由以使一条路由查找失败。这用于在使用缺省路由前先屏蔽掉一些网络。但这并不起到防火墙的作用
mod, dyn, reinstate:设置一条动态的或更改过的路由。这些标志通常只由选路进程来设置。这只用于诊断目的
dev If:强制使路由与指定的设备关联,因为否则内核会自己来试图检测相应的设备(通常检查已存在的路由和加入路由的设备的规格)。在多数正常的网络上无需使用

3.4 例子

  1. 查询路由
# 以数字形式展现路由表
route -n

在这里插入图片描述

route 输出结果解析:

  • Destination:目标网络或目标主机
  • Gateway:网关地址或 ‘*’ (如未设置)
  • Genmask:目标网络的子网掩码;'255.255.255.255’为主机,'0.0.0.0’为缺省路由
  • Flags:路由标志
    • U (route is up) :路由正常
    • H (target is a host) :主机路由
    • G (use gateway) :使用网关的间接路由
    • R (reinstate route for dynamic routing) :为动态选路恢复路由
    • D (dynamically installed by daemon or redirect) :该路由由选路进程或重定向动态创建
    • M (modified from routing daemon or rederict) :该路由已由选路进程或重定向修改
    • ! (reject route) :阻塞路由
  • Metric:通向目标的距离(通常以跳来计算)
  • Ref:使用此路由的活动进程个数(Linux内核并不使用)
  • Use:查找此路由的次数。根据-F 和 -C的使用,此数值是路由缓存的损失数或采样数
  • Iface:使用此路由发送分组的接口(网卡名字)
  • MSS:基于此路由的TCP连接的缺省最大报文段长度
  • Window:基于此路由的TCP连接的缺省窗口长度
  • irtt:初始往返时间。内核用它来猜测最佳TCP协议参数而无须等待(可能很慢的)应答
  • HH (cached only):为缓存过的路由而访问硬件报头缓存的ARP记录和缓存路由的数量。如果缓存过路由的接口(如lo)无须硬件地址则值为-1
  • Arp (cached only):无论缓存路由所用的硬件地址情况如何都进行更新
  1. 添加路由
# 添加一条默认路由。使用此路由的所有分组将通过网关 default-gw 进行传输。							
route add default gw default-gw
# 添加一条目的网络192.168.127.0/24,经由 ens33 的路由
route add -net 192.168.127.0 netmask 255.255.255.0 dev eth33 	
# 添加到主机192.168.127.128的路由
route add -host 192.168.127.128 gw 192.168.127.1
# 拒绝网络192.168.x.x											
route add 192.168.0.0 netmask 255.255.0.0 reject										
  1. 删除路由
# 删除192.168.127.0的路由								
route del -net 192.168.127.0 netmask 255.255.255.0 dev eth33
# 删除默认路由		
route del default gw 192.168.127.1 eth33	

4. 对比

route 和 ip route的区别:

  1. ip route 支持多种查询显示方式,而 route 命令没有其他的查询显示方式。
  2. ip route add 提供了更多route命令无法实现的选项,如prohibitfromsrc
  3. ip route 功能更加强大,推荐使用。

5. 参考

ip route命令详解
route 命令详解

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【docker】数据管理

Docker容器会随时关闭和开启,Docker 容器的数据放哪里呢&#xff1f; 答案就是&#xff1a;数据卷和数据卷容器 官网文档 Manage data in Docker | Docker Docs 数据卷(Data Volume) 数据卷就是将宿主机的某个目录&#xff0c;映射到容器中&#xff0c;作为数据存储的目录&…

无框架Java转go语言写http与tcp请求

项目地址 https://github.com/cmdch2017/http_tcpServer 项目结构 如何快速上手 http篇 1、controller包就相当于RestController&#xff0c;这里返回了一个Person对象&#xff0c;当你需要新建一个接口时&#xff0c;再新写一个func仿照下面的方法就行了 package control…

CSS设计器的使用

目录 css的概念 css的优势 css的基本语法 html中引入css样式 CSS基本选择器 选择器的使用 初级选择器&#xff1a; 标签选择器 类选择器 id选择器 高级选择器(结构选择器&#xff09; ①后代选择器(E F) ②子选择器(E>F) ③相邻兄弟选择器(EF) ④通用兄弟选择器(…

kubernetes-L7负载均衡ingress

一、iptables/ipvs 前面我们说到kube-proxy是基于iptables/ipvs的分布式L4负载均衡技术&#xff0c;但是有很多的需求场景是这种网络层的dnat不能提供的能力。 基于L4的服务 每个应用独占ELB&#xff0c;浪费资源每个服务都需要创建DNS配置启动HTTPS&#xff0c;每个服务需要…

从零开始制作一个Douban图像下载器:Wt库的基础知识和操作指南

引言 欢迎来到本文&#xff0c;如果你希望从豆瓣下载海量的高清图像、学习使用现代C web应用程序框架Wt库开发web应用程序&#xff0c;或者了解如何利用代理IP和多线程技术提高爬虫效率和稳定性&#xff0c;那么你来对地方了。在接下来的内容中&#xff0c;我们将为你提供一个…

Taro旧项目埋坑日记

Taro旧项目埋坑日记 unexpected "\" at pos 148

过滤器和监听器及应用

Filter及应用 Filter有什么用?一、Filter处理中文乱码二、监听器&#xff0c;统计网站在线人数1.监听器引入2.统计网站在线人数 三、Filter实现权限拦截 Filter有什么用? Filter:过滤器&#xff0c;可以用来过滤网站的数据。 比如处理中文乱码&#xff0c;每次写servlet&…

docker小白第六天

docker小白第六天 容器数据卷是什么 首先&#xff0c;容器卷有个坑&#xff1a;容器卷需要加入privilegedtrue&#xff0c;如下图所示&#xff0c;是为了解决permission denied的问题。其中“挂载”的意思是相当于一个硬盘插到主机上。使用该命令。是扩大容器的权限解决挂载目…

力扣面试题 16.19. 水域大小(java DFS解法)

Problem: 面试题 16.19. 水域大小 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 该问题可以归纳为一类遍历二维矩阵的题目&#xff0c;此类中的一部分题目可以利用DFS来解决&#xff0c;具体到本题目&#xff08;该题目可以的写法大体不变可参看前面几个题目&#…

几种常见开关电源电路图

用UC3842做的开关电源的典型电路见图1。过载和短路保护&#xff0c;一般是通过在开关管的源极串一个电阻&#xff08;R4&#xff09;&#xff0c;把电流信号送到3842的第3脚来实现保护。 当电源过载时&#xff0c;3842保护动作&#xff0c;使占空比减小&#xff0c;输出电压降…

旅游服务平台可视化大屏界面,UI设计PS资料

大屏通过实时的数据展示&#xff0c;可及时发现数据的变化和异常&#xff0c;以便及时采取措施。现分享蓝色简约大气旅游服务平台、蓝色渐变科技旅游服务平台可视化界面的Photoshop源文件&#xff0c;供UI设计师们快速获取PSD源文件完成工作。 若需更多 大屏组件&#xff0c;请…

图纸加密软件哪个好用丨强烈推荐这个CAD图纸加密小技巧

只有身处设计行业的老板&#xff0c;也会设身处地的感受到&#xff0c;图纸加密软件的重要性&#xff01; 因为一个图纸可能就是一单生意&#xff0c;一单生意可能就能决定公司一年的营收。所以&#xff0c;选择适合企业饿图纸加密软件势在必行。 哪个图纸加密软件比较好用呢&…

下载svn client,小乌龟

给兄弟们提供一个下载svn client的软件连接 不好用包退货 https://sourceforge.net/projects/tortoisesvn/ 点击download即可

PyQt6 QFontDialog字体对话框控件

锋哥原创的PyQt6视频教程&#xff1a; 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计50条视频&#xff0c;包括&#xff1a;2024版 PyQt6 Python桌面开发 视频教程(无废话版…

Java 数据结构篇-实现堆的核心方法与堆的应用(实现 TOP-K 问题:最小 k 个数)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 堆的说明 2.0 堆的成员变量及其构造方法 3.0 实现堆的核心方法 3.1 实现堆的核心方法 - 获取堆顶元素 peek() 3.2 实现堆的核心方法 - 下潜 down(int i) 3.3 实…

嵌入式串口输入详细实例

学习目标 掌握串口初始化流程掌握串口输出单个字符掌握串口输出字符串掌握通过串口printf熟练掌握串口开发流程学习内容 需求 串口循环输出内容到PC机。 串口数据发送 添加Usart功能。 首先,选中Firmware,鼠标右键,点击Manage Project Items 接着,将gd32f4xx_usart.c添…

xcode无线真机调试详细图文步骤

步骤一、 步骤二&#xff1a; 步骤三&#xff1a; 配置完到这里&#xff0c;点击真机右键&#xff0c;菜单栏并未出现connect via ip address 选项&#xff0c;也没出现无线连接的小地球图标&#xff0c;别慌&#xff0c;接着进行下一步操作即可。 步骤四&#xff1a; 1.打开…

什么是同源策略?

同源 同源指的是URL有相同的协议、主机名和端口号。 同源策略 同源策略指的是浏览器提供的安全功能&#xff0c;非同源的RUL之间不能进行资源交互 跨域 两个非同源之间要进行资源交互就是跨域。 浏览器对跨域请求的拦截 浏览器是允许跨域请求的&#xff0c;但是请求返回…

手机端升级ChatGPT失败怎么办?解决方案

昨天一个朋友说他手机端升级失败如下图 其实手机端对IP环境要求更严格&#xff0c;升级失败很正常&#xff0c;解决办法就是使用电脑端就可以了&#xff0c;电脑端对IP环境相对来说没有手机那么严格 不管手机电脑&#xff0c;都要用最纯净的IP才行&#xff0c;如果不行&#xf…