大学生创新创业网站开发海淀最新消息今天

张小明 2026/1/7 23:09:32
大学生创新创业网站开发,海淀最新消息今天,代码型网页制作软件,soho做网站引流模块基础模块三种引流模块是从宿主机一层层往外扩展的叠加#xff0c;是产品网络相关的基础形态。宿主机虚拟 IP 引流在宿主机上配置多个虚拟 IP#xff0c;并通过 iptables DNAT 规则将访问这些IP的流量透明转发至欺骗服务。背景服务位于虚拟机中#xff08;安全性考虑…引流模块基础模块三种引流模块是从宿主机一层层往外扩展的叠加是产品网络相关的基础形态。宿主机虚拟 IP 引流在宿主机上配置多个虚拟 IP并通过 iptables DNAT 规则将访问这些IP的流量透明转发至欺骗服务。背景服务位于虚拟机中安全性考虑监听特定端口虚拟机使用桥接方式连接到宿主机。带来的限制欺骗服务只能通过虚拟机的 IP 地址访问链路只有一条。考虑如何在宿主机内增加访问这个欺骗服务的链路增加 IP 并且将这个 IP 的流量重定向到欺骗服务所在虚拟机中增加流量代理将流量代理至欺骗服务的端口上业务采取的是第一种方式增加虚拟IP并且使用 iptables 将流量 DNAT 至虚拟机上这样可以保持服务感知的源地址不变。实现增加的虚拟 IP 有几种方式早期业务使用第二种方式直接在物理网卡上增加 IP使用 macvlan 虚拟网卡然后再虚拟网上添加 IP使用 netns 隔离 IP每个 IP 独占一个命名空间以及 MAC 地址选择第二种方案是第一种方案过于简陋第三种方案未采用是由于当时对网络命名空间不熟悉。创建网卡添加 IP$ ip link add link br0 name macvlan0 type macvlan$ ip link set macvlan0 up$ ip addr add 192.168.32.247/24 dev macvlan0$ ip addr show macvlan0增加 iptables DNAT 规则将访问 192.168.32.247 的流量重定向至 192.168.32.245 上虚拟机 IP$ iptables -t nat -A PREROUTING -d 192.168.32.247/32 -j DNAT --to-destination 192.168.32.245前置条件$ iptables -P FORWARD ACCEPT$ sysctl -w net.ipv4.ip_forward1在 iptables 的加持下虚拟网卡只用于内核回复 ARP Request后续的 TCP 通信流量不会经过这个网卡。简单的网络拓扑如下虚拟机使用桥接模式在 DNAT 规则增加后通过 192.168.32.247 也可以访问到虚拟机。┌───────────────────────────────────────────┐│ Host ││ ┌─────────────────┐ ││ │ vm1 │ ││ │ 192.168.32.245 │ ││ │ eth0 │ ││ └────────│────────┘ ││ ┌── vnet1 ││ │ │ ││ │ │ 192.168.32.247 ││ DNAT │ │ ─── macvlan0 ││ │ │ ││ │ │ ││ └──── br0 192.168.32.251 │└──────────────────│────────────────────────┘eth0服务器部署代理节点引流通过部署代理节点 agent监听指定IP地址及端口并将接收到的流量代理至欺骗服务。背景目前在宿主机环境只能增加同网段的IP那不同子网的 IP 如何引流答加一个流量代理。代理的 agent 部署在客户业务机器内管理端将需要代理的规则下发至 agentagent 监听端口并且将流量代理至欺骗服务。这样存在一个问题欺骗服务需要获取真实的的对端地址简单的代理会丢失这个信息拿到的对端地址是 agent 的本地地址。对于 Service 而言conn.RemoteAddr() 得到的结果是正确的这是直连的结果。connUser ------- Serviceip1 ip3pconn.RemoteAddr() 得到的结果是代理 agent 地址不符合期望uconn pconnUser ------- Proxy ------- Serviceip1 ip2 ip3如何解决这个问题宿主机增加一个网关服务代理 agent 携带 uconn.RemoteAddr() 等相关元数据发送至网关服务网关服务收到元数据后增加 SNAT 规则并且将流量代理至欺骗服务这样欺骗服务感知到的对端地址是真实的。实现使用自定义协议在每个连接的头部增加8 字节魔数用于区分内部连接对端地址需要转发的目的地址欺骗服务增加 SNAT 的关键一步建立 TCP 连接前需要指定源地址源 IP 取 HostIP192.168.32.251端口通过 net.Listen(tcp, 0.0.0.0:0) 提前分配这样连接的五元组就固定下来后面规则就是机械的参数填充了。$ iptables -t nat -A POSTROUTING -s 192.168.32.251/32 -p tcp -m tcp --sport 34162 -j SNAT --to-source 192.168.1.55:46421简单的网络拓扑如下增加了 gateway 服务接收来自 代理 agent 的流量在代理连接建立之前增加 SNAT 规则。┌─────────────────────────────────────────────────┐│ Host ││ ┌─────────────────┐ ││ │ vm1 │ ││ │ 192.168.32.245 │ ││ │ eth0 │ ││ └────────│────────┘ ││ ┌────────── vnet1 ││ │ │ │ ││ │ │ │ 192.168.32.247 ││ SNAT│ DNAT│ │ ─── macvlan0 ││ │ │ │ ││ │ │ │ ││ Gateway └──── br0 192.168.32.251 │└────────────────────────│────────────────────────┘eth0交换机侧虚拟网络引流在核心交换机侧部署虚拟网络节点创建虚拟 VLAN/VXLAN IP 并监听指定IP地址及端口将流量代理至欺骗服务。背景继续扩大感知面在代理节点 agent 的基础上同网段、不同网段已经能够覆盖。但是都是针对已存在的网段进行引流这部分在整个网络中的比例是比较低的如果可以覆盖到这些不存在的网络那么可以极大增加感知面。如何虚拟不存在的网络这里涉及到交换机的一些原理暂时不考虑 vxlan二层交换机通过 VLAN 创建一个独立的广播域三层交换机为 VLAN 创建一个虚拟接口并且为这个接口分配网关和掩码192.168.1.1/24三层交换机包的路由查询将数据包从目标网段对应的 VLAN 接口发送出去ACCESS 接口包出去的时候剥离 VLAN tag 包进入则打上 VLAN tagTRUNK 接口可以收到所有的网络数据包内核支持 vlan 虚拟网卡可以使用内核对 vlan tag 解析封装和解封装。实现利用的交换机的特性提前做一些操作分配 vlan 和对应的网段分配 trunk 口这样该 trunk 口接入的服务器相当于核心交换机下的接入交换机在接入的服务器内部署代理 agent 的基础上只需要额外做一件事情管理 vlan 网卡和 ip早期没有接触过 netns这些操作都是在 host 内完成的这里不讨论过时的设计了。遇到的一些问题和解决方案一个 agent 需同时接入交换机的 trunk 口使用了 netns 隔离网络来解决一个网段一个 VLAN 可能存在多个网段占用一个 netns。虚拟过万数量的 IP按照之前 agent 的监听逻辑一个 IP:Port 的监听就会占用一个 fd使用 iptablesipset DNAT 解决IP:Port 存入 hash:ip,port 的 ipset 中使用一条 iptables 规则匹配 ipset 将流量 DNAT 到一个监听地址上使用 netns 隔离 iptables 规则和监听地址整体 fd 占用数量较少整体方案如下创建网桥并且将物理网卡挂载在网桥上设置通信网卡及 IP用于流量代理和规则获取也挂在网桥上创建虚拟网络创建 netns创建 veth-peer宿主空间挂载在网桥上up 所有网卡在 netns 内部的 veth-peer 上创建虚拟 vlan 网卡并且增加 ip在 netns 内创建 ipset增加 iptables 规则agent 切换命名空间在 netns 内部监听端口这样一个进程可以监听多个命名空间内的地址# 创建网桥$ ip link add br1 type bridge$ ip link set br1 up$ ip lihk set eth0 master br1# 创建通信网卡保持存在一个基础的 IP 和外界通信$ ip link add link br1 name veth0 type vlan id 100$ ip link set veth0 up$ ip addr add 192.168.100.100/24 dev veth0# 创建虚拟网络$ ip netns add ns1$ ip link add veth1 type veth peer name eth0 netns ns1$ ip netns exec ns1 ip link set eth0 up$ ip netns exec ns1 ip link set lo up$ ip link set veth1 up$ ip link set veth1 master br1# 设置虚拟 VLAN(100) 网卡和添加 IP$ ip netns exec ns1 ip link add link eth0 name vlan100 type vlan id 100$ ip netns exec ns1 ip link set vlan100 up$ ip netns exec ns1 ip addr add 192.168.110.2/24 dev vlan100$ ip netns exec ns1 ip route add default via 192.168.110.1 onlink dev vlan100# 新增 iptables/ipset 规则$ ip netns exec ns1 ipset create ipset1 hash:ip,port$ ip netns exec ns1 iptables -t nat -A PREROUTING -p tcp -m set --match-set ipset1 dst,dst -j DNAT --to-destination 127.0.0.1:5550遇到的一些问题DNAT 127.0.0.1 需要开启 net.ipv4.conf.all.route_localnet1ipset 在 3.10 的内核上兼容性不好没有区分宿主机和命名空间只能通过命名进行区分解决网络侧的代理网络拓扑如下┌───────────────────────────────────────────────────────────────┐│ Host ││ ┌─────────────────┐ ┌─────────────────┐ ││ │ ns1 │ │ ns2 │ ││ │ │ │ │ ││ │ 192.168.100.2 │ │ 192.168.101.8 │ ││ │ vlan100 │ │ vlan101 │ ││ │ │ │ │ │ │ ││ │ eth0 │ │ eth0 │ ││ 192.168.100.100 └────────│────────┘ └────────│────────┘ ││ veth0 veth1 veth2 ││ │ │ │ ││ └───────────────────│─────────────────────┘ ││ │ ││ br0 │└────────────────────────────│──────────────────────────────────┘eth0如果是多张网卡那么保持基础通信的 IP新增一个网桥连接虚拟网络和物理网卡即可这样 ns1 和 ns2 就独立不受影响了┌───────────────────────────────────────────────────────────────┐│ Host ││ ┌─────────────────┐ ┌─────────────────┐ ││ │ ns1 │ │ ns2 │ ││ │ │ │ │ ││ │ 192.168.100.2 │ │ 192.168.101.8 │ ││ │ vlan100 │ │ vlan101 │ ││ │ │ │ │ │ │ ││ │ eth0 │ │ eth0 │ ││ 192.168.100.100 └────────│────────┘ └────────│────────┘ ││ veth0 veth1 veth2 ││ │ │ │ ││ └───────────────────│ │ ││ │ │ ││ br1 br2 │└────────────────────────────│─────────────────────│────────────┘eth0 eth1vxlan 支持同样需要交换机进行配置另外使用 bgp 协议来动态控制路由frr 提供这些功能设置好 AS 号即可。其他和网络相关的逻辑参考 几种通过 iproute2 来打通不同节点间容器网络的方式关于 vxlan 如何跨节点通信网络配置几乎相同。完整的网络拓扑如下vxlan 的命名空间对应一个网段一个 vni 对应一个网桥通过网桥连接命名空间和 vtep 设备。┌─────────────────────────────────────────────────────────────────────────────────┐│ Host ││ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ││ │ ns1 │ │ ns2 │ │ ns3 │ ││ │ │ │ │ │ │ ││ │ 192.168.100.2 │ │ 192.168.101.8 │ │ │ ││ │ vlan100 │ │ vlan101 │ │ │ ││ │ │ │ │ │ │ │ 10.1.0.10 │ ││ │ eth0 │ │ eth0 │ │ eth0 │ ││ 192.168.100.100 └────────│────────┘ └────────│────────┘ └────────│────────┘ ││ veth0 veth1 veth2 veth3 ││ │ │ │ │ ││ └──────────────────│ │ │── vtep1 ││ │ │ │ ││ br1 br2 br3 │└───────────────────────────│────────────────────│────────────────────────────────┘eth0 eth1 eth2└────────────────────│────────────────────┘switch业务迭代变更这部分是属于欺骗服务宿主机内部的变更逻辑和前面几个技术点比起来没有那么纯粹夹杂着业务逻辑。这部分忽略前面三个引流部分目前的网络拓扑为┌───────────────────────────────────────────┐│ Host ││ ┌─────────────────┐ ││ │ vm1 │ ││ │ 192.168.32.245 │ ││ │ eth0 │ ││ └────────│────────┘ ││ vnet1 ││ │ ││ br0 192.168.32.251 │└──────────────────│────────────────────────┘eth0内部化 VM IP网络环境出现重复 IP 的情况下对 vm 存活的判断可能出现错误而回收 vm。将 vm 内部化来避免这个问题如果 IP 访问失败也不会影响 vm 的状态新增一个 br1 复用之前的多 IP DNAT 逻辑即可。┌───────────────────────────────────────────┐│ Host ││ ┌─────────────────┐ ││ │ vm1 │ ││ │ 172.16.23.2 │ ││ │ eth0 │ ││ └────────│────────┘ ││ ┌── vnet1 ││ │ │ ││ DNAT│ br1 172.16.23.1 ││ │ ││ └─── br0 192.168.32.251 │└──────────────────│────────────────────────┘eth0业务架构调整现在由于性能和后面维护考虑决定将 vm 中的欺骗服务移动至 docker 容器内出于安全性考虑保留 vmdocker 相对 vm 更容易逃逸性能更优容器的占用远低于 vm这样可以启动更多的欺骗服务可维护性更强服务的部署逻辑都在 dockefile 中被持久化windows 类型的 vm 保持不变调整后的网络拓扑为一个异构网络架构如下┌───────────────────────────────────────────────────────────────┐│ Host ││ ┌─────────────────────────┐ ┌─────────────┐ ││ │ vm1 │ │ vm2(win) │ ││ │ ┌────────┐ ┌────────┐ │ │ │ ││ │ │10.1.0.2│ │10.1.0.3│ │ │ │ ││ │ │ eth0 │ │ eth0 │ │ │ │ ││ │ └───│────┘ └───│────┘ │ │ │ ││ │ veth1 veth2 │ │ │ ││ │ └──────│─────┘ │ │ │ ││ │ docker0 │ │ │ ││ │ 10.1.0.1 │ │ │ ││ │ │ │ │ ││ │ 172.16.23.2 │ │ 172.16.23.3 │ ││ │ eth0 │ │ eth0 │ ││ └────────────│────────────┘ └──────│──────┘ ││ vnet1 vnet2 ││ └───────────────│─────────┘ ││ 192.168.32.251 br1 ││ br0 172.16.23.1 │└────────│──────────────────────────────────────────────────────┘eth0如何访问新架构的欺骗服务之前访问欺骗服务的方式直接访问 IP流量 DNAT 至 vm访问代理监听的端口通过 gateway 转发至欺骗服务如果把 gateway 的转发功能部署在 vm 里面host 把所有的流量转发至 vm 内那么可以复用之前 SNAT 规则。如何将 host 内的流量转发至 vm在交换机侧虚拟网络引流逻辑上在命名空间内部有一条 iptables 规则把流量 DNAT 到一个端口上对于 IP 的访问复用这个逻辑代理流量的访问增加一个代理即可对于欺骗服务而言都是透明的调整后的流量链路如下:┌───────────────────────────────────────────────────────────────┐│ Host ││ ┌─────────────────────────┐ ┌─────────────┐ ││ │ vm1 │ │ vm2(win) │ ││ │ ┌────────┐ ┌────────┐ │ │ │ ││ │ │ srv1 │ │ srv2 │ │ │ srv3 │ ││ │ │10.1.0.2│ │10.1.0.3│ │ │ │ ││ │ └───│────┘ └───│────┘ │ │ 172.16.23.3 │ ││ │ └──────│─────┘ │ └──────│──────┘ ││ │ SNAT │ SNAT ││ │ │ │ │ ││ │ gateway2 (Listen) │ gateway2 (Listen) ││ │ │ 172.16.23.2│ │ 192.168.32.251││ └────────────│────────────┘ │ ││ └───────────────│─────────┘ ││ L4 Proxy ││ │ ││ 192.168.32.100 gateway1 (Listen) ││ 192.168.32.101 │ 192.168.32.251 ││ br0 ───────── DNAT ───────────┘ ││ │ │ ││ │ ──────── L4 Proxy ─────────┘ │└────────│──────────────────────────────────────────────────────┘eth0调整后的 gateway1 成为了整个所有服务的流量入口后面可以根据这个特性对架构进行调整。异构问题如何解决在新架构的访问链路中两类欺骗服务明显的异构监听的 IP 不在一个层级一类是 10.* 一类是 172.*。目前 gateway2 需要处理两套转发逻辑除了丑一些功能是没有问题的。现在有一个需求需要打通欺骗服务的网络链路srv1/srv2/srv3 可以互相访问对方的服务端口。同构网络架构方案对于同网络架构的网络打通方案见 几种通过 iproute2 来打通不同节点间容器网络的方式。异构网络架构方案比较容易想到的方案是少了一层那么为了兼容增加一层处理逻辑即可。有了 交换机侧虚拟网络引流 的经验netns 可以在这个地方尝试使用。理论上以下的网络拓扑是可以正常运行的但是存在一个问题网桥 br-win 在 netns 里面kvm 不能指定这个网桥。┌─────────────────────────────────────────────────────────────────────┐│ Host ││ ┌─────────────────────────┐ ┌─────────────────────────┐ ││ │ vm1 │ │ netns_win │ ││ │ ┌────────┐ ┌────────┐ │ │ ┌────────┐ ┌────────┐ │ ││ │ │10.1.0.2│ │10.1.0.3│ │ │ │10.2.0.2│ │10.2.0.3│ │ ││ │ │ eth0 │ │ eth0 │ │ │ │ eth0 │ │ eth0 │ │ ││ │ └───│────┘ └───│────┘ │ │ └───│────┘ └───│────┘ │ ││ │ veth1 veth2 │ │ vnet2 vnet3 │ ││ │ └──────│─────┘ │ │ └──────│─────┘ │ ││ │ docker0 │ │ br-win │ ││ │ 10.1.0.1 │ │ 10.2.0.1 │ ││ │ │ │ │ ││ │ 172.16.23.2 │ │ 172.16.23.3 │ ││ │ eth0 │ │ eth0 │ ││ └────────────│────────────┘ └────────────│────────────┘ ││ vnet1 veth-win ││ └───────────────│───────────────┘ ││ 192.168.32.251 br1 ││ br0 172.16.23.1 │└────────│────────────────────────────────────────────────────────────┘eth0所以需要调整一下把 br-win 放在 host 内使用 veth-peer 把 ip 留在命名空间内变更后的网络拓扑如下┌─────────────────────────────────────────────────────────────────────┐│ Host ││ ┌─────────────────────────┐ ││ │ vm1 │ ││ │ ┌────────┐ ┌────────┐ │ ┌────────┐ ┌────────┐ ││ │ │10.1.0.2│ │10.1.0.3│ │ │10.2.0.2│ │10.2.0.3│ ││ │ │ eth0 │ │ eth0 │ │ │ eth0 │ │ eth0 │ ││ │ └───│────┘ └───│────┘ │ └───│────┘ └───│────┘ ││ │ veth1 veth2 │ vnet2 vnet3 ││ │ └──────│─────┘ │ └──────│─────┘ ││ │ docker0 │ br-win ││ │ 10.1.0.1 │ │ ││ │ │ veth-win1 ││ │ │ ┌────────────│────────────┐ ││ │ │ │ netns eth1 │ ││ │ │ │ win 10.2.0.1 │ ││ │ │ │ │ ││ │ 172.16.23.2 │ │ 172.16.23.3 │ ││ │ eth0 │ │ eth0 │ ││ └────────────│────────────┘ └────────────│────────────┘ ││ vnet1 veth-win0 ││ └───────────────│───────────────┘ ││ 192.168.32.251 br1 ││ br0 172.16.23.1 │└────────│────────────────────────────────────────────────────────────┘eth0如何对恶意流量进行分析业务中使用 suricata 对流量进行分析部署在欺骗服务所在的网桥上这个位置获取拿到原始的流量数据。如果是在 br0 的位置抓包拿到的流量会携带一个 L4 Proxy 的源数据头这个数据头会导致 suricata 识别不了一些协议如何 HTTP。┌────────────────────────────────────────────────────────────────┐│ Host ││ ┌─────────────────────────┐ ││ │ vm1 │ ││ │ ┌────────┐ ┌────────┐ │ ┌────────┐ ││ │ │ srv1 │ │ srv2 │ │ │10.2.0.2│ ││ │ │10.1.0.2│ │10.1.0.3│ │ │ eth0 │ ││ │ └───│────┘ └───│────┘ │ └───│────┘ ││ │ └──────│─────┘ │ │ ││ │ suricata ──│ │ suuricata ──│ ││ │ SNAT │ SNAT ││ │ │ │ ┌───────────│───────────┐ ││ │ │ │ │ │ │ ││ │ gateway2 (Listen) │ │ gateway2 (Listen)│ ││ │ │ 172.16.23.2│ │ │172.16.23.3│ ││ └────────────│────────────┘ └───────────│───────────┘ ││ └───────────────│──────────────┘ ││ L4 Proxy ││ │ ││ 192.168.32.100 gateway1 (Listen) ││ 192.168.32.101 │ 192.168.32.251 ││ br0 ───────── DNAT ───────────┘ ││ │ │ ││ │ ──────── L4 Proxy ─────────┘ │└────│───────────────────────────────────────────────────────────┘eth0suricata 在没有流量的情况下也就是有一定的资源占用的整个 Host 机器可能存在多个 vm意味着也存在多个 suricata。目标减少 suricata 数量复用 suricata 资源降低服务管理的成本。gateway1 是所有流量的入口只要拿到 gateway1 和 gateway2 之间的流量并且去掉头部就是原始流量了。比较占用性能的方案如下抓包 br1 网桥获取所有的网桥流量新建虚拟 tap 设备指定网卡为 tap 设备启动 suricata建立连接增加连接相关的缓存对包进行匹配和重组匹配流量头去掉流量头修改 seq/ack 序号重新生成一个网络数据包新的数据包写入至 tap 设备中接收 suricata 的事件使用缓存相关的数据订正 IP 相关信息调整后的的网络拓扑如下新增 vtap0 给 suricata 抓包分析恶意流量┌─────────────────────────────────────────────────────────────────────┐│ Host ││ ┌─────────────────────────┐ ││ │ vm1 │ ││ │ ┌────────┐ ┌────────┐ │ ┌────────┐ ┌────────┐ ││ │ │10.1.0.2│ │10.1.0.3│ │ │10.2.0.2│ │10.2.0.3│ ││ │ │ eth0 │ │ eth0 │ │ │ eth0 │ │ eth0 │ ││ │ └───│────┘ └───│────┘ │ └───│────┘ └───│────┘ ││ │ veth1 veth2 │ vnet2 vnet3 ││ │ └──────│─────┘ │ └──────│─────┘ ││ │ docker0 │ br-win ││ │ 10.1.0.1 │ │ ││ │ │ veth-win1 ││ │ │ ┌────────────│────────────┐ ││ │ │ │ netns eth1 │ ││ │ │ │ win 10.2.0.1 │ ││ │ │ │ │ ││ │ 172.16.23.2 │ │ 172.16.23.3 │ ││ │ eth0 │ │ eth0 │ ││ └────────────│────────────┘ └────────────│────────────┘ ││ vnet1 veth-win0 ││ └───────────────│───────────────┘ ││ 192.168.32.251 br1 ─────────────┐ ││ br0 172.16.23.1 vtap0 │└────────│────────────────────────────────────────────────────────────┘eth0一些想法netns 是个好东西对于网络的隔离可以做到非常灵活的程度涉及对外自定义的协议尽量使用常见协议否则外部一旦部署升级也会麻烦一些涉及三方服务也不能识别比如 suricata 如果是用 HA Proxy 是可以支持剥离的
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

温州市建设工程招投标网站wordpress文章postid

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、Zookeeper 1.Zookeeper简介 2.Zookeeper 工作机制 3.Zookeeper 数据结构 4.Zookeeper 应用场景 5.Zookeeper 选举机制 6.部署 Zookeeper 集群 二、Kaf…

张小明 2026/1/6 3:52:37 网站建设

上海私人网站建设广州安全教育平台登录

LIO-SAM多机器人分布式SLAM:从单机到集群的技术突破与实战解析 【免费下载链接】LIO-SAM LIO-SAM: Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping 项目地址: https://gitcode.com/GitHub_Trending/li/LIO-SAM 随着机器人应用场景的不断…

张小明 2026/1/4 19:53:39 网站建设

广西网站推广安徽省建设厅网站个人怎么注册

资源价值定位 【免费下载链接】韭菜的自我修养电子版资源介绍分享 《韭菜的自我修养》电子版资源介绍本仓库提供《韭菜的自我修养》一书的电子版资源下载,包括PDF、MOBI和EPUB格式,方便读者在不同设备上阅读 项目地址: https://gitcode.com/Resource-B…

张小明 2026/1/6 4:06:58 网站建设

做虚拟主机网站企业网站设计教程

特性16V输入耐受电压4.2V充电终止电压2.9V涓流充电阈值充电电流可编程,最高可达1.2A未充电时电池电流为250nA软启动限制浪涌电流ESOP8 / DFN2x2-8 / DFN2x3-8 / SOT23-6

张小明 2026/1/6 16:49:47 网站建设

智慧团建官方网站电脑版安徽科技网站建设

你是否曾经为了获取中国的行政区划数据而烦恼?现在,ChinaAdminDivisonSHP项目为你提供了一套完整的解决方案。这个项目就像地理数据的"乐高积木",让你能够轻松搭建各种地图应用。 【免费下载链接】ChinaAdminDivisonSHP 项目地址…

张小明 2026/1/7 4:39:31 网站建设

网站建设和管理培训排行网站模板

在人工智能快速发展的今天,语音识别技术正成为人机交互的重要桥梁。FunASR作为开源端到端语音识别工具包,通过持续技术创新重新定义语音交互体验。本文将带你深入了解语音识别技术的核心原理、关键技术突破及实际应用场景。 【免费下载链接】FunASR A Fu…

张小明 2026/1/4 19:45:29 网站建设