当前位置: 首页 > article >正文

Windows下利用Docker容器化技术实现多EasyConnect实例共存

1. 为什么我们需要在Windows上运行多个EasyConnect如果你和我一样是个经常需要穿梭在不同项目、不同办公环境之间的打工人那你肯定对EasyConnect这个软件又爱又恨。爱它是因为它确实是我们连接公司内网、访问内部资源的“通行证”恨它是因为它那霸道的独占性——一个电脑上同一时间只能登录一个账号连接一个VPN服务端。我遇到过太多次这样的尴尬场景正用着办公VPN处理日常邮件和流程突然项目组的同事发来消息需要紧急登录项目VPN查看一个线上问题。怎么办只能老老实实退出办公VPN再登录项目VPN。等处理完项目问题再切换回来。一来二去不仅操作繁琐还经常打断工作流有时候切换VPN时正在编辑的文档、没保存的代码都可能受影响。这种“鱼与熊掌不可兼得”的痛点相信很多朋友都深有体会。那有没有办法让它们“和平共处”呢当然有这就是我们今天要聊的核心利用Docker容器化技术在Windows系统上实现多个EasyConnect实例的共存。简单来说就是让你的电脑本地运行一个EasyConnect比如用于日常办公同时再让Docker“变”出一个或多个独立的、隔离的“小电脑”容器每个“小电脑”里再运行一个EasyConnect比如用于连接项目VPN。这样你就能同时登录两个甚至多个VPN了办公和项目两不误效率直接翻倍。这个方案听起来有点技术含量但别怕我一步步带你走下来你会发现它其实比想象中简单。整个过程就像搭积木先准备好Docker这个“工具箱”Docker Desktop然后从仓库里搬来一个现成的、专门为EasyConnect定制的“积木块”docker-easyconnect镜像最后用几条命令把它搭起来运行。我们甚至不需要在容器里安装复杂的桌面环境因为镜像已经内置了VNC服务我们可以用VNC Viewer这个“遥控器”远程操作容器里的EasyConnect界面就像操作一台真正的远程电脑一样。接下来我们就从零开始手把手完成这个“魔法”。我会把我在实践中踩过的坑、总结的技巧都分享给你保证你跟着做就能成功。2. 搭建舞台Windows上的Docker环境全攻略万事开头难但第一步往往是最简单的。我们要做的第一件事就是在你的Windows电脑上安装Docker。别听到“Docker”就觉得是运维大佬的专属现在的Docker Desktop对Windows用户已经非常友好了。2.1 安装Docker Desktop选对模式是关键首先打开你的浏览器访问Docker官网找到Docker Desktop for Windows的下载链接。下载完成后直接双击安装。安装过程中你会遇到一个重要的选择使用WSL 2后端还是Hyper-V后端这里我强烈推荐你选择WSL 2 模式。这是微软和Docker官方主推的集成方案。WSLWindows Subsystem for Linux可以理解为在Windows内部原生运行的一个轻量级Linux子系统。Docker Desktop基于WSL 2运行性能损耗更小资源占用更低而且与Windows文件系统的互通性更好。如果你的系统是Windows 10版本2004及更高或者Windows 11通常都支持WSL 2。安装程序可能会提示你启用WSL功能或者下载一个Linux内核更新包跟着提示操作就行基本都是“下一步”搞定。安装完成后重启电脑然后在开始菜单找到Docker Desktop并启动。你会看到系统托盘区出现一个小鲸鱼图标这表示Docker服务正在运行。第一次启动时Docker可能会要求你登录账户你可以选择跳过。启动成功后我建议你打开命令行PowerShell或CMD都可以输入docker version命令。如果能看到Client和Server的版本信息恭喜你Docker环境已经准备就绪了这一步是基础一定要确保Docker能正常运行后面所有操作都依赖它。2.2 理解核心概念镜像、容器与仓库在动手拉取EasyConnect镜像之前我们花两分钟快速理解一下Docker的三个核心概念这样你操作起来心里更有底。镜像Image你可以把它想象成一个软件的“安装包”或者“模板”。它包含了运行某个软件所需的一切代码、运行时环境、库、环境变量和配置文件。我们今天要用的hagb/docker-easyconnect就是一个别人已经打包好的、专门用来运行EasyConnect的镜像。容器Container容器是镜像运行时的实例。如果把镜像比作“蓝图”那么容器就是按照蓝图建造出来的、可以住人的“房子”。我们运行一个镜像就会产生一个容器。这个容器是独立、隔离的有自己的进程空间、网络配置等。我们最终的目标就是创建并运行一个EasyConnect容器。仓库Repository仓库是存放镜像的地方就像手机的应用商店。Docker Hub是最大的公共仓库我们等下就是从那里拉取镜像。简单记就是从仓库Docker Hub拉取镜像hagb/docker-easyconnect然后用一条命令让这个镜像跑起来变成一个正在运行的容器。这个容器里就有一个可以独立工作的EasyConnect。3. 寻找合适的“积木”选择与获取EasyConnect镜像Docker环境好了接下来我们得找到能用的EasyConnect镜像。这里有个关键点不是随便一个EasyConnect镜像都能用它必须和你所要连接的VPN服务端版本兼容。用错了版本很可能连不上。3.1 如何确定服务端版本这是整个流程中非常关键的一步决定了你该拉取哪个标签Tag的镜像。你需要联系你的VPN管理员或者自己尝试获取这个信息。通常你可以尝试访问一个特定的地址来查看。在你的浏览器中输入https://你的VPN服务器地址/por/ec_pkg.csp?platformlinux。注意把“你的VPN服务器地址”替换成真实的地址比如https://vpn.your-company.com。如果服务器提供了这个接口你可能会看到类似这样的返回信息linux_767 7.6.7.3 0 linux_767 7.6.7.3 0 linux_767 7.6.7.3 0 linux_767 7.6.7.3 0或者更简洁的版本号信息。这里的关键是识别出版本号例如上面这个例子中版本号就是7.6.7。如果看不到最稳妥的办法还是直接询问IT支持人员。3.2 镜像版本Tag的选择策略我们使用的镜像是来自Docker Hub上hagb/docker-easyconnect这个仓库。它的版本标签Tag命名规则通常与EasyConnect服务端版本相关。根据社区的经验常见的对应关系如下Tag为7.6.3这个镜像通常用于连接版本低于 7.6.7的EasyConnect服务端。Tag为7.6.7这个镜像通常用于连接版本等于或高于 7.6.7的EasyConnect服务端。这只是一个经验规则。镜像的维护者可能会更新所以最准确的方法是去该镜像的Docker Hub页面https://hub.docker.com/r/hagb/docker-easyconnect查看它的描述文档里面通常会写明兼容性说明。举个例子假如你公司的办公VPN服务端版本是7.6.8项目VPN服务端版本是7.6.5。那么你本地Windows安装的EasyConnect客户端通常兼容性较好可以连接办公VPN。而对于项目VPN你就需要运行一个Tag为7.6.3的Docker容器来连接它。确定好版本后打开你的命令行PowerShell输入拉取镜像的命令。比如你需要7.6.7版本的镜像docker pull hagb/docker-easyconnect:7.6.7Docker会自动从Docker Hub下载这个镜像。你可以通过docker images命令查看本地已经下载好的镜像列表。看到hagb/docker-easyconnect出现在列表里这一步就成功了。4. 启动你的第一个EasyConnect容器镜像下载到本地就像游戏安装包已经下好了接下来就是安装并运行它。这一步我们会通过一条看起来有点长的命令来启动容器别担心我会把每个参数都拆开讲明白。4.1 解密Docker运行命令下面是一条典型的、功能完整的运行命令。我建议你先在文本编辑器比如VS Code或Notepad里把它写好替换掉你需要自定义的部分然后再复制到命令行中执行。docker run --rm --device /dev/net/tun --cap-add NET_ADMIN -ti -e PASSWORD你的密码 -e DISABLE_PKG_VERSION_XML1 -v D:/docker_data/ec_container:/root -p 127.0.0.1:5901:5901 -p 127.0.0.1:1080:1080 -p 127.0.0.1:8888:8888 hagb/docker-easyconnect:7.6.7我们来逐一拆解这些参数理解了它们你就能举一反三docker run这是启动容器的核心命令。--rm这个参数非常实用。它表示当容器停止运行后自动删除这个容器。这能帮你避免产生大量无用的、停止状态的容器节省磁盘空间。在调试阶段建议加上等一切稳定了你可以去掉它让容器后台持久运行。--device /dev/net/tun --cap-add NET_ADMIN这两个参数是网络权限的关键。/dev/net/tun是Linux系统中的虚拟网络设备EasyConnect需要用它来建立VPN隧道。NET_ADMIN则是赋予容器进行网络管理如配置路由、防火墙的权限。没有它们VPN功能无法正常工作。-ti这是-t和-i的组合。-t分配一个伪终端-i保持标准输入打开。简单说就是让容器能交互式运行我们可以看到它的输出日志。-e PASSWORD你的密码设置环境变量。这里设置的是VNC远程桌面的连接密码。请务必将“你的密码”替换成一个强密码例如MyVncPass123!。-e DISABLE_PKG_VERSION_XML1另一个环境变量。设置这个可以跳过一些版本检查避免因版本查询问题导致容器启动失败提高兼容性。-v D:/docker_data/ec_container:/root这是数据卷映射极其重要。它将你Windows本地的D:/docker_data/ec_container目录挂载到容器内部的/root目录。这样EasyConnect在容器内生成的配置文件、日志等都会保存在你的Windows硬盘上。即使容器被删除下次用同一个目录启动新容器你的VPN配置如服务器地址、账号依然存在无需重复输入。请确保D:/docker_data/ec_container这个路径在你的电脑上真实存在如果不存在先在D盘创建好这个文件夹。-p 127.0.0.1:5901:5901端口映射。将容器内部的5901端口VNC服务端口映射到本机127.0.0.1的5901端口。这样我们才能用VNC Viewer从Windows连接到容器里的桌面。-p 127.0.0.1:1080:1080将容器内部的1080端口SOCKS5代理端口映射出来。连接VPN后我们可以让浏览器或其他软件通过这个端口的SOCKS5代理来访问VPN内网资源。-p 127.0.0.1:8888:8888将容器内部的8888端口HTTP代理端口映射出来。作用同上提供HTTP代理。hagb/docker-easyconnect:7.6.7最后指定要运行的镜像名和标签请根据你的需要修改。4.2 首次运行与常见问题处理将修改好的命令粘贴到PowerShell中回车执行。第一次运行Docker会基于镜像创建并启动容器。你会看到终端开始滚动日志。你可能会看到类似Error: ipv4: FIB table does not exist.或Error: Missing goto target for action goto.的警告信息。别紧张这些通常可以忽略只要最后出现类似下面的关键信息就说明容器启动成功了New Xtigervnc server 容器ID:1 (root) on port 5901 for display :1. Use xtigervncviewer -SecurityTypes VncAuth,TLSVnc -passwd /tmp/tigervnc.xxxx/passwd 容器ID:1 to connect to the VNC server.看到这个说明容器内的VNC服务器已经在5901端口待命了。现在这个终端窗口会被占用并持续输出日志。你可以按CtrlC来停止容器因为加了--rm停止后容器会自动删除。测试成功后我们正式以后台守护模式运行它。在刚才的命令基础上加入-d参数并去掉-ti参数因为不需要交互式前台日志了。同时为了长期使用我们也可以去掉--rm参数。docker run -d --name my_project_vpn --device /dev/net/tun --cap-add NET_ADMIN -e PASSWORDMyVncPass123! -e DISABLE_PKG_VERSION_XML1 -v D:/docker_data/ec_container:/root -p 127.0.0.1:5901:5901 -p 127.0.0.1:1080:1080 -p 127.0.0.1:8888:8888 hagb/docker-easyconnect:7.6.7这里我多加了一个--name my_project_vpn参数给这个容器起了个名字方便以后管理。执行后容器会在后台静默运行。你可以用docker ps命令查看正在运行的容器确认它的状态是Up。5. 连接容器桌面VNC Viewer操作指南容器在后台跑起来了但EasyConnect是个有图形界面的客户端我们怎么操作它呢答案就是VNC Viewer。容器镜像已经内置了VNC服务器我们只需要在Windows上安装一个VNC客户端去连接它。5.1 安装与配置VNC Viewer去RealVNC官网下载VNC Viewer的安装包安装过程很简单。安装完成后打开它界面中间会有一个地址输入框。在地址框里输入127.0.0.1:5901然后回车。这里127.0.0.1就是你的本地电脑5901就是我们之前映射的端口。第一次连接会弹出安全警告点击“Continue”继续。接着会弹出密码框输入你在运行Docker命令时通过-e PASSWORD设置的那个密码比如MyVncPass123!。点击OK恭喜你你现在看到的窗口就是运行在Docker容器内部的“桌面”了。这个桌面非常精简通常中间就是EasyConnect的登录窗口。5.2 在容器内配置并连接VPN现在你可以像在普通电脑上一样操作了。在容器内的EasyConnect客户端输入你的第二个VPN例如项目VPN的服务器地址、用户名和密码然后点击登录。登录成功后容器内的EasyConnect就会建立一条独立的VPN通道。这时这个容器就变成了一个通往你第二个VPN内网的“网关”。怎么利用这个网关呢有两种主流方式浏览器代理和全局代理。方式一浏览器代理推荐灵活安全这是我最常用的方式只让特定的浏览器流量走VPN不影响其他软件的网络。以Chrome/Edge浏览器为例安装一个叫SwitchyOmega的插件。配置一个新的代理情景模式代理协议选择SOCKS5代理服务器127.0.0.1代理端口1080这就是我们映射出来的SOCKS5端口然后你可以配置“自动切换”规则。例如设置规则列表让你公司的项目内网域名如*.project.internal自动使用这个SOCKS5代理而其他所有网站直接连接。这样当你访问项目内部Wiki、GitLab或部署系统时流量会自动通过容器VPN当你刷微博、查资料时还是走你本地的正常网络互不干扰。方式二全局代理特定软件如果你想让某个不支持配置代理的桌面软件比如一个特定的数据库客户端、内部通讯工具也能访问VPN内网可以使用Proxifier这类工具。在Proxifier中配置一个SOCKS5代理服务器和端口同上127.0.0.1:1080然后为那个特定的软件.exe文件创建规则强制其流量通过这个代理。这样这个软件的所有网络请求就会经由容器VPN转发了。6. 进阶管理与多实例共存实践成功运行一个实例后你可能已经不满足于此了。比如你需要连接第三个VPN或者想更优雅地管理这些容器。这一章我们聊聊进阶操作。6.1 实现多个实例共存要运行第二个、第三个EasyConnect容器原理完全一样但必须注意一个核心问题端口冲突。你不能让两个容器都去映射本机的同一个端口比如5901。解决方案很简单为每个容器分配不同的本地端口。假设我们要运行第二个容器用于第三个VPN可以这样修改命令docker run -d --name my_another_vpn \ --device /dev/net/tun --cap-add NET_ADMIN \ -e PASSWORDAnotherPass456! \ -e DISABLE_PKG_VERSION_XML1 \ -v D:/docker_data/ec_container_2:/root \ -p 127.0.0.1:5902:5901 \ -p 127.0.0.1:1081:1080 \ -p 127.0.0.1:8889:8888 \ hagb/docker-easyconnect:7.6.3看变化在这里--name my_another_vpn给了容器一个新名字。-v D:/docker_data/ec_container_2:/root使用了不同的本地目录来存储配置避免和第一个容器混在一起。-p 127.0.0.1:5902:5901将容器的5901端口映射到本机的5902端口第一个容器用了5901。-p 127.0.0.1:1081:1080SOCKS5代理端口映射到本机的1081。-p 127.0.0.1:8889:8888HTTP代理端口映射到本机的8889。镜像Tag也可能根据VPN版本不同而改变这里示例用了7.6.3。这样第二个容器就独立启动了。你用VNC Viewer连接时地址就变成了127.0.0.1:5902密码是AnotherPass456!。在浏览器配置代理时如果需要访问这个VPN的内网就设置代理为127.0.0.1:1081。两个容器两个VPN完全独立互不影响。6.2 日常管理命令与小技巧掌握几个简单的Docker命令能让管理变得轻松docker ps查看所有正在运行的容器。docker ps -a查看所有容器包括已停止的。docker stop my_project_vpn停止名为my_project_vpn的容器。docker start my_project_vpn启动一个已停止的容器。docker restart my_project_vpn重启容器。docker rm my_project_vpn删除一个已停止的容器运行中的需先stop。docker logs my_project_vpn查看容器的日志输出排查问题时非常有用。一个实用技巧你可以把那条长长的docker run命令保存到一个文本文件里比如run_ec_project.bat批处理文件。以后每次开机只需要双击这个批处理文件容器就自动启动了。或者更专业一点研究一下Docker的--restart unless-stopped参数可以让容器在Docker服务启动时自动运行实现“开机自启”。7. 避坑指南与安全提醒这条路我走过也踩过一些坑。分享出来希望你能一路绿灯。网络问题有时候容器启动后VNC能连上但EasyConnect登录后无法访问内网资源。首先检查浏览器代理配置是否正确SOCKS5, 127.0.0.1, 端口1080。其次有些公司的网络策略比较严格可能需要配置额外的路由。这种情况相对复杂可以尝试在容器内检查路由表或者咨询网络管理员。性能与资源每个容器都会占用一定的内存和CPU。虽然不重但如果你同时运行好几个还是留意一下电脑的资源使用情况。老旧电脑可能需要酌情减少实例数量。安全是重中之重VNC密码一定要设置一个强密码不要用简单的123456。因为VNC端口5901, 5902...是映射在你本机的虽然通常是127.0.0.1仅本地访问但设置强密码是好习惯。数据目录通过-v参数映射的数据目录包含了你的VPN配置信息。请确保这个目录所在的位置是你信任的没有其他无关人员能随意访问。镜像来源我们使用的是Docker Hub上公开的hagb/docker-easyconnect镜像。对于任何第三方镜像都应保持一定的安全意识。好在这是一个开源项目代码在GitHub上可见相对可信。但原则上对于极度敏感的环境最安全的方式是审查代码后自己构建镜像。关于版本更新EasyConnect服务端和客户端可能会升级。如果某天发现容器内的客户端无法连接了除了检查网络也要考虑是否是版本兼容性问题。可以回到Docker Hub页面查看镜像是否有更新或者尝试更换其他Tag的镜像。最后我想说技术方案是死的人是活的。这个Docker方案完美地解决了我在Windows下多VPN共存的痛点让我再也不用在两个工作环境之间反复横跳。它就像给你的电脑加了一个“虚拟分身”专门用来处理另一条网络通道。整个过程从安装到配置大概只需要二三十分钟。一旦搭好就是一劳永逸的事情。如果你也受困于此不妨花点时间尝试一下这种效率提升带来的畅快感绝对值得这点投入。如果在操作中遇到任何问题不妨多看看项目的GitHub页面那里的Issues和讨论通常能找到答案。

相关文章:

Windows下利用Docker容器化技术实现多EasyConnect实例共存

1. 为什么我们需要在Windows上运行多个EasyConnect? 如果你和我一样,是个经常需要穿梭在不同项目、不同办公环境之间的打工人,那你肯定对EasyConnect这个软件又爱又恨。爱它,是因为它确实是我们连接公司内网、访问内部资源的“通行…...

从被动防御到主动免疫:IPDRR模型如何重塑企业网络安全韧性

1. 从“筑高墙”到“强免疫”:为什么你的企业安全需要一次思维升级 我见过太多企业,在安全建设上投入不菲,买最好的防火墙、最贵的入侵检测系统,安全策略文档堆起来能有一人高。但真出了事,比如一次勒索病毒攻击&#…...

HanLP 2.x 多任务模型实战:从安装到文本分析全流程

1. 为什么你需要HanLP 2.x的多任务模型? 如果你正在处理中文文本,比如想从一堆新闻里自动提取关键信息,或者给你的聊天机器人加上理解用户意图的能力,那你很可能需要一套好用的自然语言处理(NLP)工具。几年…...

LingJing(灵境)与外部虚拟机的网络穿透实战:从NAT困境到桥接畅通

1. 为什么你的反向Shell总是“失联”?从NAT困境说起 如果你和我一样,是个喜欢在本地搭建渗透测试环境的爱好者,那你肯定遇到过这个让人抓狂的场景:在LingJing(灵境)靶场里,靶机明明启动了&#…...

BEYOND REALITY Z-Image作品分享:自然光人像系列——晨光/正午/黄昏三种氛围呈现

BEYOND REALITY Z-Image作品分享:自然光人像系列——晨光/正午/黄昏三种氛围呈现 1. 引言:当光影遇见AI人像 你有没有想过,一张AI生成的人像照片,能有多真实? 不是那种一眼就能看出来的“AI感”,而是光影…...

告别“发光纸片人”:Substance 3D 与 Unity 2D URP 联动的次世代 2D 动态光照与法线手绘工作流

上周某日下午,一位担任核心技术美术的朋友,在微信上给我发了一段他们最新类银河恶魔城游戏的内部测试视频,并附带了一长串抓狂的语音。他们团队耗巨资请了顶级的二次元原画师,为游戏主角绘制了极其精美的立绘和 Spine 切片。可是&…...

人工智能混合编程实践:C++调用封装好的DLL进行PP-OCR字符识别

人工智能混合编程实践:C++调用封装好的DLL进行PP-OCR字符识别 前言 相关介绍 C++简介 ONNX简介 ONNX Runtime 简介 **核心特点** DLL 简介 **核心特点** **创建与使用** **应用场景** **优点与挑战** OCR字符识别简介 1. 核心工作原理 2. 技术演进 3. 主要应用场景 4. 当前面临…...

互联网大数据环境下 MySQL 迁移至国产底座的技术实践与路径观察

互联网大数据环境下 MySQL 迁移至国产底座的技术实践与路径观察 在当前互联网大数据应用持续深化的背景下,企业对关系型数据库的性能稳定性、安全合规性及运维可控性提出了更高要求。随着技术体系日趋成熟,金仓数据库(KingbaseES&#xff09…...

YOLOv8全网首发:CVPR2026 Transformer注意力 | BinaryAttention 1-bit注意力,推理提速100%,超越FlashAttention2

💡💡💡问题点:Transformer 已取得广泛而显著的成功,但其注意力模块的计算复杂性仍然是视觉任务的主要瓶颈。现有方法主要采用 8-bit 或 4-bit 量化来平衡效率与精度 💡💡💡措施:我们通过理论论证指出,注意力的二值化保留了基本的相似性关系,并提出了 BinaryAt…...

论文查重 / AI 率双杀攻略:Paperxie 四大降重方案实测,从 99.8% 到 14.9% 的通关密码

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/aippthttps://www.paperxie.cn/weight?type1https://www.paperxie.cn/weight?type1 前言:毕业季新噩梦 ——AI 率超标,比查重更让人崩溃的学术红线 当毕业论文终于写完&#xff…...

Highcharts React v4.2.1 正式发布:更自然的React开发体验,更清晰的数据处理

Highcharts React v4.2.1 版本正式发布了!这次更新不仅带来了错误修复和新功能,更重要的是对组件文档进行了全面重写。这体现了我们持续的努力——让使用 Highcharts 的 React 开发者能够获得更加自然、顺畅的开发体验。如果你一直在等待尝试新的集成&am…...

OpenClaw 生成测试用例

在安装完 OpenClaw 后,很多同学只会用它聊天。今天十二就带大家通过安装 Skill,让 OpenClaw 真正变成一个能理解业务、自动写用例的测试专家。 1、查找:测试用例生成Skills 全网 Skill 太多,不知道哪个生成的用例最靠谱。这里使用十二之前安装好的 find-skills 查找测试用…...

计算机毕业设计springboot数字化心理健康服务系统的设计与实现 基于SpringBoot的“树洞“心理咨询服务平台的设计与实现 基于SpringBoot的在线心理支持与智慧辅导平台

计算机毕业设计springboot数字化心理健康服务系统的设计与实现a2huw9 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。近年来,心理健康问题呈直线上升趋势&#xff0c…...

DO-254通读--10.0 硬件设计生命周期数据

10.0 硬件设计生命周期数据 本节描述了在硬件设计生命周期中可能产生的硬件设计生命周期数据项,用于提供设计保证和符合审定要求的证据。审定机构作为设计保证证据所需的生命周期数据的范围、数量和详细程度将因多种因素而异。这些因素包括适用的航空系统审定机构要…...

蓝牙学习系列(一):从零认识蓝牙技术体系

目录 一、什么是蓝牙(Bluetooth) 二、蓝牙的发展版本 三、Classic Bluetooth 与 BLE 3.1 Classic Bluetooth(经典蓝牙) 3.2 BLE(Bluetooth Low Energy) 四、蓝牙设备角色 4.1 Classic Bluetooth 4.…...

成都双流整装工厂,哪家才是靠谱企业?

家人们,在成都双流找靠谱的整装工厂可真是一件让人头疼的事儿!市面上的装修公司五花八门,一不小心就容易踩坑。今天我就用自己的亲身经历,给大家好好唠唠哪家整装工厂才是真靠谱,那就是九天全屋整装!我家就…...

用python flask做了一个,批量查询,修改一堆excel文件的工具

每次要找在excel里面找文件时,都一个个打开,找半天。要修改时,一些类似的数据,又要一个个文件去修改,非常没有效率。这个工具作用就是批量查询与修改。B/S架构,读出来的excel常驻内存,注意&…...

基于LQR控制的主动悬架模型:构建平顺性仿真,涵盖多种车辆模型与源文件集

【被动/LQR主动悬架模型】采用LQR控制的主动悬架模型,选取车身加速度、悬架动挠度等参数构造线性二次型最优控制目标函数。 输入为B级随机路面激励,输出为车身垂向加速度、俯仰角加速度、悬架动挠度等平顺性评价指标,可做汽车平顺性仿真。 二…...

jQuery如何扩展百度WebUploader组件支持教育行业PPT课件的跨平台分片上传?

前端老兵的20G文件夹上传血泪史(附部分代码) 各位前端同仁们好,我是老王,一个在福建靠写代码混口饭吃的"前端民工"。最近接了个奇葩项目,客户要求用原生JS实现20G文件夹上传下载,还要兼容IE9&am…...

Android 15 深色模式:第三方应用强制适配深色模式的开关在哪里?

很多朋友在打开手机的深色模式(也叫暗黑模式)后,可能会发现一个问题:手机自己的界面和自带应用都变黑了,但很多常用的第三方软件,比如微信、淘宝或者一些银行APP,却还是亮晃晃的白色背景。这不仅…...

双向RRT算法的三维路径规划MATLAB代码:包含路径平滑处理

bi-rrt算法三维MATLAB代码 双向rrt算法的三维路径规划 加入路径的平滑处理直接打开MATLAB开整三维空间路径规划。双向RRT(Bi-RRT)这玩意儿比传统RRT快不是一点半点,核心思路就是两头长树往中间怼。咱们先看节点数据结构怎么设计: …...

“扫频法阻抗扫描验证及复现双馈风机MMC电压源型VSG阻抗建模与程序注释

扫频法 阻抗扫描 阻抗建模验证 正负序阻抗 逆变器 虚拟同步控制 VSG 复现 双馈风机MMC 电压源型VSG阻抗建模及阻抗扫描验证 虚拟同步发电机序阻抗建模 风机多端MMC 可设置扫描范围、扫描点数,附送讲解 程序附带注释,每一行都能看懂 包括vsg仿真模型&…...

【异常】OpenClaw 调用 API 限速报错 API rate limit reached. Please try again later.

一、报错内容 在使用 OpenClaw 进行接口调用时,系统返回以下报错信息: API rate limit reached. Please try again later. 同时提示当前订阅套餐已达到调用限额,需等待周期刷新或升级套餐,建议5小时后重新进行交互操作。 二、报错说明 1. 报错核心含义 本次报错的核心是…...

声源定位实战:从仿真到嵌入式落地

2022声源定位相关资料及代码 内附声源定位算法基本原理及matlab仿真原理及实现方法; stm32f4实现源码(2022电赛) 3米处水平横向精度0.013m(可优化更低)。 视频5s,无快进,mcu为stm32f429zit6。 …...

AI人脸隐私卫士实测:多人合照自动打码,效果惊艳

AI人脸隐私卫士实测:多人合照自动打码,效果惊艳 1. 引言:当合照遇上隐私,AI如何成为你的守护者? 你有没有过这样的经历?公司团建拍了张大合照,想发朋友圈分享喜悦,却要花上十几分钟…...

Vue 3 源码阅读笔记:ref.ts

文章目录一、文件概览二、核心数据结构1. Ref 接口定义三、核心函数实现1. isRef - 类型守卫2. r[ReactiveFlags.IS_REF]详解一、 r[ReactiveFlags.IS_REF] 是什么意思?二、这个标记是怎么来的?三、为什么需要这个标记?四、完整的标记系统五、…...

Java面向对象—反射

反射1、反射(Reflection):是Java被视为“动态”语言的关键,反射机制允许在执行期间借助于Reflection的API取得任何类(接口)的内部信息,并能直接操作任意对象的内部信息。2、Java反射机制主要提供了以下功能:(1&#xf…...

MATLAB高效声发射多通道数据分离与新数据集构建

matlab高效分离声发射各通道数据,构建新的数据集,亲测运行有效,小样本和大样本(百万级别)均适用,专业性和针对性强,确保运行无误可以直接最近在实验室折腾声发射数据,发现多通道采集的数据处理起来特别费劲…...

距离提交只剩3天,查重48%:毕业之家AI工具把我从延毕边缘拉了回来

毕业之家(官网https://www.biye.com)是聚焦国内高校论文全生命周期的 AI 学术服务平台,作为 PaperRed 核心合作与技术支撑方,以学术合规为核心、高效便捷为导向,打造了选题到答辩的一站式闭环服务,尤其针对…...

跨境卖家如何用品类矩阵规划减少对单一类目的依赖

在波谲云诡的跨境电商领域,许多卖家曾凭借一款爆品迅速崛起,却又因市场风向突变、政策调整或供应链断裂而骤然跌落。这种“成也萧何,败也萧何”的单一品类依赖症,已成为悬在众多跨境企业头上的达摩克利斯之剑。要构建可持续、抗风…...