<?xml version="1.0" encoding="utf-8"?>
    <rss version="2.0">
        <channel>
            
                <title>虾米网</title>
            
            
                <link>https://xmyy.com</link>
            
            
                
            
            <generator>Sonic v1.0.0</generator>
            <lastBuildDate>Mon, 04 Aug 2025 22:08:00 GMT</lastBuildDate>
            
                
                    <item>
                        <title>
                            <![CDATA[EagleDesk - 跨平台远程控制软件 - 现代化跨平台远程控制解决方案]]>
                        </title>
                        <link>/article/EagleDesk-cross-platform-remote-control-software</link>
                        <description><![CDATA[<p><span class="nowrap"><span class="emojify">💁🏻‍♂️</span> <a href="https://github.com/eagleos/eagledesk" target="_blank">github.com</a> 2025-08-04 《EagleDesk-跨平台远程控制软件》 童建平</span></p><h1 id="eagledesk---">EagleDesk - 跨平台远程控制软件</h1><p>EagleDesk是一款基于Flutter开发的跨平台远程控制软件，支持Android、iOS、macOS、Windows等多个平台。</p><h2 id="-">✨ 功能特性</h2><h3 id="heading">核心功能</h3><ul><li><strong>远程桌面控制</strong>: 实时控制远程设备的桌面</li><li><strong>屏幕查看</strong>: 仅查看远程屏幕，不进行控制</li><li><strong>文件传输</strong>: 在设备间安全传输文件</li><li><strong>多平台支持</strong>: Android、iOS、macOS、Windows</li></ul><h3 id="--1">🎯 核心特性</h3><ul><li><strong>🌐 真正的跨平台支持</strong> - 一套代码，支持Windows、Android、iOS、macOS、Linux</li><li><strong>🚀 现代化UI设计</strong> - 采用Material 3设计语言，科技感十足的渐变配色</li><li><strong>⚡ 高性能屏幕共享</strong> - 实时屏幕录制与传输，支持30FPS高帧率</li><li><strong>🔒 企业级安全</strong> - 端到端加密，设备码+临时密码双重验证</li><li><strong>🎮 完整远程控制</strong> - 支持鼠标、键盘、触摸等全方位远程操作</li><li><strong>📁 智能文件传输</strong> - 拖拽式文件传输，支持大文件断点续传</li><li><strong>🔍 智能设备发现</strong> - 局域网自动发现，支持P2P直连和中继模式</li><li><strong>P2P直连</strong>: 优先使用点对点连接，减少延迟</li><li><strong>中继服务器</strong>: P2P失败时自动切换到中继模式</li><li><strong>端到端加密</strong>: 使用AES-256加密保护数据传输</li><li><strong>NAT穿透</strong>: 支持STUN/TURN协议进行网络穿透</li><li><strong>动态码率</strong>: 根据网络状况自动调整视频质量</li></ul><h3 id="--2">🛠️ 技术架构</h3><pre><code>┌─────────────────────────────────────────────────────────────┐│                    EagleDesk 架构图                          │├─────────────────────────────────────────────────────────────┤│  UI层 (Flutter)                                            ││  ├── 现代化Material 3界面                                   ││  ├── 响应式布局设计                                         ││  └── 跨平台适配组件                                         │├─────────────────────────────────────────────────────────────┤│  业务逻辑层                                                 ││  ├── 设备发现服务 (UDP广播)                                ││  ├── 连接管理服务 (P2P/中继)                               ││  ├── 屏幕捕获服务 (MediaProjection)                        ││  ├── 输入控制服务 (鼠标/键盘)                              ││  ├── 文件传输服务 (TCP/WebSocket)                          ││  └── 权限管理服务                                          │├─────────────────────────────────────────────────────────────┤│  平台适配层                                                 ││  ├── Android (Kotlin插件)                                  ││  ├── Windows (C++插件)                                     ││  ├── iOS/macOS (Swift插件)                                 ││  └── Linux (C++插件)                                       │├─────────────────────────────────────────────────────────────┤│  网络通信层                                                 ││  ├── WebSocket实时通信                                     ││  ├── TCP可靠传输                                           ││  ├── UDP设备发现                                           ││  └── HTTP RESTful API                                      │└─────────────────────────────────────────────────────────────┘</code></pre><h2 id="heading-1">项目结构</h2><pre><code>lib/├── core/                   # 核心业务逻辑│   ├── models/            # 数据模型│   │   ├── device.dart    # 设备模型│   │   └── connection.dart # 连接模型│   ├── services/          # 业务服务│   │   ├── auth_service.dart      # 认证服务│   │   ├── device_service.dart    # 设备管理服务│   │   ├── connection_service.dart # 连接管理服务│   │   ├── settings_service.dart  # 设置服务│   │   ├── crypto_service.dart    # 加密服务│   │   └── p2p_service.dart       # P2P网络服务│   └── app.dart           # 应用入口├── ui/                    # 用户界面│   ├── screens/          # 页面│   │   ├── login_screen.dart         # 登录页面│   │   ├── home_screen.dart          # 主页面│   │   ├── settings_screen.dart      # 设置页面│   │   └── remote_control_screen.dart # 远程控制页面│   ├── widgets/          # 组件│   │   ├── device_card.dart          # 设备卡片│   │   ├── connection_status_card.dart # 连接状态卡片│   │   ├── custom_text_field.dart    # 自定义输入框│   │   └── loading_button.dart       # 加载按钮│   └── theme/            # 主题│       └── app_theme.dart # 应用主题└── main.dart             # 应用启动入口</code></pre><h2 id="heading-2">技术细节</h2><h3 id="heading-3">网络协议</h3><ol><li><strong>设备发现</strong>: UDP广播发现局域网内的设备</li><li><strong>连接建立</strong>:<ul><li>优先尝试P2P直连</li><li>失败时使用中继服务器</li></ul></li><li><strong>数据传输</strong>:<ul><li>屏幕数据: H.264/H.265编码 + UDP传输</li><li>控制指令: TCP可靠传输</li><li>文件传输: TCP + 断点续传</li></ul></li></ol><h3 id="heading-4">安全机制</h3><ol><li><strong>密钥交换</strong>: RSA非对称加密交换会话密钥</li><li><strong>数据加密</strong>: AES-256对称加密</li><li><strong>身份认证</strong>: 基于JWT的用户认证</li><li><strong>双因素认证</strong>: 支持TOTP二次验证</li></ol><h3 id="heading-5">性能优化</h3><ol><li><strong>动态码率</strong>: 根据网络状况调整视频质量</li><li><strong>区域更新</strong>: 仅传输屏幕变化区域</li><li><strong>硬件加速</strong>: 利用GPU进行视频编解码</li><li><strong>多路径</strong>: 同时尝试多种连接路径</li></ol><h2 id="--3">🚀 功能细节</h2><h3 id="--4">📱 远程控制功能</h3><h4 id="--5">🎥 屏幕共享</h4><ul><li><strong>实时屏幕录制</strong> - 支持高清屏幕捕获，最高支持4K分辨率</li><li><strong>自适应帧率</strong> - 根据网络状况自动调整帧率(15-60FPS)</li><li><strong>智能压缩</strong> - H.264硬件编码，减少带宽占用</li><li><strong>多显示器支持</strong> - 支持多屏幕环境下的屏幕选择</li></ul><h4 id="--6">🎮 远程操作</h4><ul><li><strong>精准鼠标控制</strong> - 支持左键、右键、滚轮、拖拽操作</li><li><strong>完整键盘支持</strong> - 支持所有按键组合，包括快捷键</li><li><strong>触摸手势</strong> - 移动端支持多点触控手势</li><li><strong>剪贴板同步</strong> - 跨设备剪贴板内容同步</li></ul><h4 id="--7">📁 文件传输</h4><ul><li><strong>拖拽传输</strong> - 简单拖拽即可传输文件</li><li><strong>批量传输</strong> - 支持多文件、文件夹批量传输</li><li><strong>断点续传</strong> - 网络中断后自动续传</li><li><strong>传输加密</strong> - 文件传输过程全程加密</li></ul><h3 id="--8">🔐 安全特性</h3><h4 id="--9">🛡️ 多重验证</h4><ul><li><strong>设备码验证</strong> - 6位数字设备码，定期自动更新</li><li><strong>临时密码</strong> - 6位随机密码，每次连接后失效</li><li><strong>权限控制</strong> - 细粒度权限管理，用户可控制访问范围</li></ul><h4 id="--10">🔒 数据加密</h4><ul><li><strong>端到端加密</strong> - 使用AES-256加密所有传输数据</li><li><strong>密钥交换</strong> - 基于RSA的安全密钥交换机制</li><li><strong>会话保护</strong> - 每个会话使用独立的加密密钥</li></ul><h3 id="--11">🌐 网络连接</h3><h4 id="--12">🔍 智能发现</h4><ul><li><strong>局域网扫描</strong> - 自动发现同网段设备</li><li><strong>设备码连接</strong> - 通过设备码快速连接</li><li><strong>历史记录</strong> - 保存常用设备连接信息</li></ul><h4 id="--13">🚀 连接模式</h4><ul><li><strong>P2P直连</strong> - 局域网内直接连接，低延迟</li><li><strong>中继模式</strong> - 跨网络环境通过服务器中继</li><li><strong>自动切换</strong> - 根据网络环境自动选择最佳连接方式</li></ul><h2 id="--14">🎨 界面设计</h2><h3 id="--15">🌈 现代化设计语言</h3><p>EagleDesk采用最新的Material 3设计规范，结合科技感的配色方案：</p><ul><li><strong>主色调</strong>: 现代紫色 (#6366F1) - 科技感与专业性的完美结合</li><li><strong>辅助色</strong>: 科技绿 (#10B981) - 代表连接状态和成功操作</li><li><strong>强调色</strong>: 青色 (#06B6D4) - 突出重要信息和交互元素</li></ul><h3 id="--16">🎭 深色/浅色主题</h3><ul><li><strong>自适应主题</strong> - 跟随系统主题自动切换</li><li><strong>护眼设计</strong> - 深色主题减少眼部疲劳</li><li><strong>高对比度</strong> - 确保在各种环境下的可读性</li></ul><h3 id="--17">📱 响应式布局</h3><ul><li><strong>移动端优化</strong> - 针对手机屏幕优化的纵向布局</li><li><strong>平板适配</strong> - 充分利用平板的大屏幕空间</li><li><strong>桌面端体验</strong> - 侧边栏导航，多窗口支持</li></ul><h2 id="--18">🔧 技术实现</h2><h3 id="--19">📚 核心技术栈</h3><ul><li><strong>前端框架</strong>: Flutter 3.x</li><li><strong>状态管理</strong>: Provider + ChangeNotifier</li><li><strong>本地存储</strong>: Hive (轻量级NoSQL数据库)</li><li><strong>网络通信</strong>: WebSocket + TCP + UDP</li><li><strong>图像处理</strong>: Flutter Image + 原生编解码</li><li><strong>权限管理</strong>: permission_handler + 原生权限API</li></ul><h3 id="--20">🏗️ 架构模式</h3><p>采用分层架构设计，确保代码的可维护性和扩展性：</p><pre><code class="language-dart">lib/├── core/                    # 核心业务逻辑│   ├── models/             # 数据模型│   ├── services/           # 业务服务│   └── app.dart           # 应用入口├── ui/                     # 用户界面│   ├── screens/           # 页面组件│   ├── widgets/           # 通用组件│   └── theme/             # 主题配置└── main.dart              # 应用启动</code></pre><h3 id="--21">🔌 平台集成</h3><h4 id="android">Android平台</h4><ul><li><strong>Kotlin插件</strong> - 处理屏幕录制、权限管理</li><li><strong>MediaProjection API</strong> - 实现屏幕捕获</li><li><strong>AccessibilityService</strong> - 实现远程控制</li></ul><h4 id="windows">Windows平台</h4><ul><li><strong>C++插件</strong> - 系统级API调用</li><li><strong>DirectX</strong> - 高性能屏幕捕获</li><li><strong>Windows API</strong> - 鼠标键盘模拟</li></ul><h4 id="iosmacos">iOS/macOS平台</h4><ul><li><strong>Swift插件</strong> - 原生功能封装</li><li><strong>ReplayKit</strong> - 屏幕录制框架</li><li><strong>Core Graphics</strong> - 图像处理</li></ul><h2 id="--22">📱 平台支持</h2><h3 id="--23">✅ 已支持平台</h3><table><thead><tr><th>平台</th><th>状态</th><th>功能完整度</th><th>备注</th></tr></thead><tbody><tr><td>🤖 Android</td><td>✅ 完全支持</td><td>100%</td><td>包含vivo等厂商适配</td></tr><tr><td>🪟 Windows</td><td>✅ 完全支持</td><td>100%</td><td>Win10/11完全兼容</td></tr><tr><td>🍎 iOS</td><td>✅ 基础支持</td><td>80%</td><td>受系统限制部分功能</td></tr><tr><td>🍎 macOS</td><td>✅ 基础支持</td><td>85%</td><td>权限管理需优化</td></tr><tr><td>🐧 Linux</td><td>✅ 基础支持</td><td>75%</td><td>主流发行版支持</td></tr></tbody></table><h3 id="--24">🔄 兼容性测试</h3><ul><li><strong>Android</strong>: API 21+ (Android 5.0+)</li><li><strong>iOS</strong>: iOS 12.0+</li><li><strong>Windows</strong>: Windows 10 1903+</li><li><strong>macOS</strong>: macOS 10.15+</li><li><strong>Linux</strong>: Ubuntu 18.04+, CentOS 7+</li></ul><h2 id="--25">🎯 使用场景</h2><h3 id="--26">💼 商业应用</h3><ul><li><strong>远程办公</strong> - 居家办公时访问公司电脑</li><li><strong>技术支持</strong> - IT人员远程解决技术问题</li><li><strong>演示培训</strong> - 远程演示软件操作和培训</li><li><strong>协同工作</strong> - 团队成员之间的屏幕共享协作</li></ul><h3 id="--27">🏠 个人使用</h3><ul><li><strong>文件访问</strong> - 外出时访问家中电脑文件</li><li><strong>游戏娱乐</strong> - 在移动设备上操作电脑游戏</li><li><strong>媒体控制</strong> - 手机控制电脑播放媒体内容</li><li><strong>学习辅助</strong> - 学生远程访问学校电脑资源</li></ul><h3 id="--28">🏥 专业领域</h3><ul><li><strong>医疗诊断</strong> - 医生远程查看医疗设备数据</li><li><strong>工业控制</strong> - 远程监控和控制工业设备</li><li><strong>教育培训</strong> - 在线教学和远程实验指导</li><li><strong>金融服务</strong> - 安全的远程金融系统访问</li></ul><h2 id="--29">🔒 安全说明</h2><h3 id="--30">🛡️ 隐私保护</h3><ul><li><strong>本地优先</strong> - 优先使用P2P直连，数据不经过第三方服务器</li><li><strong>临时连接</strong> - 连接密码定期更新，防止长期暴露</li><li><strong>权限最小化</strong> - 只申请必要权限，用户可随时撤销</li><li><strong>数据不存储</strong> - 不在服务器存储用户数据和连接记录</li></ul><h3 id="--31">🔐 安全建议</h3><ol><li><strong>定期更新</strong> - 及时更新应用版本，获取最新安全补丁</li><li><strong>网络安全</strong> - 在可信网络环境下使用，避免公共WiFi</li><li><strong>权限管理</strong> - 定期检查和管理应用权限</li><li><strong>密码保护</strong> - 不要将设备码和密码分享给不信任的人</li></ol><h2 id="heading-6">使用说明</h2><h3 id="heading-7">首次使用</h3><ol><li>注册账号或登录现有账号</li><li>应用会自动生成设备ID并注册到服务器</li><li>在设置中配置网络参数（如需要）</li></ol><h3 id="heading-8">连接设备</h3><ol><li>确保设备在同一网络或可通过互联网访问</li><li>在主页面查看发现的设备</li><li>点击&quot;远程控制&quot;建立连接</li><li>连接成功后即可控制远程设备</li></ol><h3 id="heading-9">功能使用</h3><ul><li><strong>远程控制</strong>: 直接在屏幕上操作，支持鼠标和键盘</li><li><strong>虚拟键盘</strong>: 点击键盘按钮使用虚拟键盘</li><li><strong>缩放</strong>: 使用手势或工具栏按钮缩放屏幕</li><li><strong>文件传输</strong>: 通过菜单访问文件传输功能</li></ul><h2 id="heading-10">开发计划</h2><h3 id="heading-11">已完成</h3><ul><li><input checked="" disabled="" type="checkbox"> 基础架构搭建</li><li><input checked="" disabled="" type="checkbox"> 用户界面设计</li><li><input checked="" disabled="" type="checkbox"> 设备发现机制</li><li><input checked="" disabled="" type="checkbox"> 连接管理</li><li><input checked="" disabled="" type="checkbox"> 基础加密功能</li><li><input checked="" disabled="" type="checkbox"> 屏幕捕获和显示</li><li><input checked="" disabled="" type="checkbox"> 输入事件处理</li><li><input checked="" disabled="" type="checkbox"> P2P网络实现</li><li><input checked="" disabled="" type="checkbox"> 服务器端开发</li></ul><h3 id="heading-12">计划中</h3><ul><li><input disabled="" type="checkbox"> 文件传输功能</li><li><input disabled="" type="checkbox"> 音频传输</li><li><input disabled="" type="checkbox"> 移动端优化</li><li><input disabled="" type="checkbox"> 性能优化</li><li><input disabled="" type="checkbox"> 多语言支持</li></ul><p><strong>注意</strong>: 这是一个演示项目，部分功能仍在开发中。</p><h2 id="--32">📞 技术支持</h2><p>如有问题或建议，请通过以下方式联系：</p><ul><li>提交GitHub Issue</li></ul><p>如需购买及定制本系统或其它程序软件、app开发（Android/iOS），欢迎通过以下方式联系：</p><ul><li>微信号: xmdoor</li><li>邮箱: <a href="mailto:www@xmyy.com">www@xmyy.com</a></li></ul><h2 id="--33">🙏 致谢</h2><p>感谢以下开源项目和技术社区的支持：</p><ul><li><strong>Flutter Team</strong> - 提供优秀的跨平台开发框架</li><li><strong>Material Design</strong> - 现代化的设计语言</li><li><strong>Dart Community</strong> - 活跃的开发者社区</li><li><strong>所有贡献者</strong> - 每一个贡献都让EagleDesk变得更好</li></ul><p><strong>⭐ 如果这个项目对你有帮助，请给我们一个Star！⭐</strong></p><p><em>让远程控制变得简单，让协作变得高效</em></p><p><strong>EagleDesk - 连接无界，控制无限</strong> 🦅</p><h2 id="--34">💻 项目预览</h2><h3 id="windows-1">Windows端界面</h3><p><img src="/upload/2026/03/EagleDesk-cross-platform-remote-control-software.jpg" alt="首页"></p><p><img src="/upload/2026/03/eagledesk2.jpg" alt="高级设置"></p><p><img src="/upload/2026/03/eagledesk3.jpg" alt="调试工具"></p><p><img src="/upload/2026/03/eagledesk4.jpg" alt="性能监控"></p><p><img src="/upload/2026/03/eagledesk5.jpg" alt="网络诊断"></p><p><img src="/upload/2026/03/eagledesk6.jpg" alt="功能演示"></p><p><img src="/upload/2026/03/eagledesk7.jpg" alt="连接演示"></p><h3 id="heading-13">手机移动端界面</h3><p><img src="/upload/2026/03/eagledesk-index-mobile.jpg" alt="手机首页"></p><hr>]]></description>
                        <pubDate>Mon, 04 Aug 2025 22:08:00 GMT</pubDate>
                    </item>
                
                    <item>
                        <title>
                            <![CDATA[微信小程序：酒店预订管理系统]]>
                        </title>
                        <link>/article/WeChat-Mini-Program-Hotel-Reservation-Management-System</link>
                        <description><![CDATA[<p><span class="nowrap"><span class="emojify">💁🏻‍♂️</span> <a href="https://github.com/eagleos/hotel" target="_blank">github.com</a> 2025-07-17 《微信小程序：酒店预订管理系统》 童建平</span></p><h1 id="-">🏨 现代化酒店管理系统</h1><h2 id="heading">项目概述</h2><p>这是一个基于现代Web技术栈构建的全栈酒店管理系统，旨在为酒店行业提供完整的数字化解决方案，通过技术创新提升酒店运营效率和客户体验。系统采用前后端分离架构，结合了成熟的企业级框架和现代化的用户界面设计，为酒店运营管理和客户服务提供了强有力的技术支撑。</p><h2 id="--1">🎯 核心特性</h2><h3 id="heading-1">业务功能</h3><ul><li><strong>客房管理</strong> - 房型配置、房间状态管理、价格策略</li><li><strong>预订系统</strong> - 在线预订、订单管理、支付集成</li><li><strong>会员体系</strong> - 用户注册、会员等级、积分系统</li><li><strong>优惠券系统</strong> - 优惠券发放、使用跟踪、营销活动</li><li><strong>积分商城</strong> - 积分兑换、商品管理、订单处理</li><li><strong>系统管理</strong> - 用户权限、数据统计、系统配置</li></ul><h3 id="heading-2">技术特色</h3><ul><li><strong>响应式设计</strong> - 完美适配PC端、平板和移动设备</li><li><strong>现代化UI</strong> - 采用豪华酒店主题的视觉设计语言</li><li><strong>高性能</strong> - 优化的数据库查询和前端渲染</li><li><strong>安全可靠</strong> - 完善的权限控制和数据加密</li><li><strong>易于扩展</strong> - 模块化架构，支持功能定制</li></ul><h2 id="--2">🛠️ 技术架构</h2><h3 id="heading-3">后端技术栈</h3><ul><li><strong>框架</strong>: Spring Boot + RuoYi框架</li><li><strong>数据库</strong>: MySQL 8.0</li><li><strong>安全</strong>: Apache Shiro权限框架</li><li><strong>构建工具</strong>: Maven</li><li><strong>开发语言</strong>: Java 11+</li></ul><h3 id="heading-4">前端技术栈</h3><ul><li><strong>框架</strong>: Vue.js 3 + UniApp</li><li><strong>状态管理</strong>: Pinia</li><li><strong>样式</strong>: SCSS + 响应式设计</li><li><strong>构建工具</strong>: Vite</li><li><strong>UI组件</strong>: 自定义组件库</li></ul><h3 id="heading-5">部署架构</h3><ul><li><strong>应用服务器</strong>: Spring Boot内嵌Tomcat</li><li><strong>数据库</strong>: MySQL主从复制</li><li><strong>前端部署</strong>: 静态资源CDN分发</li><li><strong>API网关</strong>: 统一接口管理</li></ul><h2 id="--3">🎨 设计理念</h2><h3 id="heading-6">视觉设计</h3><p>系统采用现代化的酒店行业设计语言，以金色为主色调，营造奢华专业的品牌形象：</p><ul><li><strong>色彩方案</strong>: 金色(#D4AF37) + 深灰(#1a1a1a) + 蓝色(#2c5aa0)</li><li><strong>设计风格</strong>: 现代简约 + 豪华质感</li><li><strong>交互体验</strong>: 流畅动画 + 即时反馈</li><li><strong>布局结构</strong>: 响应式网格 + 卡片式设计</li></ul><h3 id="heading-7">用户体验</h3><ul><li><strong>直观导航</strong> - 清晰的信息架构和导航逻辑</li><li><strong>快速操作</strong> - 简化的操作流程和智能表单</li><li><strong>个性化</strong> - 基于用户行为的个性化推荐</li><li><strong>多端一致</strong> - 跨平台的统一用户体验</li></ul><h2 id="--4">📱 功能模块</h2><h3 id="heading-8">客户端功能</h3><ul><li><strong>首页展示</strong> - 酒店介绍、特色服务、推荐房型</li><li><strong>房型浏览</strong> - 房型列表、详情查看、实时价格</li><li><strong>在线预订</strong> - 日期选择、房型预订、支付处理</li><li><strong>个人中心</strong> - 订单管理、会员信息、积分查询</li><li><strong>优惠活动</strong> - 优惠券领取、特价房型、会员专享</li></ul><h3 id="heading-9">管理后台</h3><ul><li><strong>数据看板</strong> - 经营数据统计、趋势分析</li><li><strong>房间管理</strong> - 房型配置、房间状态、价格管理</li><li><strong>订单管理</strong> - 预订处理、入住登记、账单管理</li><li><strong>会员管理</strong> - 用户信息、等级管理、积分操作</li><li><strong>营销管理</strong> - 优惠券配置、活动管理、数据分析</li><li><strong>系统设置</strong> - 权限配置、参数设置、日志管理</li></ul><h2 id="--5">🚀 快速开始</h2><h3 id="heading-10">环境要求</h3><ul><li>Java 8 或更高版本</li><li>MySQL 8.0+</li><li>Node.js 16+</li><li>Maven 3.6+</li></ul><h3 id="heading-11">后端部署</h3><pre><code class="language-bash"># 进入后端目录cd RuoYi-4.8.1# 配置数据库# 修改 application.yml 中的数据库连接信息# 导入数据库mysql -u root -p &lt; sql/ry_20250416.sql# 编译运行mvn clean compilemvn spring-boot:run</code></pre><h3 id="heading-12">前端部署</h3><pre><code class="language-bash"># 进入前端目录cd frontend# 安装依赖npm install# 开发模式npm run dev# 生产构建npm run build</code></pre><h2 id="--6">📊 项目结构</h2><pre><code>hotel-management-system/├── RuoYi-4.8.1/                  # 后端项目│   ├── ruoyi-admin/              # 管理后台模块│   ├── ruoyi-common/             # 通用工具模块│   ├── ruoyi-framework/          # 框架核心模块│   ├── ruoyi-hotel/              # 酒店业务模块│   └── sql/                      # 数据库脚本├── frontend/                     # 前端项目│   ├── src/                      # 源代码│   │   ├── pages/                # 页面组件│   │   ├── stores/               # 状态管理│   │   └── utils/                # 工具函数│   └── styles/                   # 样式文件</code></pre><h2 id="--7">🔧 开发指南</h2><h3 id="heading-13">代码规范</h3><ul><li><strong>Java</strong>: 遵循阿里巴巴Java开发规范</li><li><strong>JavaScript</strong>: 使用ESLint + Prettier</li><li><strong>CSS</strong>: BEM命名规范 + SCSS预处理</li><li><strong>Git</strong>: 语义化提交信息</li></ul><h3 id="heading-14">数据库设计</h3><p>系统采用规范化的数据库设计，主要包含以下核心表：</p><ul><li>用户管理: sys_user, sys_role, sys_menu</li><li>酒店业务: hotel_room, hotel_booking, hotel_member</li><li>营销系统: hotel_coupon, hotel_product, hotel_order</li></ul><h3 id="api">API设计</h3><ul><li><strong>RESTful风格</strong> - 统一的API设计规范</li><li><strong>统一响应格式</strong> - 标准化的数据返回格式</li><li><strong>错误处理</strong> - 完善的异常处理机制</li><li><strong>接口文档</strong> - 详细的API文档说明</li></ul><h2 id="--8">🔒 安全特性</h2><ul><li><strong>身份认证</strong> - 基于Token的用户认证机制</li><li><strong>权限控制</strong> - 细粒度的角色权限管理</li><li><strong>数据加密</strong> - 敏感数据加密存储</li><li><strong>SQL注入防护</strong> - 参数化查询防止SQL注入</li><li><strong>XSS防护</strong> - 输入输出过滤防止跨站脚本攻击</li></ul><h2 id="--9">📈 性能优化</h2><ul><li><strong>数据库优化</strong> - 索引优化、查询优化</li><li><strong>缓存策略</strong> - Redis缓存热点数据</li><li><strong>前端优化</strong> - 代码分割、懒加载、CDN加速</li><li><strong>接口优化</strong> - 分页查询、数据压缩</li></ul><h2 id="--10">📞 技术支持</h2><p>如需购买及定制本系统或其它微信小程序、app开发（Android/iOS），欢迎通过以下方式联系：</p><ul><li>微信号: xmdoor</li><li>邮箱: <a href="mailto:www@xmyy.com">www@xmyy.com</a></li></ul><h2 id="--11">🙏 致谢</h2><p>感谢以下开源项目为本系统提供的技术支持：</p><ul><li><a href="https://github.com/yangzongzhuan/RuoYi">RuoYi</a> - 后端管理框架</li><li><a href="https://vuejs.org/">Vue.js</a> - 前端框架</li><li><a href="https://uniapp.dcloud.io/">UniApp</a> - 跨平台开发框架</li><li><a href="https://element-plus.org/">Element Plus</a> - UI组件库</li></ul><h2 id="--12">💻 项目预览</h2><h3 id="--13">前端界面 微信小程序</h3><p><img src="/upload/2026/03/hotel1.jpg" alt="首页"></p><p><img src="/upload/2026/03/hotel2.jpg" alt="客房"></p><p><img src="/upload/2026/03/hotel3.jpg" alt="客房详情"></p><p><img src="/upload/2026/03/hotel4.jpg" alt="我的"></p><p><img src="/upload/2026/03/hotel5.jpg" alt="前端登录"></p><p><img src="/upload/2026/03/hotel6.jpg" alt="前羰登录成功"></p><p><img src="/upload/2026/03/hotel7.jpg" alt="订单"></p><h3 id="--14">后端界面 管理功能</h3><p><img src="/upload/2026/03/WeChat-Mini-Program-Hotel-Reservation-Management-System.jpg" alt="后台登录"></p><p><img src="/upload/2026/03/hotel8.jpg" alt="用户管理"></p><p><img src="/upload/2026/03/hotel9.jpg" alt="房间管理"></p><p><img src="/upload/2026/03/hotel10.jpg" alt="预订管理"></p><p><img src="/upload/2026/03/hotel11.jpg" alt="优惠券管理"></p><p><img src="/upload/2026/03/hotel12.jpg" alt="会员优惠券"></p><p><img src="/upload/2026/03/hotel13.jpg" alt="积分商品"></p><p><img src="/upload/2026/03/hotel14.jpg" alt="商品订单"></p><hr>]]></description>
                        <pubDate>Thu, 17 Jul 2025 21:35:00 GMT</pubDate>
                    </item>
                
                    <item>
                        <title>
                            <![CDATA[SikkerBox-手机上的网络瑞士军刀]]>
                        </title>
                        <link>/article/SikkerBox-Cyber-Swiss-Army-Knife-on-your-cell-phone</link>
                        <description><![CDATA[<p><span class="nowrap"><span class="emojify">💁🏻‍♂️</span> <a href="https://sikkerbox.sourceforge.io" target="_blank">sourceforge.net</a> 2025-05-05 《SikkerBox-手机上的网络瑞士军刀》 童建平</span></p><h2 id="heading">概述</h2><p>SikkerBox 是一款免费的综合性安全和网络工具应用，旨在为用户提供一站式的安全工具和网络诊断服务。</p><p><code>Sikker</code>源于挪威语，意为<code>安全</code>，<code>Box</code>代表工具箱。</p><p>SikkerBox 具有跨平台兼容性，将两因素认证(2FA)管理与强大的网络诊断工具套件结合在一起。</p><p>SikkerBox 采用现代、清晰的UI界面布局和指示，旨在打造成手机上的网络瑞士军刀，为您的数字生活提供一个功能强大且用户友好的安全层解决方案。</p><h2 id="heading-1">主要功能</h2><h3 id="2fa">两因素认证(2FA)</h3><p>高度安全可靠的双因素身份验证 (2FA)，支持包括github、gitlab、google、PayPal等在内的超过 1000 多种提供双因素身份登录验证的网站和在线App。</p><ul><li><strong>安全账户管理</strong>：通过加密方式安全地存储和管理您的2FA账户</li><li><strong>二维码扫描</strong>：通过扫描二维码轻松添加新账户</li><li><strong>手动输入支持</strong>：支持手工输入账户信息</li><li><strong>基于时间的一次性密码(TOTP)</strong>：生成安全的、符合 RFC 6238 标准的、基于时间的一次性密码（TOTP）/双因素代码 (2FA 代码)，验证码每 30 秒自动更新一次。</li><li><strong>离线访问</strong>：设置完成后完全离线工作</li><li><strong>视觉定制</strong>：账户显示服务网站图标，便于识别</li></ul><h3 id="heading-2">网络诊断工具</h3><p>SikkerBox包含一套全面的网络工具：</p><ul><li><strong>端口检测</strong>：验证任何IP地址上特定端口是否开放或关闭，提供常用端口列表供用户快速一键选择</li><li><strong>IP地址归属地查询</strong>：确定任何IP地址的地理位置，包含自动获取用户公网IP的功能</li><li><strong>WiFi扫描器</strong>：分析附近的WiFi网络，包括信号强度、信道和安全信息</li><li><strong>Ping诊断</strong>：测试到域名或IP地址的连通性</li><li><strong>Whois查询</strong>：查询任何域名的注册信息</li><li><strong>DNS反向查询</strong>：查找与IP地址关联的主机名</li><li><strong>更多功能</strong>：更多功能敬请期待</li></ul><h2 id="heading-3">用户体验</h2><ul><li><strong>多语言支持</strong>：完整支持中英文界面切换，所有提示和错误信息均已国际化</li><li><strong>现代Material设计</strong>：采用Material Design 3的清晰、直观的现代风格界面，注重易用性</li><li><strong>响应式布局</strong>：针对各种屏幕尺寸进行优化</li><li><strong>剪贴板集成</strong>：多数功能支持复制粘贴到剪贴板</li><li><strong>深色模式支持</strong>：在低光环境下舒适查看</li><li><strong>友好提示</strong>：多数页面提供友好的加载指示器和错误提示</li></ul><h2 id="heading-4">技术细节</h2><ul><li><strong>跨平台支持</strong>：适用于 Android、iOS、Windows、macOS、Linux 和 Web</li><li><strong>安全存储</strong>：所有账户密钥均使用本地 Hive 数据库进行加密和安全存储，不向任何服务器传输数据，所有敏感数据保留在您的设备上</li><li><strong>低资源占用</strong>：优化电池和内存消耗</li></ul><h2 id="heading-5">隐私和安全</h2><p>SikkerBox优先考虑您的隐私和安全：</p><ul><li><strong>无需账户</strong>：无需创建账户即可使用所有功能</li><li><strong>注重隐私</strong>：无分析或跟踪</li><li><strong>不收集数据</strong>：您的2FA密钥和网络诊断结果保留在您的设备上</li><li><strong>开放网络API</strong>：网络工具使用开放API进行诊断，不会损害隐私</li></ul><h2 id="heading-6">使用场景</h2><ul><li><strong>安全专业人员</strong>：验证网络配置和安全设置</li><li><strong>IT管理员</strong>：诊断网络问题和验证服务器配置</li><li><strong>开发人员</strong>：测试应用程序连接和网络功能</li><li><strong>注重隐私的用户</strong>：管理2FA账户，无需依赖第三方服务</li></ul><h2 id="heading-7">系统要求</h2><ul><li>Android 5.0 (Lollipop)或更高版本</li><li>iOS 11.0或更高版本</li><li>桌面版：Windows 10+、macOS 10.14+或带有GTK 3的Linux</li></ul><h2 id="heading-8">使用指南</h2><h3 id="heading-9">安装</h3><p>目前暂时提供安卓端apk安装包，直接下载apk安装即可。</p><p>下载地址：</p><p><a href="https://www.pgyer.com/VT9KrSgd">https://www.pgyer.com/VT9KrSgd</a></p><p><a href="https://play.google.com/store/apps/details?id=com.sikkerbox.eagle">https://play.google.com/store/apps/details?id=com.sikkerbox.eagle</a></p><p><a href="https://sikkerbox.sourceforge.io">https://sikkerbox.sourceforge.io</a></p><p><a href="https://github.com/eagleos/sikkerbox">https://github.com/eagleos/sikkerbox</a></p><h2 id="heading-10">致谢</h2><ul><li>Flutter 团队提供的优秀框架</li><li>所有使本项目成为可能的软件包维护者</li></ul><h2 id="github--two-factor-authentication-2fa-">Github 开启/配置/更换 two-factor authentication (2FA) 双因素认证</h2><h3 id="2fa-1">未开启2FA</h3><ol><li><p>下载并安装SikkerBox。</p></li><li><p>登录Github后，点击页面最右上角的头像，再点击Settings进入设置页面。</p></li><li><p>再在左侧Access菜单中点击Password and authentication，然后在【Two-factor authentication】区域点击Enable two-factor authentication（启用双重身份验证）按钮。</p></li><li><p>打开SikkerBox，直接点击app右下角的扫描图标，对准上述Github出现的二维码。扫描成功后自动添加到主界面的账户列表中。</p></li><li><p>在SikkerBox主界面账户列表中点击对应的Github账号，进去可查看到一次性密码，返回Github页面在二维码下面的Verify the code from the app方框中输入此一次性密码，验证通过后会自动跳转到Download your recovery codes页面，务必下载并将恢复码保存在安全的地方。</p></li><li><p>然后，点击I have saved my recovery codes按钮，在出现的另一页面中点击Done按钮，即完成开启2FA。</p></li><li><p>下次如果重新登录Github，或者在另外设备上登录Github要求输入2FA认证吗时，打开SikkerBox，在SikkerBox主界面账户列表中点击对应的Github账号，进去可查看到一次性密码，输入此一次性密码即可登录成功。</p></li></ol><h3 id="2fa-app">更换2FA app</h3><ol><li><p>下载并安装SikkerBox。</p></li><li><p>使用原有2FA app成功登录Github后，点击页面最右上角的头像，再点击Settings进入设置页面。</p></li><li><p>再在左侧Access菜单中点击Password and authentication，然后在【Two-factor authentication】的Two-factor methods区域，点击Authenticator app(Configured)右边的Edit按钮。</p></li><li><p>打开SikkerBox，直接点击app右下角的扫描图标，对准上述Github出现的二维码。扫描成功后自动添加到主界面的账户列表中。</p></li><li><p>在SikkerBox主界面账户列表中点击对应的Github账号，进去可查看到一次性密码，返回Github页面在二维码下面的Verify the code from the app方框中输入此一次性密码，验证通过后点击Save保存按钮即可完成2FA app替换。</p></li></ol><h2 id="faq">FAQ</h2><ol><li>在SikkerBox中不小心删除账户，无法进行2FA认证登录Github，怎么办？</li></ol><p>答：使用Github恢复码成功登录Github，然后使用上述更换2FA app步骤重新绑定SikkerBox即可。</p><h2 id="2fa--time-based-one-time-password-totp-generator">2FA 在线验证码生成器 Time-based One-Time Password (TOTP) Generator</h2><p><a href="https://xmyy.com/2fa/">https://xmyy.com/2fa/</a></p><h2 id="heading-11">贡献者</h2><p>欢迎参与本app测试，参与者将会在下面表格中列出以示感谢！</p><table><thead><tr><th>手机机型</th><th>测试版本</th><th>测试结果</th><th>最新测试时间</th><th>测试者</th></tr></thead><tbody><tr><td>Vivo IQOO Neo5（Android 11）</td><td>1.0.2</td><td>✅</td><td>2025.05.27</td><td>eagle</td></tr><tr><td>Vivo IQOO Neo5 活力版（Android 11）</td><td>1.0.2</td><td>✅</td><td>2025.05.27</td><td>eagle</td></tr><tr><td>华为畅享9 Plus（Android 8.1）</td><td>1.0.2</td><td>✅</td><td>2025.05.29</td><td>eagle</td></tr><tr><td>Schok SV55216A（Android 10）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>OnePlus 8T（Android 11）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Huawei Y9 Prime 2019（Android 9）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Vivo Y35（Android 13）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Tecno SPARK 8 Pro（Android 11）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Oppo A52（Android 10）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Vivo V50 Lite（Android 15）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Realme 6（Android 10）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Vivo V2058（Android 11）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Qsmart Smart 8（Android 12）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>SamsungGalaxy A15（Android 14）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Redmi Note 12（Android 12）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Oppo Reno11 F 5G（Android 14）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>QSmart Ultra（Android 13）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Redmi A3x（Android 14）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>VivoY28s 5G（Android 14）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Redmi 13C（Android 13）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Google Pixel 6（Android 12）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Vivo 1906（Android 9）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Realme 6i（Android 10）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>LGE G Pad 5 10.1 FHD（Android 9）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Oppo A3s（Android 8.1）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Redmi Note 11（Android 11）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr></tbody></table><h2 id="heading-12">软件著作权证书</h2><p><img src="/upload/2026/03/sikkerbox.jpg" alt="sikkerbox app 软件著作权证书"></p><p>我们一直在努力改进我们的应用！有任何建议或反馈，请告诉我们——我们很乐意听取您的意见！</p><p><img src="/upload/2026/03/sikkerbox33.jpg" alt="sikkerbox app 软件截图33"><img src="/upload/2026/03/sikkerbox34.jpg" alt="sikkerbox app 软件截图34"><img src="/upload/2026/03/sikkerbox35.jpg" alt="sikkerbox app 软件截图35"><img src="/upload/2026/03/sikkerbox36.jpg" alt="sikkerbox app 软件截图36"><img src="/upload/2026/03/sikkerbox37.jpg" alt="sikkerbox app 软件截图37"><img src="/upload/2026/03/sikkerbox38.jpg" alt="sikkerbox app 软件截图38"><img src="/upload/2026/03/sikkerbox39.jpg" alt="sikkerbox app 软件截图39"><img src="/upload/2026/03/sikkerbox40.jpg" alt="sikkerbox app 软件截图40"></p>]]></description>
                        <pubDate>Thu, 15 May 2025 13:06:00 GMT</pubDate>
                    </item>
                
                    <item>
                        <title>
                            <![CDATA[SikkerBox-Cyber Swiss Army Knife on your cell phone]]>
                        </title>
                        <link>/en/article/SikkerBox-Cyber-Swiss-Army-Knife-on-your-cell-phone</link>
                        <description><![CDATA[<p><span class="nowrap"><span class="emojify">💁🏻‍♂️</span> <a href="https://sikkerbox.sourceforge.io" target="_blank">sourceforge.net</a> 2025-05-05 《SikkerBox-手机上的网络瑞士军刀》 童建平</span></p><h2 id="overview">Overview</h2><p>SikkerBox is a free comprehensive security and network utility application designed to provide users with essential security tools and network diagnostics in one convenient package.</p><p><code>Sikker</code> comes from the Norwegian word meaning <code>security</code> and <code>Box</code> stands for toolbox.</p><p>With cross-platform compatibility, SikkerBox combines two-factor authentication (2FA) management with a robust suite of network diagnostic tools.</p><p>With a modern and clear UI layout and instructions, SikkerBox is designed to be the Swiss Army Knife of networking on your phone, providing a powerful and user-friendly security layer solution for your digital life.</p><h2 id="key-features">Key Features</h2><h3 id="two-factor-authentication-2fa">Two-Factor Authentication (2FA)</h3><p>Highly secure and reliable two-factor authentication (2FA), supporting more than 1000 websites and online apps that provide two-factor authentication, including github, gitlab, google, PayPal, etc. .</p><ul><li><strong>Secure Account Management</strong>: Store and manage your 2FA accounts securely with encryption</li><li><strong>QR Code Scanning</strong>: Easily add new accounts by scanning QR codes</li><li><strong>Manual Entry Support</strong>: Supports manual entry of account information</li><li><strong>Time-Based One-Time Passwords (TOTP)</strong>: Generate secure, RFC 6238-compliant, time-based one-time passwords (TOTP)/two-factor codes (2FA codes), with authentication codes automatically updated every 30 seconds.</li><li><strong>Offline access</strong>: works completely offline after setup is complete</li><li><strong>Visual Customization</strong>: Accounts display with service favicons for easy identification</li></ul><h3 id="network-diagnostic-tools">Network Diagnostic Tools</h3><p>SikkerBox includes a comprehensive suite of network utilities:</p><ul><li><strong>Port Checker</strong>: Verify if specific ports are open or closed on any IP address, provides a list of commonly used ports for quick one-click selection.</li><li><strong>IP Location Lookup</strong>: Determine the geographical location of any IP address, includes the function of automatically obtaining the user&rsquo;s public IP</li><li><strong>WiFi Scanner</strong>: Analyze nearby WiFi networks, including signal strength, channels, and security information</li><li><strong>Ping Diagnostic</strong>: Test connectivity to domains or IP addresses</li><li><strong>Whois Lookup</strong>: Query registration information for any domain name</li><li><strong>DNS Reverse Lookup</strong>: Find hostnames associated with IP addresses</li><li><strong>More features</strong>：Stay tuned for more features</li></ul><h2 id="user-experience">User Experience</h2><ul><li><strong>Multi-language Support</strong>: Complete support for Chinese and English interface switching, all tips and error messages have been internationalized</li><li><strong>Modern Material Design</strong>: Clean, intuitive modern style interface with Material Design 3, and a focus on ease of use</li><li><strong>Responsive Layout</strong>: Optimized for various screen sizes</li><li><strong>Clipboard Integration</strong>: Most features support copy and paste to clipboard</li><li><strong>Dark Mode Support</strong>: Comfortable viewing in low-light environments</li><li><strong>Friendly reminder</strong>: Most pages provide friendly loading indicators and error alerts.</li></ul><h2 id="technical-details">Technical Details</h2><ul><li><strong>Cross-Platform support</strong>: for Android, iOS, Windows, macOS, Linux and Web</li><li><strong>Secure Storage</strong>: all account keys are encrypted and securely stored using a local Hive database, no data is transferred to any servers and all sensitive data remains on your device</li><li><strong>Low Resource Usage</strong>: Optimized for minimal battery and memory consumption</li></ul><h2 id="privacy-and-security">Privacy and Security</h2><p>SikkerBox prioritizes your privacy and security:</p><ul><li><strong>No Account Required</strong>: Use all features without creating an account</li><li><strong>Privacy-focused</strong>: no analytics or tracking</li><li><strong>No Data Collection</strong>: Your 2FA secrets and network diagnostics remain on your device</li><li><strong>Open Network APIs</strong>: Network tools use open APIs for diagnostics without compromising privacy</li></ul><h2 id="use-cases">Use Cases</h2><ul><li><strong>Security Professionals</strong>: Validate network configurations and security settings</li><li><strong>IT Administrators</strong>: Diagnose network issues and verify server configurations</li><li><strong>Developers</strong>: Test application connectivity and network functionality</li><li><strong>Privacy-Conscious Users</strong>: Manage 2FA accounts without relying on third-party services</li></ul><h2 id="requirements">Requirements</h2><ul><li>Android 5.0 (Lollipop) or higher</li><li>iOS 11.0 or higher</li><li>For desktop: Windows 10+, macOS 10.14+, or Linux with GTK 3</li></ul><h2 id="getting-started">Getting Started</h2><h3 id="installation">Installation</h3><p>Currently temporarily provide android apk installation package, just directly download the apk and install it.</p><p>download url:</p><p><a href="https://play.google.com/store/apps/details?id=com.sikkerbox.eagle">https://play.google.com/store/apps/details?id=com.sikkerbox.eagle</a></p><p><a href="https://sikkerbox.sourceforge.io">https://sikkerbox.sourceforge.io</a></p><p><a href="https://github.com/eagleos/sikkerbox">https://github.com/eagleos/sikkerbox</a></p><p><a href="https://www.pgyer.com/VT9KrSgd">https://www.pgyer.com/VT9KrSgd</a></p><h2 id="acknowledgments">Acknowledgments</h2><ul><li>The Flutter team for their excellent framework</li><li>All the package maintainers whose work made this project possible</li></ul><h2 id="github-enableconfigurereplace-two-factor-authentication-2fa">Github enable/configure/replace two-factor authentication (2FA)</h2><h3 id="2fa-is-not-enabled">2FA is not enabled</h3><ol><li><p>Download and install SikkerBox.</p></li><li><p>After logging in to Github, click on your avatar in the top right corner of the page, and then click Settings to enter the Settings page.</p></li><li><p>Click Password and authentication in the Access menu on the left, and then click Enable two-factor authentication in the Two-Factor authentication area.</p></li><li><p>Open SikkerBox, click the scanning icon at the bottom right corner of the app, and point it at the QR code that appears on Github as mentioned above. After successful scanning, it will be automatically added to the account list in the main interface.</p></li><li><p>Click the corresponding Github account in the account list of the main interface of SikkerBox, you can see the one-time password, return to the Github page and enter the one-time password in the Verify the code from the app box below the QR code, after verification, it will automatically jump to the Download your recovery codes page, make sure to download and download your recovery codes. Once verified, you will be redirected to the Download your recovery codes page, so be sure to download and save your recovery codes in a safe place.</p></li><li><p>Then, click the I have saved my recovery codes button, and then click the Done button on the page that appears.</p></li><li><p>The next time you log in to Github again, or if you are asked to enter your 2FA credentials when logging in to Github on another device, open SikkerBox, click the corresponding Github account in the account list of the main interface of SikkerBox, and then go to the One-Time Passwords page, and then enter the One-Time Passwords to log in successfully.</p></li></ol><h3 id="replace-2fa-app">Replace 2FA app</h3><ol><li><p>Download and install SikkerBox.</p></li><li><p>After successfully logging in to Github using the original 2FA app, click on your avatar at the top right corner of the page, and then click Settings to enter the Settings page.</p></li><li><p>Click Password and authentication in the Access menu on the left, and then in the Two-factor methods area of [Two-factor authentication], click the Edit button to the right of Authenticator app(Configured). button to the right of Authenticator ap (Configured).</p></li><li><p>Open SikkerBox, click the scanning icon at the bottom right corner of the app, and point it at the QR code on Github as mentioned above. After successful scanning, it will be automatically added to your account list in the main interface.</p></li><li><p>Click the corresponding Github account in the account list of the main interface of SikkerBox, and you can see the one-time password, return to the Github page and enter the one-time password in the Verify the code from the app box below the QR code, and click Save button to complete the replacement of the 2FA app after verification.</p></li></ol><h2 id="faq">FAQ</h2><ol><li>I accidentally deleted my account in SikkerBox and can&rsquo;t login to Github with 2FA authentication, what should I do?</li></ol><p>A: Use the Github recovery code to successfully log in to Github, and then use the above steps to replace the 2FA app to rebind SikkerBox.</p><h2 id="2fa-time-based-one-time-password-totp-generator">2FA Time-based One-Time Password (TOTP) Generator</h2><p><a href="https://xmyy.com/2fa/">https://xmyy.com/2fa/</a></p><h2 id="contributors">Contributors</h2><p>Contributors are welcome to participate in the testing of this app and will be listed in the table below as a token of our appreciation!</p><table><thead><tr><th>Phone Models</th><th>Test Versions</th><th>Test Results</th><th>Latest Test Time</th><th>Testers</th></tr></thead><tbody><tr><td>Vivo IQOO Neo5</td><td>1.0.2</td><td>✅</td><td>2025.05.27</td><td>eagle</td></tr><tr><td>Vivo IQOO Neo5 Lite</td><td>1.0.2</td><td>✅</td><td>2025.05.27</td><td>eagle</td></tr><tr><td>Huawei Y9 Plus（Android 8.1）</td><td>1.0.2</td><td>✅</td><td>2025.05.29</td><td>eagle</td></tr><tr><td>Schok SV55216A（Android 10）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>OnePlus 8T（Android 11）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Huawei Y9 Prime 2019（Android 9）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Vivo Y35（Android 13）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Tecno SPARK 8 Pro（Android 11）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Oppo A52（Android 10）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Vivo V50 Lite（Android 15）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Realme 6（Android 10）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Vivo V2058（Android 11）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Qsmart Smart 8（Android 12）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>SamsungGalaxy A15（Android 14）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Redmi Note 12（Android 12）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Oppo Reno11 F 5G（Android 14）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>QSmart Ultra（Android 13）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Redmi A3x（Android 14）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>VivoY28s 5G（Android 14）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Redmi 13C（Android 13）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Google Pixel 6（Android 12）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Vivo 1906（Android 9）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Realme 6i（Android 10）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>LGE G Pad 5 10.1 FHD（Android 9）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Oppo A3s（Android 8.1）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr><tr><td>Redmi Note 11（Android 11）</td><td>1.0.2</td><td>✅</td><td>2025.06.19</td><td>closed test</td></tr></tbody></table><h2 id="software-copyright-certificate">Software Copyright Certificate</h2><p><img src="/upload/2026/03/sikkerbox.jpg" alt="sikkerbox app software copyright certificate"></p><p>We are always trying to improve our app! Let us know if you have any suggestions or feedback - we&rsquo;d love to hear from you!</p><p><img src="/upload/2026/03/sikkerbox41.jpg" alt="sikkerbox app software screenshots 41"><img src="/upload/2026/03/sikkerbox42.jpg" alt="sikkerbox app software screenshots 42"><img src="/upload/2026/03/sikkerbox43.jpg" alt="sikkerbox app software screenshots 43"><img src="/upload/2026/03/sikkerbox44.jpg" alt="sikkerbox app software screenshots 44"><img src="/upload/2026/03/sikkerbox45.jpg" alt="sikkerbox app software screenshots 45"><img src="/upload/2026/03/sikkerbox46.jpg" alt="sikkerbox app software screenshots 46"><img src="/upload/2026/03/sikkerbox47.jpg" alt="sikkerbox app software screenshots 47"><img src="/upload/2026/03/sikkerbox48.jpg" alt="sikkerbox app software screenshots 48"></p>]]></description>
                        <pubDate>Thu, 15 May 2025 13:06:00 GMT</pubDate>
                    </item>
                
                    <item>
                        <title>
                            <![CDATA[Tengine-rpm 基于Tengine 3.1深度定制优化]]>
                        </title>
                        <link>/article/tengine-rpm-deeply-customized-and-optimized-based-on-Tengine</link>
                        <description><![CDATA[<p><span class="nowrap"><span class="emojify">💁🏻‍♂️</span> <a href="https://tengine-rpm.sourceforge.io" target="_blank">sourceforge.net</a> 2025-03-31 《Tengine-rpm 基于Tengine 3.1深度定制优化》 童建平</span></p><h2 id="tengine-rpm-"><strong>Tengine RPM 说明文档</strong></h2><p>Tengine是亚洲最大的电子商务网站淘宝网推出的高性能的HTTP和反向代理web服务器。它基于 Nginx HTTP 服务器，拥有许多高级功能。事实证明，Tengine 在淘宝网、天猫、优酷、阿里速卖通和阿里云等世界前100强网站上非常稳定、高效。</p><p>简言之，Tengine是一个具有一些高级功能的 Nginx 发行版。Tengine官方没有提供RPM包，这里提供非官方的经过优化编译并集成LuaJIT、ModSecurity、geoip2等多种常用模块的Tengine RPM包，方便用户在目标服务器上快速安装配置web服务器。</p><p>这是基于官方包https://tengine.taobao.org/download/tengine-3.1.0.tar.gz 制作的rpm包，您可免费下载并安装使用。</p><p>目前仅先推出基于almalinux 9.5的rpm包，同样可用于Red Hat Enterprise Linux (RHEL) 及其衍生产品，如CentOS Linux、Rocky Linux。</p><h2 id="heading"><strong>如何下载？</strong></h2><p><a href="https://github.com/eagleos/tengine-rpm/releases">https://github.com/eagleos/tengine-rpm/releases</a></p><p><a href="https://tengine-rpm.sourceforge.io">https://tengine-rpm.sourceforge.io</a></p><h2 id="heading-1"><strong>如何安装？</strong></h2><ul><li><strong>手工安装</strong></li></ul><p>rpm -Uvh tengine-3.1.0-1.el9.x86_64.rpm</p><p>如：</p><pre><code class="language-shell">[root@EagleOS ~]# rpm -ivh tengine-3.1.0-1.el9.x86_64.rpm错误：依赖检测失败：geolite2-city &lt; 20250331 被 tengine-3.1.0-1.el9.x86_64 取代geolite2-country &lt; 20250331 被 tengine-3.1.0-1.el9.x86_64 取代[root@EagleOS ~]# rpm -Uvh tengine-3.1.0-1.el9.x86_64.rpmVerifying...                          ################################# [100%]准备中...                          ################################# [100%]正在升级/安装...1:tengine-3.1.0-1.el9              ################################# [ 33%]正在清理/删除...2:geolite2-country-20191217-6.el9  ################################# [ 67%]3:geolite2-city-20191217-6.el9     ################################# [100%]</code></pre><p>如下图所示：</p><p><img src="/upload/2026/03/tengine-rpm.png" alt="如何安装tengine-rpm"></p><ul><li><strong>在线安装</strong></li></ul><pre><code class="language-shell">dnf copr enable xmdoor/tengine-rpmdnf -y install tengine</code></pre><p>如下图所示：</p><p><img src="/upload/2026/03/copr.jpg" alt="copr安装tengine-rpm"></p><h2 id="heading-2"><strong>安装依赖</strong></h2><p>如果您安装时提示类似如下信息：</p><pre><code class="language-shell">[root@EagleOS ~]# rpm -ivh tengine-3.1.0-1.el9.x86_64.rpm 错误：依赖检测失败：        apr &gt;= 1.7.0 被 tengine-3.1.0-1.el9.x86_64 需要        apr-util &gt;= 1.6.1 被 tengine-3.1.0-1.el9.x86_64 需要        jemalloc &gt;= 5.2.1 被 tengine-3.1.0-1.el9.x86_64 需要        jemalloc-devel &gt;= 5.2.1 被 tengine-3.1.0-1.el9.x86_64 需要        libluajit-5.1.so.2()(64bit) 被 tengine-3.1.0-1.el9.x86_64 需要        libmaxminddb-devel &gt;= 1.5.2 被 tengine-3.1.0-1.el9.x86_64 需要        libmodsecurity &gt;= 3.0.12 被 tengine-3.1.0-1.el9.x86_64 需要        libmodsecurity-devel &gt;= 3.0.12 被 tengine-3.1.0-1.el9.x86_64 需要        libmodsecurity.so.3()(64bit) 被 tengine-3.1.0-1.el9.x86_64 需要        lmdb &gt;= 0.9.29 被 tengine-3.1.0-1.el9.x86_64 需要        lmdb-devel &gt;= 0.9.29 被 tengine-3.1.0-1.el9.x86_64 需要        lua-devel &gt;= 5.4.4 被 tengine-3.1.0-1.el9.x86_64 需要        luajit &gt;= 2.1.0 被 tengine-3.1.0-1.el9.x86_64 需要        luajit-devel &gt;= 2.1.0 被 tengine-3.1.0-1.el9.x86_64 需要        geolite2-city &lt; 20250331 被 tengine-3.1.0-1.el9.x86_64 取代        geolite2-country &lt; 20250331 被 tengine-3.1.0-1.el9.x86_64 取代</code></pre><p>请先下载相关依赖包：</p><pre><code class="language-shell">wget https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/apr-1.7.0-12.el9_3.x86_64.rpmwget https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/apr-util-1.6.1-23.el9.x86_64.rpmwget https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/apr-util-bdb-1.6.1-23.el9.x86_64.rpmwget https://repo.almalinux.org/almalinux/9/CRB/x86_64/os/Packages/libmaxminddb-devel-1.5.2-4.el9.x86_64.rpmwget https://repo.almalinux.org/almalinux/9/CRB/x86_64/os/Packages/lmdb-0.9.29-3.el9.x86_64.rpmwget https://repo.almalinux.org/almalinux/9/CRB/x86_64/os/Packages/lmdb-devel-0.9.29-3.el9.x86_64.rpmwget https://repo.almalinux.org/almalinux/9/CRB/x86_64/os/Packages/lua-devel-5.4.4-4.el9.x86_64.rpmwget https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/lua-rpm-macros-1-6.el9.noarch.rpmwget https://repo.almalinux.org/almalinux/9/devel/x86_64/os/Packages/lua-static-5.4.4-4.el9.x86_64.rpmwget https://repo.almalinux.org/almalinux/9/devel/x86_64/os/Packages/pcre2-static-10.40-6.el9.x86_64.rpmwget https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/l/libmodsecurity-3.0.12-1.el9.x86_64.rpmwget https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/l/libmodsecurity-devel-3.0.12-1.el9.x86_64.rpmwget https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/l/libmodsecurity-static-3.0.12-1.el9.x86_64.rpmwget https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/s/ssdeep-libs-2.14.1-11.el9.x86_64.rpmwget https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/j/jemalloc-5.2.1-2.el9.x86_64.rpmwget https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/j/jemalloc-devel-5.2.1-2.el9.x86_64.rpmwget https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/l/luajit-2.1.0-0.23beta3.el9.x86_64.rpmwget https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/l/luajit-devel-2.1.0-0.23beta3.el9.x86_64.rpm</code></pre><p>再安装：</p><pre><code class="language-shell">rpm -ivh apr-util-bdb-1.6.1-23.el9.x86_64.rpm apr-1.7.0-12.el9_3.x86_64.rpm apr-util-1.6.1-23.el9.x86_64.rpmrpm -ivh libmaxminddb-devel-1.5.2-4.el9.x86_64.rpmrpm -ivh lmdb-0.9.29-3.el9.x86_64.rpm lmdb-devel-0.9.29-3.el9.x86_64.rpmrpm -ivh lua-rpm-macros-1-6.el9.noarch.rpm lua-devel-5.4.4-4.el9.x86_64.rpm lua-static-5.4.4-4.el9.x86_64.rpmrpm -ivh pcre2-static-10.40-6.el9.x86_64.rpmrpm -ivh ssdeep-libs-2.14.1-11.el9.x86_64.rpm libmodsecurity-3.0.12-1.el9.x86_64.rpm libmodsecurity-devel-3.0.12-1.el9.x86_64.rpm libmodsecurity-static-3.0.12-1.el9.x86_64.rpmrpm -ivh jemalloc-5.2.1-2.el9.x86_64.rpm jemalloc-devel-5.2.1-2.el9.x86_64.rpmrpm -ivh luajit-2.1.0-0.23beta3.el9.x86_64.rpm luajit-devel-2.1.0-0.23beta3.el9.x86_64.rpm</code></pre><h2 id="heading-3"><strong>支持的发行版</strong></h2><p>如下发行版测试通过：</p><p>Almalinux 9.5 x86_64</p><p>兼容如下发行版，未经测试：</p><p>Red Hat Enterprise Linux 9.x x86_64</p><p>CentOS Linux 9.x x86_64</p><p>Rocky Linux 9.x x86_64</p><h2 id="heading-4"><strong>配置说明</strong></h2><ul><li>nginx配置文件位于：/app/nginx/conf</li><li>安装后会自动启动nginx服务，手工重启服务命令：systemctl restart nginx，重载配置命令：systemctl reload nginx</li><li>安装rpm包过程中，会自动检测目标服务器cpu核数，对nginx配置进行自动优化配置处理</li><li>对于目标服务器默认站点，在nginx.conf中对境外服务器默认禁止访问，以节省服务器相关访问资源。您如果需要开放此访问，可更改此文件，删除如下配置语句即可：</li></ul><pre><code class="language-shell">  if ($ip_deny) {  return 503;  }</code></pre><ul><li>支持lua语法，相关测试语句请查看nginx.conf中配置，可修改相关配置进行测试</li><li>vhost.conf为站点配置示例，默认未加载，可仿之修改并启动</li><li>vhost.conf中默认启用了modsecurity防攻击模块，即Web应用程序防火墙 (WAF)，配置文件位于：<code>/app/nginx/conf/modsecurity</code>，日志位于：<code>/app/nginx/logs/modsec_audit.log</code></li><li>本rpm包编译参数如下：</li></ul><pre><code class="language-shell">[root@EagleOS ~]# nginx -VTengine version: Microsoft-IIS/3.1.0nginx version: Microsoft-IIS/8.5/1.24.0built by gcc 11.5.0 20240719 (Red Hat 11.5.0-5) (GCC)built with OpenSSL 3.2.2 4 Jun 2024TLS SNI support enabledconfigure arguments: --prefix=/app/nginx --sbin-path=/usr/sbin/nginx --with-http_ssl_module --with-ld-opt=-lpcre --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-ld-opt=-ljemalloc --with-jemalloc --with-stream --with-stream_ssl_module --with-stream_realip_module --with-stream_ssl_preread_module --with-debug --with-compat --with-file-aio --with-mail --with-mail_ssl_module --with-pcre --with-pcre-jit --with-threads --with-http_auth_request_module --with-http_dav_module --with-http_degradation_module --with-http_flv_module --with-http_gunzip_module --with-http_image_filter_module --with-http_mp4_module --with-http_random_index_module --with-http_secure_link_module --with-http_sub_module --with-http_v2_module --with-http_addition_module --with-luajit-inc=/usr/include/luajit-2.1 --with-luajit-lib=/usr/lib64 --without-http_upstream_keepalive_module --add-module=modules/ngx_backtrace_module --add-module=modules/ngx_debug_pool --add-module=modules/ngx_debug_timer --add-module=modules/ngx_http_concat_module --add-module=modules/ngx_http_footer_filter_module --add-module=modules/ngx_http_reqstat_module --add-module=modules/ngx_http_slice_module --add-module=modules/ngx_http_trim_filter_module --add-module=modules/ngx_http_upstream_check_module --add-module=modules/ngx_http_upstream_dynamic_module --add-module=modules/ngx_http_upstream_dyups_module --add-module=modules/ngx_http_upstream_keepalive_module --add-module=modules/ngx_http_upstream_session_sticky_module --add-module=modules/ngx_http_upstream_vnswrr_module --add-module=modules/ngx_http_user_agent_module --add-module=modules/ngx_multi_upstream_module --add-module=modules/ngx_slab_stat --add-module=../ngx_cache_purge-2.5.3 --add-module=../ngx_brotli --add-module=../nginx-module-vts-0.2.4 --add-module=../ngx_http_geoip2_module --add-module=../lua-nginx-module-0.10.28 --add-module=../ModSecurity-nginx-master --with-cc-opt='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' --with-ld-opt='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,-E'</code></pre><h2 id="faq"><strong>FAQ</strong></h2><ul><li><strong>1.为何使用<code>rpm -Uvh</code>而不是<code>rpm -ivh</code>？</strong></li></ul><p>答：如果目标服务器已经安装了系统默认的geolite2-city和geolite2-country，则其中的IP数据库文件是2019年过旧的数据库，本rpm包中包含同样路径及名称的IP数据库文件（2025.03.31官方maxmind.com最新数据库），会覆盖安装，所以需要使用<code>rpm -Uvh</code>进行升级安装。</p><h2 id="rpm"><strong>RPM公钥</strong></h2><ul><li>本RPM包制作过程中，对官方源码文件<code>tengine-3.1.0.tar.gz</code>进行RSA 4096 位密钥（最高强度）验证签名，确保源码完整性。本人分块的 GPG 公钥如下：</li></ul><p><a href="https://xmyy.com/keys/eagle-public-key1.asc">https://xmyy.com/keys/eagle-public-key1.asc</a></p><p><a href="https://xmyy.com/keys/eagle-public-key2.asc">https://xmyy.com/keys/eagle-public-key2.asc</a></p><p><a href="https://xmyy.com/keys/eagle-public-key3.asc">https://xmyy.com/keys/eagle-public-key3.asc</a></p><ul><li>上述分块合并后完整的 GPG 公钥如下：</li></ul><p><a href="https://xmyy.com/keys/eagle-master-public-key.asc">https://xmyy.com/keys/eagle-master-public-key.asc</a></p><ul><li>本人公钥包含签名和加密功能，各位可以（可选）信任导入本人公钥</li></ul>]]></description>
                        <pubDate>Mon, 31 Mar 2025 23:59:00 GMT</pubDate>
                    </item>
                
                    <item>
                        <title>
                            <![CDATA[Tengine-rpm deeply customized and optimized based on Tengine]]>
                        </title>
                        <link>/en/article/tengine-rpm-deeply-customized-and-optimized-based-on-Tengine</link>
                        <description><![CDATA[<p><span class="nowrap"><span class="emojify">💁🏻‍♂️</span> <a href="https://tengine-rpm.sourceforge.io" target="_blank">sourceforge.net</a> 2025-03-31 《Tengine-rpm 基于Tengine 3.1深度定制优化》 童建平</span></p><h2 id="tengine-rpm-readme"><strong>Tengine RPM Readme</strong></h2><p>Tengine is a high-performance HTTP and reverse proxy web server originated by Taobao, the largest e-commerce website in Asia. It is based on the Nginx HTTP server and has many advanced features. Tengine has proven to be very stable and efficient on some of the top 100 websites in the world, including Taobao.com, Tmall.com, Youku, AliExpress and Alibaba Cloud.</p><p>In short, Tengine is a distribution of Nginx with some advanced features.Tengine does not provide official RPM packages, here to provide unofficial optimized compilation and integration of LuaJIT, ModSecurity, geoip2, and other commonly used modules of the Tengine RPM packages, to facilitate the user to quickly install and configure the web server on the target server.</p><p>This is a rpm package based on the official package <a href="https://tengine.taobao.org/download/tengine-3.1.0.tar.gz">https://tengine.taobao.org/download/tengine-3.1.0.tar.gz</a>, which is easy to install and use, you can download and install it for free.</p><p>Only the almalinux 9.5-based rpm package is available first, which can also be used for Red Hat Enterprise Linux (RHEL) and its derivatives, such as CentOS Linux and Rocky Linux.</p><h2 id="how-to-download"><strong>How to download?</strong></h2><p><a href="https://github.com/eagleos/tengine-rpm/releases">https://github.com/eagleos/tengine-rpm/releases</a></p><p><a href="https://tengine-rpm.sourceforge.io">https://tengine-rpm.sourceforge.io</a></p><h2 id="how-to-install"><strong>How to install?</strong></h2><ul><li><strong>manual installation</strong></li></ul><p>rpm -Uvh tengine-3.1.0-1.el9.x86_64.rpm</p><p>As shown below:</p><pre><code class="language-shell">[root@EagleOS ~]# rpm -ivh tengine-3.1.0-1.el9.x86_64.rpmError: dependency detection failed:geolite2-city &lt; 20250331 is replaced by tengine-3.1.0-1.el9.x86_64geolite2-country &lt; 20250331 is replaced by tengine-3.1.0-1.el9.x86_64[root@EagleOS ~]# rpm -Uvh tengine-3.1.0-1.el9.x86_64.rpmVerifying...                          ################################# [100%]Preparing...                          ################################# [100%]Upgrading/installing...1:tengine-3.1.0-1.el9              ################################# [ 33%]Cleaning/deleting...2:geolite2-country-20191217-6.el9  ################################# [ 67%]3:geolite2-city-20191217-6.el9     ################################# [100%]</code></pre><p>As shown in the image below:</p><p><img src="/upload/2026/03/tengine-rpm.png" alt="how to install tengine-rpm"></p><ul><li><strong>Online Installation</strong></li></ul><pre><code class="language-shell">dnf copr enable xmdoor/tengine-rpmdnf -y install tengine</code></pre><p>As shown in the image below:</p><p><img src="/upload/2026/03/copr.jpg" alt="how to install tengine-rpm using copr"></p><h2 id="requirements"><strong>Requirements</strong></h2><p>If you are prompted with a message similar to the following during installation:</p><pre><code class="language-shell">[root@EagleOS ~]# rpm -ivh tengine-3.1.0-1.el9.x86_64.rpm Error: dependency detection failed:        apr &gt;= 1.7.0 is required by tengine-3.1.0-1.el9.x86_64        apr-util &gt;= 1.6.1 is required by tengine-3.1.0-1.el9.x86_64        jemalloc &gt;= 5.2.1 is required by tengine-3.1.0-1.el9.x86_64        jemalloc-devel &gt;= 5.2.1 is required by tengine-3.1.0-1.el9.x86_64        libluajit-5.1.so.2()(64bit) is required by tengine-3.1.0-1.el9.x86_64        libmaxminddb-devel &gt;= 1.5.2 is required by tengine-3.1.0-1.el9.x86_64        libmodsecurity &gt;= 3.0.12 is required by tengine-3.1.0-1.el9.x86_64        libmodsecurity-devel &gt;= 3.0.12 is required by tengine-3.1.0-1.el9.x86_64        libmodsecurity.so.3()(64bit) is required by tengine-3.1.0-1.el9.x86_64        lmdb &gt;= 0.9.29 is required by tengine-3.1.0-1.el9.x86_64        lmdb-devel &gt;= 0.9.29 is required by tengine-3.1.0-1.el9.x86_64        lua-devel &gt;= 5.4.4 is required by tengine-3.1.0-1.el9.x86_64        luajit &gt;= 2.1.0 is required by tengine-3.1.0-1.el9.x86_64        luajit-devel &gt;= 2.1.0 is required by tengine-3.1.0-1.el9.x86_64        geolite2-city &lt; 20250331 is replaced by tengine-3.1.0-1.el9.x86_64        geolite2-country &lt; 20250331 is replaced by tengine-3.1.0-1.el9.x86_64</code></pre><p>Please download the relevant dependency packages first:</p><pre><code class="language-shell">wget https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/apr-1.7.0-12.el9_3.x86_64.rpmwget https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/apr-util-1.6.1-23.el9.x86_64.rpmwget https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/apr-util-bdb-1.6.1-23.el9.x86_64.rpmwget https://repo.almalinux.org/almalinux/9/CRB/x86_64/os/Packages/libmaxminddb-devel-1.5.2-4.el9.x86_64.rpmwget https://repo.almalinux.org/almalinux/9/CRB/x86_64/os/Packages/lmdb-0.9.29-3.el9.x86_64.rpmwget https://repo.almalinux.org/almalinux/9/CRB/x86_64/os/Packages/lmdb-devel-0.9.29-3.el9.x86_64.rpmwget https://repo.almalinux.org/almalinux/9/CRB/x86_64/os/Packages/lua-devel-5.4.4-4.el9.x86_64.rpmwget https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/lua-rpm-macros-1-6.el9.noarch.rpmwget https://repo.almalinux.org/almalinux/9/devel/x86_64/os/Packages/lua-static-5.4.4-4.el9.x86_64.rpmwget https://repo.almalinux.org/almalinux/9/devel/x86_64/os/Packages/pcre2-static-10.40-6.el9.x86_64.rpmwget https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/l/libmodsecurity-3.0.12-1.el9.x86_64.rpmwget https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/l/libmodsecurity-devel-3.0.12-1.el9.x86_64.rpmwget https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/l/libmodsecurity-static-3.0.12-1.el9.x86_64.rpmwget https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/s/ssdeep-libs-2.14.1-11.el9.x86_64.rpmwget https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/j/jemalloc-5.2.1-2.el9.x86_64.rpmwget https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/j/jemalloc-devel-5.2.1-2.el9.x86_64.rpmwget https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/l/luajit-2.1.0-0.23beta3.el9.x86_64.rpmwget https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/l/luajit-devel-2.1.0-0.23beta3.el9.x86_64.rpm</code></pre><p>Then install it:</p><pre><code class="language-shell">rpm -ivh apr-util-bdb-1.6.1-23.el9.x86_64.rpm apr-1.7.0-12.el9_3.x86_64.rpm apr-util-1.6.1-23.el9.x86_64.rpmrpm -ivh libmaxminddb-devel-1.5.2-4.el9.x86_64.rpmrpm -ivh lmdb-0.9.29-3.el9.x86_64.rpm lmdb-devel-0.9.29-3.el9.x86_64.rpmrpm -ivh lua-rpm-macros-1-6.el9.noarch.rpm lua-devel-5.4.4-4.el9.x86_64.rpm lua-static-5.4.4-4.el9.x86_64.rpmrpm -ivh pcre2-static-10.40-6.el9.x86_64.rpmrpm -ivh ssdeep-libs-2.14.1-11.el9.x86_64.rpm libmodsecurity-3.0.12-1.el9.x86_64.rpm libmodsecurity-devel-3.0.12-1.el9.x86_64.rpm libmodsecurity-static-3.0.12-1.el9.x86_64.rpmrpm -ivh jemalloc-5.2.1-2.el9.x86_64.rpm jemalloc-devel-5.2.1-2.el9.x86_64.rpmrpm -ivh luajit-2.1.0-0.23beta3.el9.x86_64.rpm luajit-devel-2.1.0-0.23beta3.el9.x86_64.rpm</code></pre><h2 id="distro-support"><strong>Distro support</strong></h2><p>The following distribution was tested and passed:</p><p>Almalinux 9.5 x86_64</p><p>Compatible with the following releases, untested:</p><p>Red Hat Enterprise Linux 9.x x86_64</p><p>CentOS Linux 9.x x86_64</p><p>Rocky Linux 9.x x86_64</p><h2 id="configuration"><strong>Configuration</strong></h2><ul><li>The nginx configuration file is located at: /app/nginx/conf</li><li>After installation will automatically start nginx service, manual restart service command: systemctl restart nginx, reload configuration command: systemctl reload nginx</li><li>In the process of installing the rpm package, the number of cpu cores of the target server will be automatically detected, and the nginx configuration will be automatically optimized for the configuration process</li><li>For the target server default site, access to the offshore server is disabled by default in nginx.conf to save server-related access resources. If you need to open this access, you can change this file by removing the following configuration statement:</li></ul><pre><code class="language-shell">  if ($ip_deny) {  return 503;  }</code></pre><ul><li>Support for lua syntax, the relevant test statements, please see the configuration of nginx.conf, you can modify the relevant configuration for the test</li><li>vhost.conf is an example of a site configuration that is not loaded by default, but can be modified and started by imitating it.</li><li>The modsecurity anti-attack module, i.e. Web Application Firewall (WAF), is enabled by default in vhost.conf, the configuration file is located at: <code>/app/nginx/conf/modsecurity</code>, and the logs are located at: <code>/app/nginx/logs/modsec_audit.log</code></li><li>The compilation parameters for this rpm package are as follows:</li></ul><pre><code class="language-shell">[root@EagleOS ~]# nginx -VTengine version: Microsoft-IIS/3.1.0nginx version: Microsoft-IIS/8.5/1.24.0built by gcc 11.5.0 20240719 (Red Hat 11.5.0-5) (GCC)built with OpenSSL 3.2.2 4 Jun 2024TLS SNI support enabledconfigure arguments: --prefix=/app/nginx --sbin-path=/usr/sbin/nginx --with-http_ssl_module --with-ld-opt=-lpcre --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-ld-opt=-ljemalloc --with-jemalloc --with-stream --with-stream_ssl_module --with-stream_realip_module --with-stream_ssl_preread_module --with-debug --with-compat --with-file-aio --with-mail --with-mail_ssl_module --with-pcre --with-pcre-jit --with-threads --with-http_auth_request_module --with-http_dav_module --with-http_degradation_module --with-http_flv_module --with-http_gunzip_module --with-http_image_filter_module --with-http_mp4_module --with-http_random_index_module --with-http_secure_link_module --with-http_sub_module --with-http_v2_module --with-http_addition_module --with-luajit-inc=/usr/include/luajit-2.1 --with-luajit-lib=/usr/lib64 --without-http_upstream_keepalive_module --add-module=modules/ngx_backtrace_module --add-module=modules/ngx_debug_pool --add-module=modules/ngx_debug_timer --add-module=modules/ngx_http_concat_module --add-module=modules/ngx_http_footer_filter_module --add-module=modules/ngx_http_reqstat_module --add-module=modules/ngx_http_slice_module --add-module=modules/ngx_http_trim_filter_module --add-module=modules/ngx_http_upstream_check_module --add-module=modules/ngx_http_upstream_dynamic_module --add-module=modules/ngx_http_upstream_dyups_module --add-module=modules/ngx_http_upstream_keepalive_module --add-module=modules/ngx_http_upstream_session_sticky_module --add-module=modules/ngx_http_upstream_vnswrr_module --add-module=modules/ngx_http_user_agent_module --add-module=modules/ngx_multi_upstream_module --add-module=modules/ngx_slab_stat --add-module=../ngx_cache_purge-2.5.3 --add-module=../ngx_brotli --add-module=../nginx-module-vts-0.2.4 --add-module=../ngx_http_geoip2_module --add-module=../lua-nginx-module-0.10.28 --add-module=../ModSecurity-nginx-master --with-cc-opt='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' --with-ld-opt='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,-E'</code></pre><h2 id="faq"><strong>FAQ</strong></h2><ul><li><strong>1.Why use <code>rpm -Uvh</code> instead of <code>rpm -ivh</code>?</strong></li></ul><p>A: If the target server has already installed the system default geolite2-city and geolite2-country, the IP database file in it is the database that is too old in 2019, this rpm package contains the IP database file with the same path and name (2025.03.31 maxmind.com official latest database), which will be overwrite the installation, so you need to use <code>rpm -Uvh</code> to upgrade the installation.</p><h2 id="rpm-public-key"><strong>RPM public key</strong></h2><ul><li>During the production process of this RPM package, the official source code file tengine-3.1.0.tar.gz is verified and signed with an RSA 4096-bit key (the highest strength) to ensure the integrity of the source code. The GPG public key for my chunk is as follows:</li></ul><p><a href="https://xmyy.com/keys/eagle-public-key1.asc">https://xmyy.com/keys/eagle-public-key1.asc</a></p><p><a href="https://xmyy.com/keys/eagle-public-key2.asc">https://xmyy.com/keys/eagle-public-key2.asc</a></p><p><a href="https://xmyy.com/keys/eagle-public-key3.asc">https://xmyy.com/keys/eagle-public-key3.asc</a></p><ul><li>The complete GPG public key after the merge of the above chunks is as follows:</li></ul><p><a href="https://xmyy.com/keys/eagle-master-public-key.asc">https://xmyy.com/keys/eagle-master-public-key.asc</a></p><ul><li>My public key includes signature and encryption functions, and you can (optionally) trust and import my public key</li></ul>]]></description>
                        <pubDate>Mon, 31 Mar 2025 23:59:00 GMT</pubDate>
                    </item>
                
                    <item>
                        <title>
                            <![CDATA[EagleOS 9.5-基于AlmaLinux 9.5深度定制优化]]>
                        </title>
                        <link>/article/EagleOS-deeply-customized-and-optimized-based-on-AlmaLinux</link>
                        <description><![CDATA[<p><span class="nowrap"><span class="emojify">💁🏻‍♂️</span> <a href="https://eagleos.sourceforge.io" target="_blank">sourceforge.net</a> 2025-03-11 《EagleOS 9.5-基于AlmaLinux 9.5深度定制优化》 童建平</span></p><p>EagleOS 9.5 说明文档</p><h1 id="heading">一、系统简介</h1><p>EagleOS 9.5基于AlmaLinux 9.5进行深度定制优化。</p><p>EagleOS 9.5根据AlmaLinux 9.5官方AlmaLinux-9.5-x86_64-dvd.iso进行精简，全程完全自动化无人值守安装，支持大于2TB磁盘自动分区，集成安装1151个软件包，包含了常用的工具及依赖库等，iso文件大小由官方的10.6G至不到2.6G，使装机效率更高效。</p><p>EagleOS 9.5安装过程中自动进行了如下几项系统优化：</p><p>（1）禁用selinux</p><p>（2）禁用NetworkManager，改用传统network</p><p>（3）一些服务的禁用、内核参数等优化</p><p>（4）集成epel、elrepo源，并更改使用国内源</p><p>（5）集成安装unrar、p7zip等常用软件包</p><p>安装完成后，ssh端口：49156，默认ip：192.168.0.205，系统超级用户名：root，密码：www.ip40.com</p><h1 id="heading-1">二、系统安装说明</h1><h2 id="eagleosiso">EagleOS系统iso文件下载</h2><p>请到天翼云盘高速下载eagleos9.5.iso：</p><p><a href="https://cloud.189.cn/t/JjiqyeqQ7Fri">https://cloud.189.cn/t/JjiqyeqQ7Fri</a></p><p>（访问码：2zkf）</p><p><a href="https://eagleos.sourceforge.io">https://eagleos.sourceforge.io</a></p><h2 id="eagleos">EagleOS系统安装方式</h2><ul><li>光盘安装</li></ul><p>请将eagleos9.5.iso刻录成光盘，目标服务器设置从光驱启动进行安装。</p><ul><li>U盘安装</li></ul><p>支持2种方式安装：</p><p>（1）以cdrom方式量产烧录到U盘，目标服务器设置从U盘启动进行安装。</p><p>（2）使用Ventoy等工具制作U盘启动引导，拷贝eagleos9.5.iso到U盘，目标服务器设置从U盘启动进行安装，直接选择eagleos9.5.iso进行引导安装。</p><ul><li>PXE网络安装（Linux）</li></ul><p>在Linux上安装syslinux，拷贝/usr/share/syslinux/pxelinux.0到tftp根目录下，其余略。</p><ul><li>PXE网络安装（Windows）</li></ul><p>（1）将本光盘目录/images/pxeboot拷贝到windows系统任意目录下，直接双击本目录下的tftpd64.exe，即自动启动pxe服务器（含dhcp,tftp等服务），可修改相关配置，直接生效。</p><p>（2）在windows系统下使用nginx、apache httpd或安装windows系统自带iis中的web角色创建web服务，下面以iis为例详述相关配置：</p><p>（3）在iis的站点web根目录如D:\web\pxe下建立如eagleos9.5子目录，将eagleos9.5.iso解压到此eagleos9.5子目录下，修改D:\web\pxe\eagleos9.5\images\pxeboot中2个eagleos9*.cfg文件及D:\web\pxe\eagleos9.5\images\pxeboot\pxelinux.cfg\default中的192.168.246.1为您的web服务器IP。</p><p>（4）将如下代码存为web.config，保存于web根目录如D:\web\pxe下，以确保安装过程中能正常下载安装文件。</p><p>（5）目标服务器设置从网络启动进行安装，即可开始从PXE安装EagleOS 9.5，当然目标服务器与您的web服务器必须网络是相通的。</p><p>&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;Start of web.config&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&ndash;</p><pre><code class="language-xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;configuration&gt;    &lt;system.webServer&gt;        &lt;directoryBrowse enabled=&quot;true&quot; &gt;&lt;/directoryBrowse&gt;        &lt;staticContent&gt;            &lt;mimeMap fileExtension=&quot;.cfg&quot; mimeType=&quot;application/octet-stream&quot; &gt;&lt;/mimeMap&gt;            &lt;mimeMap fileExtension=&quot;.img&quot; mimeType=&quot;application/octet-stream&quot; &gt;&lt;/mimeMap&gt;            &lt;mimeMap fileExtension=&quot;.bz2&quot; mimeType=&quot;application/octet-stream&quot; &gt;&lt;/mimeMap&gt;        &lt;/staticContent&gt;        &lt;security&gt;            &lt;requestFiltering allowDoubleEscaping=&quot;true&quot;&gt;&lt;/requestFiltering&gt;              &lt;/security&gt;    &lt;/system.webServer&gt;&lt;/configuration&gt;</code></pre><p>&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;End of web.config&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;-</p><h2 id="eagleos-1">EagleOS系统安装步骤</h2><p>（1）请先确定目标服务器已经配置好raid等磁盘配置，后续安装过程将清空硬盘数据并进行自动化分区，请确定目标服务器目标磁盘上如有重要数据已经备份到其他服务器!!!</p><p>（2）安装过程将自动配置有连接网络（只要物理联通即可）的网卡，所以建议将网线接到第一网卡进行操作，特别是在PXE安装情况下，否则安装后您得手工编辑配置网络。</p><p>（3）成功从光盘或pxe网络引导启动目标服务器后，您将看到如下的系统安装界面 (进入此界面时，请快速随意按下键盘方向键上下键，避免安装界面短暂的6秒延时超过而自动开始系统安装) :</p><p>光盘安装方式的引导界面：</p><p><img src="/upload/2026/03/cdrom.png" alt="光盘安装方式的引导界面"></p><p>PXE网络安装方式的引导界面：</p><p><img src="/upload/2026/03/pxe.png" alt="PXE网络安装方式的引导界面"></p><p>安装启动界面安装选项说明：</p><p>①第一项是“Automatically install EagleOS”，安装过程中只需要您手工进行硬盘分区，格式化完成后的界面中指定好引导启动的硬盘，之后都是自动化无人值守安装操作。</p><p>②第二项是“Automatically partition and install EagleOS on nvme”，在/dev/nvme0n1上进行自动化分区及系统安装。</p><p>（4）安装界面默认停留在上面第一项。可根据需要选择相应安装选项按回车后开始安装。视硬件配置不同，安装过程15-30分钟左右。</p><p>（5）安装完成后自动进入系统（PXE方式视硬件不同可能需要修改cmos引导）。在登录界面中，输入用户名:root，密码: <a href="http://www.ip40.com">www.ip40.com</a> ，即可通过控制台登录系统。</p><p>（6）通常情况下，您的网络段配置与eagleos9.5.iso默认配置的IP段不同，因此安装后需要在控制台修改网络IP等信息：</p><p>通过vim命令修改网卡配置文件/etc/sysconfig/network-scripts/ifcfg-ens160，修改其中相关信息后保存退出，然后执行命令: <code>systemctl restart network</code>，重启网络服务即可。</p><p>您就可以在本机电脑上通过SecureCRT等远程登录软件进行远程登录此台服务器了!</p><p>感谢您的使用！</p><p>有何建议和意见欢迎反馈给雄鹰：www@xmyy.com</p><pre><code class="language-shell">@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+===========-=@@@@@@@@@@@@@@@@@@@@@@@@@@@@%=:. =@@@@@@@@@@@@@@@@@@@%+==++=--=*%@@@@@@@%+-=++===#@@@@@%.   ######* #@@@@@@@@@@@@@@@@@@@@@@@@@@@@%:  =@@@@@@@@@@@@@@@@@+. =#@@@@%*:  :*@@@@+  +@@@%+ :@@@@@@-  .@@@@@@@%@@@@@@%##@@@@@@@@@@%##%@@@@@@@=  =@@@@@@%##%@@@@@@.  *@@@@@@@@@+   +@@@:  .+#@@@@*@@@@@@-   *****= @@@@*: +*= :+@@@@#-.-++:.::: #@-  =@@@@=:=+= .+@@@-   @@@@@@@@@@@.   %@@@=.   .-*@@@@@@@@-   =====: @@@@==*@@*   #@@%   @@@%   %%@@-  =@@%. .%%%.  =@@.   %@@@@@@@@@@-   %@@@@@#=:    -@@@@@@-  .@@@@@@#@@@@@*==+*   #@@@+: -*#= .+@@@@-  =@@*   *#**##*@@*   =@@@@@@@@@@.  +@@@*@@@@@%+   -@@@@@:  .@@@@@@@* @@   %@%   *@@@*--=###@@@@@@@-  =@@%   -%@@%+%@@@*.  -%@@@@@@%: .*@@@@..#@@@@@:  +@@#+=....-------.:@@+:.-+*=..=#@%.  ::::::-+%%*:..:*@@%=: .:=+#@@@@@@#+::-+**+=-=#@@@@@@*:-=++=::=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*:=*+++++. :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%@@@@@@@@@@@@@@@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+  -#%@@%#--%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*===++**%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@                                                                                                                                              mmmmmmmmmmmm++                            .*@@@#                     :*@@@@*:          .+@@%+...     .@@@@:::::.=@:                            .*@@#                 :%@%:    .-@@@#.    :@@=   .+@*      #@@@       -:                             +@@#                #@@*        .%@@@-   @@@#.    :#      #@@@     .@     .*@@@@=.    ..*@@@@#.:*@- +@@#    .=@@@@+.   +@@@.         .@@@@.  :@@@@@#.         #@@@@@@@@@@   .@@@. .@@@:  .%@@.  -@@@:=: +@@#   +@@.  %@@.  @@@@.          %@@@:    -@@@@@@%.      #@@@     .@       .+%@@@:  .@@@.  .@@@.   +@@#  :@@@###@@@%. %@@@-          %@@%.       :#@@@@=     #@@@       .: .=@@= .@@@:   .+%@@%@@+     +@@#  =@@@.         @@@%.        .@@@:  .@:     .@@@%     %@@%       *@ .@@@: .@@@:  :@@#.          +@@#   #@@@+. -@.    +@@@-      -@@+.    #@=    .@@@:  =##############*  .+%#+.-##=. .#@@@@@@@@@@::######.  .+#%#=.        .-+#%@%#+-.       :==*#%@%*:.                                 .*@:     .#@@                                                                                       +@@@.    :@@.                                                                                        ..@#####@.                                                                                                                                                                                                                                                                 </code></pre>]]></description>
                        <pubDate>Tue, 11 Mar 2025 15:46:06 GMT</pubDate>
                    </item>
                
                    <item>
                        <title>
                            <![CDATA[EagleOS 9.5-deeply customized and optimized based on AlmaLinux 9.5]]>
                        </title>
                        <link>/en/article/EagleOS-deeply-customized-and-optimized-based-on-AlmaLinux</link>
                        <description><![CDATA[<p><span class="nowrap"><span class="emojify">💁🏻‍♂️</span> <a href="https://eagleos.sourceforge.io" target="_blank">sourceforge.net</a> 2025-03-11 《EagleOS 9.5-基于AlmaLinux 9.5深度定制优化》 童建平</span></p><p>EagleOS 9.5 Documentation</p><h1 id="i-system-introduction">I. System Introduction</h1><p>EagleOS 9.5 is deeply customized and optimized based on AlmaLinux 9.5.</p><p>EagleOS 9.5 according to AlmaLinux 9.5 official AlmaLinux-9.5-x86_64-dvd.iso streamlining, the whole process of fully automated and unattended installation, support for more than 2TB disk automatic partitioning, integrated installation of 1151 software packages, including commonly used tools and libraries and other dependencies, iso file size from the official 10.6G The iso file size from the official 10.6G to less than 2.6G, so that the installation efficiency more efficient.</p><p>EagleOS 9.5 automatically performs the following system optimizations during the installation process:</p><p>(1) Disable selinux</p><p>(2) Disable NetworkManager and use traditional network instead.</p><p>(3) Optimize the disabling of some services and kernel parameters.</p><p>(4) integrated epel, elrepo source, and change the use of domestic sources</p><p>(5) integrated installation of unrar, p7zip and other commonly used packages</p><p>After the installation is completed, ssh port: 49156, default ip: 192.168.0.205, system super user name: root, password: <a href="http://www.ip40.com">www.ip40.com</a></p><h1 id="ii-system-installation-instructions">II. System installation instructions</h1><h2 id="eagleos-system-iso-file-download">EagleOS system iso file download</h2><p>Please go to sky cloud disk to download eagleos9.5.iso at high speed:</p><p><a href="https://eagleos.sourceforge.io">https://eagleos.sourceforge.io</a></p><p><a href="https://cloud.189.cn/t/JjiqyeqQ7Fri">https://cloud.189.cn/t/JjiqyeqQ7Fri</a></p><p>(Access Code: 2zkf)</p><h2 id="eagleos-system-installation-method">EagleOS system installation method</h2><ul><li>CD-ROM installation</li></ul><p>Please burn eagleos9.5.iso to CD-ROM and set the target server to boot from CD-ROM drive for installation.</p><ul><li>U disk installation</li></ul><p>Support 2 ways to install:</p><p>(1) Burn to a USB flash drive as a cdrom, and set the target server to boot from the USB flash drive for installation.</p><p>(2) Use Ventoy or other tools to create a USB flash drive bootable boot, copy eagleos9.5.iso to the USB flash drive, set the target server to boot from the USB flash drive for installation, and directly select eagleos9.5.iso for bootable installation.</p><ul><li>PXE Network Installation (Linux)</li></ul><p>Install syslinux on Linux, copy /usr/share/syslinux/pxelinux.0 to tftp root directory, the rest is omitted.</p><ul><li>PXE network installation (Windows)</li></ul><p>(1) the CD-ROM directory / images / pxeboot copied to any directory of the windows system, directly double-click the directory under the tftpd64.exe, that is, automatically start the pxe server (including dhcp, tftp and other services), you can modify the relevant configurations, directly effective.</p><p>(2) in the windows system using nginx, apache httpd or install windows system comes with the iis web role to create web services, the following iis as an example of the relevant configuration:</p><p>(3) in the iis site web root directory such as D:\web\pxe under the establishment of such as eagleos9.5 subdirectory, eagleos9.5.iso extracted to this eagleos9.5 subdirectory, modify D:\web\pxe\eagleos9.5\images\pxeboot in the two eagleos9 *. cfg file and D:\web\pxe\eagleos9.5\images\pxeboot. cfg file and 192.168.246.1 in D:\web\pxe\eagleos9.5\images\pxeboot\pxelinux.cfg\default as your web server IP.</p><p>(4) Save the following code as web.config in the web root directory such as D:\web\pxe to ensure that the installation files can be downloaded properly during the installation process.</p><p>(5) Set the target server to start the installation from the network, you can start to install EagleOS 9.5 from PXE, of course, the target server and your web server must be connected to the network.</p><p>&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;Start of web.config&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&ndash;</p><pre><code class="language-xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;configuration&gt;    &lt;system.webServer&gt;        &lt;directoryBrowse enabled=&quot;true&quot; &gt;&lt;/directoryBrowse&gt;        &lt;staticContent&gt;            &lt;mimeMap fileExtension=&quot;.cfg&quot; mimeType=&quot;application/octet-stream&quot; &gt;&lt;/mimeMap&gt;            &lt;mimeMap fileExtension=&quot;.img&quot; mimeType=&quot;application/octet-stream&quot; &gt;&lt;/mimeMap&gt;            &lt;mimeMap fileExtension=&quot;.bz2&quot; mimeType=&quot;application/octet-stream&quot; &gt;&lt;/mimeMap&gt;        &lt;/staticContent&gt;        &lt;security&gt;            &lt;requestFiltering allowDoubleEscaping=&quot;true&quot;&gt;&lt;/requestFiltering&gt;              &lt;/security&gt;    &lt;/system.webServer&gt;&lt;/configuration&gt;</code></pre><p>&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;End of web.config&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;-</p><h2 id="eagleos-system-installation-steps">EagleOS system installation steps</h2><p>(1) Please make sure that the target server has been configured raid and other disk configurations, the subsequent installation process will clear the hard disk data and automated partitioning, please make sure that the target server on the target disk, such as important data has been backed up to other servers!</p><p>(2) The installation process will automatically configure the network card with a connection to the network (as long as the physical connection can be), so it is recommended to connect the network cable to the first network card to operate, especially in the case of PXE installation, otherwise you will have to manually edit the configuration of the network after installation.</p><p>(3) After successfully booting the target server from the CD-ROM or PXE network, you will see the following system installation interface (when entering this interface, please press the keyboard arrow keys up and down quickly and randomly, to avoid the short 6-second delay in the installation interface and automatically start the system installation).</p><p>The boot screen for CD-ROM installation:</p><p><img src="/upload/2026/03/cdrom.png" alt="The boot screen for CD-ROM installation"></p><p>The boot screen for the PXE network installation method:</p><p><img src="/upload/2026/03/pxe.png" alt="The boot screen for the PXE network installation method"></p><p>Installation startup interface installation options:</p><p>The first option is “Automatically install EagleOS”, which requires you to manually partition your hard disk during the installation process, and specify the bootable hard disk in the interface after the formatting is completed, after which the installation is automated and unattended.</p><p>The second item is “Automatically partition and install EagleOS on nvme”, to automate partitioning and system installation on /dev/nvme0n1.</p><p>(4) The installation interface stays at the first item above by default. You can select the corresponding installation options and press Enter to start the installation. Depending on the hardware configuration, the installation process will take about 15-30 minutes.</p><p>(5) After the installation is completed, you will automatically enter the system (PXE mode may require modification of cmos boot depending on the hardware). In the login screen, enter username: root, password: <a href="http://www.ip40.com">www.ip40.com</a> to log in to the system via the console.</p><p>(6) Usually, your network segment configuration is different from the default IP segment configured by eagleos9.5.iso, so you need to modify the network IP and other information in the console after installation:</p><p>Modify the network card configuration file /etc/sysconfig/network-scripts/ifcfg-ens160 via vim command, modify the relevant information therein and save and exit, then execute the command: <code>systemctl restart network</code> to restart the network service.</p><p>You can now log in to the server remotely from your local computer using SecureCRT or other remote login software!</p><p>Thank you for your use!</p><p>Feel free to give feedback to Eagle with any suggestions and comments: <a href="mailto:www@xmyy.com">www@xmyy.com</a></p><pre><code class="language-shell">@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+===========-=@@@@@@@@@@@@@@@@@@@@@@@@@@@@%=:. =@@@@@@@@@@@@@@@@@@@%+==++=--=*%@@@@@@@%+-=++===#@@@@@%.   ######* #@@@@@@@@@@@@@@@@@@@@@@@@@@@@%:  =@@@@@@@@@@@@@@@@@+. =#@@@@%*:  :*@@@@+  +@@@%+ :@@@@@@-  .@@@@@@@%@@@@@@%##@@@@@@@@@@%##%@@@@@@@=  =@@@@@@%##%@@@@@@.  *@@@@@@@@@+   +@@@:  .+#@@@@*@@@@@@-   *****= @@@@*: +*= :+@@@@#-.-++:.::: #@-  =@@@@=:=+= .+@@@-   @@@@@@@@@@@.   %@@@=.   .-*@@@@@@@@-   =====: @@@@==*@@*   #@@%   @@@%   %%@@-  =@@%. .%%%.  =@@.   %@@@@@@@@@@-   %@@@@@#=:    -@@@@@@-  .@@@@@@#@@@@@*==+*   #@@@+: -*#= .+@@@@-  =@@*   *#**##*@@*   =@@@@@@@@@@.  +@@@*@@@@@%+   -@@@@@:  .@@@@@@@* @@   %@%   *@@@*--=###@@@@@@@-  =@@%   -%@@%+%@@@*.  -%@@@@@@%: .*@@@@..#@@@@@:  +@@#+=....-------.:@@+:.-+*=..=#@%.  ::::::-+%%*:..:*@@%=: .:=+#@@@@@@#+::-+**+=-=#@@@@@@*:-=++=::=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*:=*+++++. :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%@@@@@@@@@@@@@@@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+  -#%@@%#--%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*===++**%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@                                                                                                                                              mmmmmmmmmmmm++                            .*@@@#                     :*@@@@*:          .+@@%+...     .@@@@:::::.=@:                            .*@@#                 :%@%:    .-@@@#.    :@@=   .+@*      #@@@       -:                             +@@#                #@@*        .%@@@-   @@@#.    :#      #@@@     .@     .*@@@@=.    ..*@@@@#.:*@- +@@#    .=@@@@+.   +@@@.         .@@@@.  :@@@@@#.         #@@@@@@@@@@   .@@@. .@@@:  .%@@.  -@@@:=: +@@#   +@@.  %@@.  @@@@.          %@@@:    -@@@@@@%.      #@@@     .@       .+%@@@:  .@@@.  .@@@.   +@@#  :@@@###@@@%. %@@@-          %@@%.       :#@@@@=     #@@@       .: .=@@= .@@@:   .+%@@%@@+     +@@#  =@@@.         @@@%.        .@@@:  .@:     .@@@%     %@@%       *@ .@@@: .@@@:  :@@#.          +@@#   #@@@+. -@.    +@@@-      -@@+.    #@=    .@@@:  =##############*  .+%#+.-##=. .#@@@@@@@@@@::######.  .+#%#=.        .-+#%@%#+-.       :==*#%@%*:.                                 .*@:     .#@@                                                                                       +@@@.    :@@.                                                                                        ..@#####@.                                                                                                                                                                                                                                                                 </code></pre>]]></description>
                        <pubDate>Tue, 11 Mar 2025 15:46:06 GMT</pubDate>
                    </item>
                
                    <item>
                        <title>
                            <![CDATA[EagleOS 7.9-基于Centos 7.9深度定制优化]]>
                        </title>
                        <link>/article/EagleOS7-deeply-customized-and-optimized-based-on-Centos</link>
                        <description><![CDATA[<p><span class="nowrap"><span class="emojify">💁🏻‍♂️</span> <a href="https://github.com/eagleos/eagleos7" target="_blank">Github</a> 2021-05-23 《EagleOS 7.9-基于Centos 7.9深度定制优化》 童建平</span></p><p>EagleOS 7.9 说明文档</p><h1 id="heading">一、系统简介</h1><p>EagleOS 7.9基于CentOS 7.9进行深度定制优化。</p><p>EagleOS 7.9根据CentOS 7.9的Everything版本进行精简，全程完全自动化无人值守安装，支持大于2TB磁盘自动分区，集成安装568个软件包，包含了常用的工具及依赖库等，使装机效率更高效。</p><p>EagleOS 7.9安装后自动进行主要如下几项系统优化：</p><p>(1)禁用selinux</p><p>(2)禁用ipv6</p><p>(3)一些服务的禁用、内核参数等优化</p><p>(4)集成epel源，更改系统默认yum源为163源，epel源为aliyun源</p><p>(5)集成安装unrar、p7zip、pip等软件包</p><p>(6)升級系統openssl版本至1.1.1b</p><p>安装完成后，ssh端口：49156，默认ip：192.168.0.157，系统超级用户名：root，密码：www.ip40.com</p><h1 id="heading-1">二、系统安装说明</h1><h2 id="eagleosiso">EagleOS系统iso文件下载</h2><p>请到天翼云盘高速下载eagleos7.6.iso：</p><p><a href="https://cloud.189.cn/t/22uiyazYrQzq">https://cloud.189.cn/t/22uiyazYrQzq</a></p><p>(访问码:0zra)</p><p>本iso由于版本较旧，上述下载地址已失效。</p><h2 id="eagleos">EagleOS系统安装方式</h2><ul><li><p>光盘安装:请将eagleos7.9.iso刻录成光盘，目标服务器设置从光驱启动进行安装。</p></li><li><p>PXE网络安装（Linux）: 在Linux上安装syslinux，拷贝/usr/share/syslinux/pxelinux.0到tftp根目录下，其余略。</p></li><li><p>PXE网络安装（Windows）:</p><p>(1)将本光盘目录/images/pxeboot拷贝到windows系统任意目录下，直接双击本目录下的tftpd64.exe，即自动启动pxe服务器（含dhcp,tftp等服务），可修改相关配置，直接生效。</p><p>(2)在windows系统下自建web服务，如win2019系统安装自带iis中的web角色，在web根目录如D:\web\pxe下建立如eagleos7.9子目录，将eagleos7.9.iso解压到此eagleos7.9子目录下，修改D:\web\pxe\eagleos7.9\images\pxeboot中10个eagleos7.9*.cfg及D:\web\pxe\eagleos7.9\images\pxeboot\pxelinux.cfg\default中的192.168.0.185为您的web服务器IP。</p><p>(3)将如下代码存为web.config，保存于web根目录如D:\web\pxe下，以确保安装过程中能正常下载安装文件。</p><p>(4)目标服务器设置从网络启动进行安装，即可开始从PXE安装EagleOS 7.9，当然目标服务器与您的web服务器必须网络是相通的。</p></li></ul><p>&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;Start of web.config&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&ndash;</p><pre><code class="language-xml">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;configuration&gt;    &lt;system.webServer&gt;        &lt;directoryBrowse enabled=&quot;true&quot; &gt;&lt;/directoryBrowse&gt;        &lt;staticContent&gt;            &lt;mimeMap fileExtension=&quot;.cfg&quot; mimeType=&quot;application/octet-stream&quot; &gt;&lt;/mimeMap&gt;            &lt;mimeMap fileExtension=&quot;.img&quot; mimeType=&quot;application/octet-stream&quot; &gt;&lt;/mimeMap&gt;            &lt;mimeMap fileExtension=&quot;.bz2&quot; mimeType=&quot;application/octet-stream&quot; &gt;&lt;/mimeMap&gt;        &lt;/staticContent&gt;        &lt;security&gt;            &lt;requestFiltering allowDoubleEscaping=&quot;true&quot;&gt;&lt;/requestFiltering&gt;              &lt;/security&gt;    &lt;/system.webServer&gt;&lt;/configuration&gt;</code></pre><p>&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;End of web.config&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;-</p><h2 id="eagleos-1">EagleOS系统安装步骤</h2><p>(1)请先确定目标服务器已经配置好raid等磁盘配置，后续安装过程将清空硬盘数据并进行自动化分区，请确定目标服务器目标磁盘上如有重要数据已经备份到其他服务器!!!</p><p>(2)安装过程将自动配置有连接网络(只要物理联通即可)的网卡，所以建议将网线接到第一网卡进行操作，特别是在PXE安装情况下，否则安装后您得手工编辑配置网络。</p><p>(3)成功从光盘或pxe网络引导启动目标服务器后，您将看到如下的系统安装界面 (进入此界面时，请快速随意按下键盘方向键上下键，避免安装界面短暂的6秒延时超过而自动开始系统安装) :</p><p><img src="/upload/2026/03/eagleos7.9-1.jpg" alt="eagleos7.9安装菜单界面"></p><p>安装启动界面安装选项说明：</p><p>①第一项是“Auto Install EagleOS System By <a href="http://www.xmyy.com">www.xmyy.com</a>”，安装过程中只需要您手工进行硬盘分区，格式化完成后的界面中指定好引导启动的硬盘，之后都是自动化无人值守安装操作。</p><p>②第二项是“Auto Install EagleOS and !Auto Partition! on sda”，在/dev/sda上进行系统安装。</p><p>③第三项是“Auto Install EagleOS and !Auto Partition! on sdb”，在/dev/sdb上进行系统安装。</p><p>④第四项是“Auto Install EagleOS and !Auto Partition! on vda”，在/dev/vda上进行系统安装。</p><p>⑤第五项是“Auto Install EagleOS and !Auto Partition! on vdb”，在/dev/vdb上进行系统安装。</p><p>⑥第六项是“Auto Install EagleOS with nginx By xmyy.com”，安装过程中只需要您手工进行硬盘分区，格式化完成后的界面中指定好引导启动的硬盘，之后都是自动化无人值守安装操作，安装完成后自动启动nginx服务。</p><p>⑦第七项是“Auto Install EagleOS,nginx and !Auto Partition! on sda”，在/dev/sda上进行系统安装，安装完成后自动启动nginx服务。</p><p>⑧第八项是“Auto Install EagleOS,nginx and !Auto Partition! on sdb”，在/dev/sdb上进行系统安装，安装完成后自动启动nginx服务。</p><p>⑨第九项是“Auto Install EagleOS,nginx and !Auto Partition! on vda”，在/dev/vda上进行系统安装，安装完成后自动启动nginx服务。</p><p>⑩第十项是“Auto Install EagleOS,nginx and !Auto Partition! on vdb”，在/dev/vdb上进行系统安装，安装完成后自动启动nginx服务。</p><p>备注:第(6)-(10)项，自动安装nginx，相关软件包是经手工编译优化安装的，对应软件包及版本为:openssl 1.1.1b、jemalloc 5.2.0、pcre 8.43、tengine 2.3.2。</p><p>(4)安装界面默认停留在上面第一项。可根据需要选择相应安装选项按回车后开始安装。视硬件配置不同，安装过程15-30分钟左右。</p><p>(5)自动化安装过程中将会出现这种界面:</p><p><img src="/upload/2026/03/eagleos7.9-2.jpg" alt="eagleos7.9安装过程界面"></p><p>直到最后出现黑色的登录界面，此时系统即成功安装完毕!</p><p>(6)在登录界面中，输入用户名:root，密码: <a href="http://www.ip40.com">www.ip40.com</a>，即可登录系统，然后修改网卡配置，假设您的内网IP是:192.168.29.100,网关是:192.168.29.254, 则可执行如下命令(注意您的服务器网卡名称如果不一样，需要修改如下红色网卡名称em1为您的服务器网卡名称)修改:</p><p>vi /etc/sysconfig/network-scripts/ifcfg-em1</p><pre><code># Generated by parse-kickstartUUID=&quot;dfd48d4c-06d9-412a-9f1b-a67f2fa1f964&quot;DNS2=&quot;218.85.157.99&quot;DNS1=&quot;119.29.29.29&quot;IPADDR=&quot;192.168.29.100&quot;GATEWAY=&quot;192.168.29.254&quot;NETMASK=&quot;255.255.255.0&quot;BOOTPROTO=&quot;static&quot;DEVICE=&quot;em1&quot;ONBOOT=&quot;yes&quot;IPV6INIT=&quot;no&quot;</code></pre><p>需要修改的即为如上红色字样内容(UUID一行不同服务器是不同的值，此行保留不变或删除即可)，然后按键盘ESC键退出编辑状态，再输入:wq保存即可退出，然后执行命令: systemctl restart network重启网络服务即可。您就可以在本机电脑上通过SecureCRT或Xshell等远程登录软件进行远程登录此台服务器了!</p><p>感谢您的使用!</p><p>By the way，EagleOS 7.6基于Centos 7.6深度定制优化，发布于两年前的：2019.05.29</p><p>By Eagle</p><p>技术支持：www.xmyy.com</p><p>2021.05.23</p><pre><code class="language-shell">@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+===========-=@@@@@@@@@@@@@@@@@@@@@@@@@@@@%=:. =@@@@@@@@@@@@@@@@@@@%+==++=--=*%@@@@@@@%+-=++===#@@@@@%.   ######* #@@@@@@@@@@@@@@@@@@@@@@@@@@@@%:  =@@@@@@@@@@@@@@@@@+. =#@@@@%*:  :*@@@@+  +@@@%+ :@@@@@@-  .@@@@@@@%@@@@@@%##@@@@@@@@@@%##%@@@@@@@=  =@@@@@@%##%@@@@@@.  *@@@@@@@@@+   +@@@:  .+#@@@@*@@@@@@-   *****= @@@@*: +*= :+@@@@#-.-++:.::: #@-  =@@@@=:=+= .+@@@-   @@@@@@@@@@@.   %@@@=.   .-*@@@@@@@@-   =====: @@@@==*@@*   #@@%   @@@%   %%@@-  =@@%. .%%%.  =@@.   %@@@@@@@@@@-   %@@@@@#=:    -@@@@@@-  .@@@@@@#@@@@@*==+*   #@@@+: -*#= .+@@@@-  =@@*   *#**##*@@*   =@@@@@@@@@@.  +@@@*@@@@@%+   -@@@@@:  .@@@@@@@* @@   %@%   *@@@*--=###@@@@@@@-  =@@%   -%@@%+%@@@*.  -%@@@@@@%: .*@@@@..#@@@@@:  +@@#+=....-------.:@@+:.-+*=..=#@%.  ::::::-+%%*:..:*@@%=: .:=+#@@@@@@#+::-+**+=-=#@@@@@@*:-=++=::=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*:=*+++++. :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%@@@@@@@@@@@@@@@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+  -#%@@%#--%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*===++**%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@                                                                                                                                              mmmmmmmmmmmm++                            .*@@@#                     :*@@@@*:          .+@@%+...     .@@@@:::::.=@:                            .*@@#                 :%@%:    .-@@@#.    :@@=   .+@*      #@@@       -:                             +@@#                #@@*        .%@@@-   @@@#.    :#      #@@@     .@     .*@@@@=.    ..*@@@@#.:*@- +@@#    .=@@@@+.   +@@@.         .@@@@.  :@@@@@#.         #@@@@@@@@@@   .@@@. .@@@:  .%@@.  -@@@:=: +@@#   +@@.  %@@.  @@@@.          %@@@:    -@@@@@@%.      #@@@     .@       .+%@@@:  .@@@.  .@@@.   +@@#  :@@@###@@@%. %@@@-          %@@%.       :#@@@@=     #@@@       .: .=@@= .@@@:   .+%@@%@@+     +@@#  =@@@.         @@@%.        .@@@:  .@:     .@@@%     %@@%       *@ .@@@: .@@@:  :@@#.          +@@#   #@@@+. -@.    +@@@-      -@@+.    #@=    .@@@:  =##############*  .+%#+.-##=. .#@@@@@@@@@@::######.  .+#%#=.        .-+#%@%#+-.       :==*#%@%*:.                                 .*@:     .#@@                                                                                       +@@@.    :@@.                                                                                        ..@#####@.                                                                                                                                                                                                                                                                 </code></pre>]]></description>
                        <pubDate>Sun, 23 May 2021 16:05:30 GMT</pubDate>
                    </item>
                
                    <item>
                        <title>
                            <![CDATA[Win10忘记密码怎么办？3步教您重置Windows10密码]]>
                        </title>
                        <link>/article/3-Steps-to-Reset-Windows-10-Password</link>
                        <description><![CDATA[<p><span class="nowrap"><span class="emojify">💁🏻‍♂️</span>《今日头条》 2021-03-27 《Win10忘记密码怎么办？3步教您重置Windows10密码》 童建平</span></p><p>今天有同事反馈忘记其笔记本电脑Windows 10系统登录密码，向我求助。我微信语音聊天稍微指导下其SaverWin的安装操作，小白也能轻松搞定，成功破解重置Windows 10系统登录密码，进入系统了。</p><p>操作步骤其实很简单，如下：</p><h2 id="1-">第1步 下载及安装</h2><p>到官网 <a href="https://www.passfolk.com/windows-password-recovery.html">https://www.passfolk.com/windows-password-recovery.html</a> 下载安装包，如下：</p><p><img src="/upload/2026/03/3-Steps-to-Reset-Windows-10-Password1.jpg" alt="Win10忘记密码怎么办？3步教您重置Windows10密码3 Steps to Reset Windows 10 Password"></p><p>点击图中的“Download Now”，下载安装包进行安装，都是点下一步进行安装，这里就不赘述了。</p><h2 id="2-u">第2步 烧录U盘</h2><p>安装完成后，插入U盘，双击打开SaverWin主程序，如下图：</p><p><img src="/upload/2026/03/3-Steps-to-Reset-Windows-10-Password2.png" alt="Win10忘记密码怎么办？3步教您重置Windows10密码3 Steps to Reset Windows 10 Password"></p><p>如上图所示操作，选择U盘所在盘符，然后点击“Burn USB”烧录U盘按钮，会自动将SaverWin写入U盘。</p><h2 id="3-u">第3步 引导系统从U盘启动进行破解重置密码</h2><p>然后重启电脑，按F8（视机型不同，按键可能不同，请自行解决）进入开机引导选择，如下图：</p><p><img src="/upload/2026/03/3-Steps-to-Reset-Windows-10-Password3.jpg" alt="Win10忘记密码怎么办？3步教您重置Windows10密码3 Steps to Reset Windows 10 Password"></p><p>选择倒数第2项U盘，进入SaverWin主界面，如下图：</p><p><img src="/upload/2026/03/3-Steps-to-Reset-Windows-10-Password4.jpg" alt="Win10忘记密码怎么办？3步教您重置Windows10密码3 Steps to Reset Windows 10 Password"></p><p>如图所示，在Step 1选择操作系统所在C盘，再在Step 2中选择下面对应的用户名如Administrator，再点击Step 3的Reset Password重置密码按钮，再点击Step 4重启电脑即可。</p><p>拔掉U盘，重启电脑后，就直接进入系统桌面了。</p><p>就这么简单！</p>]]></description>
                        <pubDate>Sat, 27 Mar 2021 19:56:00 GMT</pubDate>
                    </item>
                
                    <item>
                        <title>
                            <![CDATA[新开源工具IPCDump：用于在Linux上跟踪进程间通信]]>
                        </title>
                        <link>/article/IPCDump-For-tracking-inter-process-communication-on-Linux</link>
                        <description><![CDATA[<p><span class="nowrap"><span class="emojify">💁🏻‍♂️</span>《今日头条》 2021-02-11 《新开源工具IPCDump：用于在Linux上跟踪进程间通信》 童建平</span></p><p>以色列一家进入传统防火墙细分领域市场的公司Guardicore近期宣布推出IPCDump，这是一种用于跟踪Linux上进程间通信的新开源工具。该工具涵盖了大多数Linux进程间通信（IPC）机制，包括管道、fifos、信号、Unix套接字、基于环回的网络和伪终端，这对于调试多进程应用程序以及提高它们在彼此之间如何通信的透明度非常有用。</p><p>Guardicore公司使用纯软件方法与物理网络脱钩，为防火墙提供了更快的替代方案。Guardicore是为敏捷企业而打造的，可在云、数据中心和端点中提供更高的安全性和可见性。</p><p>现代应用程序具有截然不同的流程，这些流程在黑盒子中相互插入，从而在发生问题时给开发人员带来了巨大挑战。对于调试复杂的多进程应用程序，此问题尤其重要。IPCDump通过跟踪应用程序通信的元数据和内容并在短暂进程之间跟踪IPC来解决此问题。</p><p>安全从业人员还可以使用此开源工具来探索业务应用程序如何与内部和外部系统进行通信。IPCDump还可以轻松跟踪短期进程的创建和破坏，这是一项繁琐的任务，通常需要安全和IT团队手动根据netstat检查端口号。</p><p><img src="/upload/2026/03/IPCDump-For-tracking-inter-process-communication-on-Linux2.jpg" alt="新开源工具IPCDump：用于在Linux上跟踪进程间通信IPCDump For tracking inter-process communication on Linux"></p><p>其他功能包括：</p><ul><li>支持管道和FIFO</li><li>回送IPC</li><li>信号（常规和实时）</li><li>Unix流和数据报</li><li>基于伪终端的IPC</li><li>基于进程PID或名称的事件过滤</li><li>人性化或JSON格式的输出</li></ul><p>Guardicore Research Ofri Ziv副总裁说：“ IPCDump是我们才华横溢的研发团队努力扩大细分平台技术界限的自然副产品，旨在使Guardicore的技术变得越来越强大。为此，我们需要能够更深入地研究Linux OS的内部机制，并因此开发了IPCDump。我们的目标是增加更多功能，使我们能够研究该工具尚未涵盖的其他机制，以进一步加深对内部Linux格局的了解。我们的团队还希望通过共享有用的开源调试工具来表达我们对开发和安全社区的承诺。”</p><p><img src="/upload/2026/03/IPCDump-For-tracking-inter-process-communication-on-Linux3.jpg" alt="新开源工具IPCDump：用于在Linux上跟踪进程间通信IPCDump For tracking inter-process communication on Linux"></p><p>要下载IPCDump调试工具，请访问<a href="https://github.com/guardicore/ipcdump">https://github.com/guardicore/ipcdump</a></p>]]></description>
                        <pubDate>Thu, 11 Feb 2021 13:27:00 GMT</pubDate>
                    </item>
                
                    <item>
                        <title>
                            <![CDATA[如何在MacOS下更改复制、粘贴等快捷键 以适应Windows下使用习惯（视频）]]>
                        </title>
                        <link>/article/How-to-Change-Copy-Paste-and-Other-Shortcuts-in-macOS</link>
                        <description><![CDATA[<p><span class="nowrap"><span class="emojify">💁🏻‍♂️</span>《今日头条》 2021-01-10 《如何在MacOS下更改复制、粘贴等快捷键 以适应Windows下使用习惯》 童建平</span></p><p>众所周知，MacOS下默认情况下使用Command+C快捷键来进行复制，而我们在Windows下习惯使用Control+C进行类似操作。本视频将教您如何在MacOS下更改复制、粘贴等快捷键，以适应以前Windows下的使用习惯。首先，打开“系统偏好设置”，然后点击键盘-&gt;快捷键-&gt;应用快捷键，添加复制快捷键，菜单标题分别为Copy、复制、拷贝，键盘快捷盘处则按键盘上的control+C，其它依此类推即可。</p><p>操作步骤其实很简单，请详见如下视频：</p><div class="video-wrapper">    <video src="/upload/2026/03/How-to-Change-Copy-Paste-and-Other-Shortcuts-in-macOS.mp4"    autoplay="true" controls="controls" preload="auto" width="100%" height="100%">        <p>            Your browser doesn't support HTML5 video. Here is a            <a href="/upload/2026/03/How-to-Change-Copy-Paste-and-Other-Shortcuts-in-macOS.mp4">link to the video</a> instead.        </p>    </video></div>]]></description>
                        <pubDate>Sun, 10 Jan 2021 23:30:00 GMT</pubDate>
                    </item>
                
                    <item>
                        <title>
                            <![CDATA[如何通过ssh远程登录给esxi主机防火墙添加允许ip列表（视频）]]>
                        </title>
                        <link>/article/How-to-add-allow-ip-list-to-esxi-host-firewall-via-ssh-remote-login</link>
                        <description><![CDATA[<p><span class="nowrap"><span class="emojify">💁🏻‍♂️</span>《今日头条》 2021-01-07 《如何通过ssh远程登录给esxi主机防火墙添加允许ip列表》 童建平</span></p><p>事故现场：</p><p>通过VMware vSphere Client直接更改esxi的IP成功（1段ip改为2段ip），但忘了之前有配置了只允许192.168.1.0段的ip连接VMware vSphere Client的防火墙规则，造成现在无法通过VMware vSphere Client连接esxi主机了。</p><p>解决办法：</p><p>所幸原来由于某种原因有开启了ssh，并未作ip受限规则，可以通过ssh登录esxi主机，增加允许ip列表。</p><p>查看原来配置的防火墙规则命令：</p><pre><code class="language-shell">esxcli network firewall ruleset allowedip list</code></pre><p>增加允许ip列表命令：</p><pre><code class="language-shell">esxcli network firewall ruleset allowedip add --ip-address=192.168.2.0/24 --ruleset-id=vSphereClient</code></pre><p>操作步骤其实很简单，请详见如下视频：</p><div class="video-wrapper">    <video src="/upload/2026/03/How-to-add-allow-ip-list-to-esxi-host-firewall-via-ssh-remote-login.mp4"    autoplay="true" controls="controls" preload="auto" width="100%" height="100%">        <p>            Your browser doesn't support HTML5 video. Here is a            <a href="/upload/2026/03/How-to-add-allow-ip-list-to-esxi-host-firewall-via-ssh-remote-login.mp4">link to the video</a> instead.        </p>    </video></div>]]></description>
                        <pubDate>Thu, 07 Jan 2021 18:57:00 GMT</pubDate>
                    </item>
                
                    <item>
                        <title>
                            <![CDATA[如何在MacOS上安装VeraCrypt以跨平台保护数据]]>
                        </title>
                        <link>/article/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms</link>
                        <description><![CDATA[<p><span class="nowrap"><span class="emojify">💁🏻‍♂️</span>《今日头条》 2020-12-11 《如何在MacOS上安装VeraCrypt以跨平台保护数据》 童建平</span></p><p>不管您从事互联网行业，还是从事其它行业，是不是经常有这种工作需求：白天在公司忙乎一些活，没干完，需要拷贝文件回家继续加班处理？而要拷贝的文件可能存放于不同子目录，每次拷贝一不小心就遗漏拷贝了，甚为麻烦。有什么又快捷又安全的方式来改变这种落后的拷贝方式、高效地解决问题呢？</p><p>亦或还有一种场景：公司为您配置的电脑安装的是Windows 10操作系统，而您家里的个人电脑如小编一样是Macbook Air之类的苹果公司产品，使用的是不同的MacOS操作系统，我们有一些公事上或私事上的敏感数据文件，需要用某种方式进行保护且在这两种不同操作系统中互相拷贝。那如何解决这个需求呢？</p><h2 id="veracrypt">Veracrypt有什么用？</h2><p>要解决上述这些问题和需求，其实VeraCrypt将是不二选择，且听小编娓娓道来。VeraCrypt是一种免费和开放源代码的多平台加密工具，可在Windows、Linux和Mac OS上运行，可在GUI图形界面和命令行、控制台上使用。</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms1.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>使用VeraCrypt，任何人都可以制作加密卷以保护数据、免遭未经授权的访问、使用、泄露、破坏和修改。您可以像在普通硬盘中一样将文件存储在VeraCrypt加密卷上。每当将数据存储在VeraCrypt卷中时，数据将在保存之前自动进行加密，并在加载后自动解密，而无需任何用户干预。正在VeraCrypt卷上写入的数据将被自动加密，从加密卷中复制或读取的数据将被自动解密。卸载VeraCrypt加密卷后，将无法访问和加密数据。要访问数据，您应该使用正确的密码或密钥文件加载VeraCrypt卷。没有使用正确的密码、密钥文件，任何人都无法窃取、读取、编辑加密卷上的数据。整个文件系统将被加密，包括文件名、文件夹名、每个文件的内容、可用空间、元数据等。</p><p>VeraCrypt提供多种加密算法，包括AES、Camellia、Kuznyechik、Serpent和 Twofish等，如下列表：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms2.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>其他特性还有支持FAT32和NTFS分区、隐藏卷标、热键启动等。</p><p>这是VeraCrypt的功能和亮点：</p><ul><li><p>以文件方式创建虚拟加密磁盘，并将其加载为真实磁盘。</p></li><li><p>加密整个分区或存储设备，例如USB闪存驱动器或硬盘驱动器。</p></li><li><p>支持加密安装Windows的系统分区或磁盘（预启动身份验证）。</p></li><li><p>加密是自动的、实时的（动态的）和透明的。</p></li><li><p>允许并行化和流水线化读取和写入数据，就像未加密驱动器一样快。</p></li><li><p>加密支持在现代处理器上的硬件加速。</p></li><li><p>提供合理的可否认性，以防万一您被迫透露密码：隐藏卷（伪装）和隐藏操作系统。</p></li></ul><h2 id="veracrypt-1">为什么选择Veracrypt？</h2><p>VeraCrypt与当年号称全球最好加密软件的TrueCrypt一样，&ldquo;殊途同归&rdquo;（某种方面而言）用于磁盘加密，它是基于TrueCrypt的免费磁盘加密软件，是由法国安全顾问Mounir Idrassi主导并于2013年6月发布、在TrueCrypt被迫关闭后至今积极开发、持续更新的可靠的TrueCrypt 分支，青出于蓝而胜于蓝。</p><p>VeraCrypt解决了TrueCrypt存在的许多漏洞和安全性问题，增强了用于系统和分区的加密算法的安全性，使其免受日益发展的暴力破解攻击的影响。这种增强的安全性仅在打开加密分区时增加了一些延迟，而不会影响应用程序使用阶段的性能。这是合法使用者可以接受的，但是它使攻击者更难访问加密数据。 例如，当系统分区被加密时，TrueCrypt使用PBKDF2-RIPEMD160进行1000次迭代加密处理，而VeraCrypt使用327670次迭代加密处理。</p><p>对于标准卷和其他分区，TrueCrypt最多使用2000次迭代，而VeraCrypt则对RIPEMD160算法使用655340次迭代，对于SHA-2和Whirlpool算法，则使用500000次迭代。</p><p>VeraCrypt是免费和开源的，比TrueCrypt更安全，适用于Windows、Linux和Mac OS多平台操作系统，适用于硬盘或USB驱动器，读写速度极快。它是TrueCrypt关闭后的最佳替代品，没有之一。</p><p>下面，本文将指导您如何在MacOS上安装使用VeraCrypt以保护文件数据安全，仅作抛砖引玉，希望能给您带来帮助。</p><h2 id="macosveracrypt">如何在MacOS上安装VeraCrypt</h2><p>VeraCrypt支持Mac OS X Lion 10.7及以上版本。针对OS X Lion 10.7 和OS X Mountain Lion 10.8的最新版本是1.24-Update7，而适用于OS X Mavericks 10.9及以上的最新版本是11月28日刚发布的1.24-Update8版本。</p><p>VeraCrypt依赖OSXFuse来运行，一些用户曾反馈说它在macOS Big Sur上运行存在问题。OSXFuse已对此作了更新，以适应新的macOS操作系统，FUSE版本4.0.0增加了对Apple Silicon的支持以及其他更改。VeraCrypt版本1.24-Update8已于11月28日发布，以解决macOS Big Sur和FUSE 4.0.x兼容性问题。</p><h4 id="osxfuse">下载并安装OSXFuse</h4><p>首先，我们需要去先下载并安装OSXFuse（如果您的系统中还未安装该软件的话），否则在VeraCrypt安装过程中您将碰到如下错误提示：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms3.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>上面截图中的地址，在国内可能无法访问，您可以到其github官网 <a href="https://github.com/osxfuse/osxfuse/releases">https://github.com/osxfuse/osxfuse/releases</a> 上下载：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms4.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>然后双击下载到的macfuse-4.0.4.dmg文件，将打开如下图的界面：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms5.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>双击图中箭头所示的install macFUSE.pkg，将弹出如下界面：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms6.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>理所当然，点击继续，出现如下图界面：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms7.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>再次点击&quot;继续&quot;按钮，如下图：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms8.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>有兴趣可以阅读下这软件许可协议，当然也可以直接点击&quot;继续&quot;按钮，如下图：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms9.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>当然得点击同意按钮了，再出现如下图：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms10.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>现在终于要开始安装了，点击&quot;安装&quot;按钮，出现下图界面：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms11.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>软件您当前登录的用户密码，再点击&quot;安装软件&quot;按钮，将会弹出警告框：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms12.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>这是MacOS系统的安全性特征，点击&quot;打开安全性偏好设置&quot;按钮，跳转到系统控制面板：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms13.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>图中显示来自开发者&quot;Benjamin Fleischer&quot;的系统软件已被阻止载入，不用管这提示，直接点击旁边的&quot;允许&quot;按钮，然后就完成安装了，如下图：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms14.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>下面我们可以进行VeraCrypt的安装步骤了。</p><h4 id="veracrypt-2">下载并安装VeraCrypt</h4><p>您可以到VeraCrypt官网 <a href="https://www.veracrypt.fr/en/Downloads.html">https://www.veracrypt.fr/en/Downloads.html</a> 选择下载您需要的版本。如下图所示：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms15.png" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>如果下载速度不畅，也可以到其github官网 <a href="https://github.com/veracrypt/VeraCrypt">https://github.com/veracrypt/VeraCrypt</a> 下载对应的软件包，这里就不赘述了。</p><p>双击下载到的 VeraCrypt_1.24-Update8.dmg文件，将出现如下图界面：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms16.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>双击图中的VeraCrypt_Installer.pkg，出现下图界面：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms17.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>点击图中&quot;继续&quot;按钮，出现如下图界面：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms18.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>同样地，再点击&quot;继续&quot;按钮，出现如下图：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms19.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>安装过程都是大同小异，也点击&quot;同意&quot;按钮，出现如下图：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms20.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>出现类似的页面，在这里可以更改安装位置，或按默认即可，然后点击&quot;安装&quot;按钮开始安装，出现如下图：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms21.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>同样需要输入您当前用户密码。这也是MacOS安全机制有别于Windows的地方，由于安装软件需要输入密码确认，一定程度上可以避免像Windows上恶意软件的泛滥。跑题了，点击&quot;安装软件&quot;按钮继续，出现如下图：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms22.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>哦耶！安装成功了！安装过程就此结束！</p><h4 id="brewveracrypt">Brew方式安装VeraCrypt</h4><p>除了dmg包的方式安装VeraCrypt，MacOS下也可以使用brew方式安装VeraCrypt。</p><p>如果您的系统上还没安装brew，仅需要下面一条命令进行安装：</p><pre><code class="language-shell">ruby -e &quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&quot; &lt; /dev/null 2&gt; /dev/null ; brew install caskroom/cask/brew-cask 2&gt; /dev/null</code></pre><p>然后使用下面命令即可完成安装VeraCrypt：</p><pre><code class="language-shell">brew cask install veracrypt</code></pre><p>当然这种方式要求比较熟练的相关技能，推荐使用前面的dmg包方式进行安装。</p><h2 id="macosveracrypt-1">如何在MacOS上使用VeraCrypt</h2><p>在MacOS的启动台找到VeraCrypt的图标，点击打开，将看到VeraCrypt的主界面如下图：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms23.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>安装后，软件界面是英文的，官方没有提供中文语言包，但官方在 <a href="https://www.veracrypt.fr/code/VeraCrypt/">https://www.veracrypt.fr/code/VeraCrypt/</a> 提供了源码包，您有兴趣的话，可以自行去下载并进行汉化处理，重新生成安装包。</p><p>界面虽然是英文的，但与Windows版本差别不大，且相关配置过程中一般按默认配置一直点&quot;下一步&quot;之类按钮即可，丝毫不影响我们使用。下面介绍下如何在MacOS下创建和加载加密卷。</p><h4 id="heading">创建加密卷</h4><p>在MacOS下创建加密卷，与在Windows下不尽相同，操作相对简单，这里不打算占用篇幅进行描述，有兴趣的朋友，可以点击下面链接去看我之前发表的文章：</p><p><a href="/article/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt/" target="_blank">如何使用VeraCrypt保护PC上的敏感文件</a></p><h4 id="heading-1">加载加密卷</h4><p>这里回到文首提到的问题和需求，VeraCrypt是可以跨平台使用的，所以，比如您在Windows下按照上面所述我的文章《如何使用VeraCrypt保护PC上的敏感文件》中的方法创建了加密卷，您完全可以在卸载加密卷后，将加密卷文件拷贝到MacOS下来加载使用。下面将为您展示此操作：</p><p>我将Windows下创建的加密卷文件拷贝到我的Mac电脑中，在VeraCrypt主界面中点击&quot;Select File（选择打开文件）&ldquo;按钮，选择我的加密卷存放路径，点击一个未使用的Slot卷标，如下图：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms24.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>其它配置如&quot;Nerver save history(不保存历史纪录)&ldquo;按默认不变，然后点击&quot;Mount（加载）&ldquo;按钮，出现如下图界面：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms25.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>同样输入您的加密卷密码，然后点&quot;OK（确定）&ldquo;按钮，将弹出如下图，提示您稍等片刻且软件可能暂时无法响应：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms26.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>从这里可以看出，VeraCrypt确实比TrueCrypt在加载时慢一点，因为它需要进行更强的加密运算，也才多费几秒，这是可以接受的。然后就出现如下图加载成功的界面了：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms27.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>然后返回MacOS的 &ldquo;访达&quot;窗口，可以看到我们在Windows下创建的加密卷文件中的目录和文件都存在：</p><p><img src="/upload/2026/03/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms28.jpg" alt="如何在MacOS上安装VeraCrypt以跨平台保护数据How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms"></p><p>这就是VeraCrypt给我们带来的好处，非常适合需要跨平台进行数据传输文件的我们。一方面保障了我们的数据安全性要求，一方面提高了效率。每次我们需要跨平台操作时，仅需要拷贝这个加密卷文件即可，就不用理会里面那么多子目录和文件了，也就不用担心会遗漏一些文件拷贝，也就不再需要下班回家后还要打电话叫尚在公司的同事帮你打开公司电脑，还得告诉同事你的电脑密码叫他（她）帮您传输遗漏的文件给您了。</p><h4 id="heading-2">重命名加密卷</h4><p>加密完加密卷后，如上图所示，卷标默认名称&quot;NO NAME&rdquo;，中文意思是&quot;没有名字&rdquo;，也许有强迫症的您是不是感觉不爽？那么如何改名呢？</p><p>比如，您想将名字改为&quot;eagle&quot;的话，仅需要在终端下输入下面命令：</p><pre><code class="language-shell">/usr/sbin/diskutil rename &quot;NO NAME&quot; &quot;eagle&quot;</code></pre><h2 id="veracrypt-3">如何保护VeraCrypt加密卷文件</h2><p>我们建议，应将加密卷文件存放于电脑不易被找到的位置，以加强隐私安全保护。熟悉iso9001认证等安全认证的朋友应该知道，安全性要求我们需要给电脑设定屏保密码之类的，以避免我们离开电脑时造成信息泄露。我们确实应该做好这方面的安全配置。</p><p>如果您没有配置这些，万一哪天有恶意者进入您的电脑，或者您不小心自己误删了加密卷文件，那可得了？数据就丢失了！怎么在MacOS下避免这种情况呢？</p><p>您可以对加密码卷所在的目录及其本身增加密码认证处理，即进入加密卷目录时，需要输入密码才能访问，可以一定程度上避免这种被删除或误删除的情况。</p><p>具体操作方法为：</p><p>在&quot;访达&quot;窗口中，定位到您的加密卷所在的目录，右键点击&quot;显示简介&rdquo;，设置文件夹操作脚本，修改open操作，复制下面代码替换原来的提示注释即可：</p><pre><code class="language-shell">on opening folder this_foldertell application &quot;Finder&quot;set dialogresult to display dialog &quot;请输入密码:&quot; buttons {&quot;确认&quot;} default button 1 default answer &quot; &quot;set PWText to the text returned of dialogresultif not PWText = &quot;这里请替换成您要设置的密码&quot; thenclose folder this_folderbeep 3display dialog &quot;密码错误！&quot; buttons {&quot;关闭!&quot;}end ifend tellend opening folder</code></pre>]]></description>
                        <pubDate>Fri, 11 Dec 2020 18:50:00 GMT</pubDate>
                    </item>
                
                    <item>
                        <title>
                            <![CDATA[如何使用VeraCrypt保护PC上的敏感文件]]>
                        </title>
                        <link>/article/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt</link>
                        <description><![CDATA[<p><span class="nowrap"><span class="emojify">💁🏻‍♂️</span>《今日头条》 2020-12-06 《如何使用VeraCrypt保护PC上的敏感文件》 童建平</span></p><p>如果您正在寻找一种简单而强大的方法来加密从系统驱动器到备份介质的任何文件，并将其存储于这两者之中的任何地方，那么VeraCrypt是一款可帮助您锁定保护文件的开源软件。请继续阅读，我们将会向您展示如何使用它。</p><p><img src="/upload/2026/03/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt1.jpg" alt="如何使用VeraCrypt保护PC上的敏感文件"></p><h2 id="truecrypt--veracrypt">什么是TrueCrypt / VeraCrypt，为什么要使用它？</h2><p>保护您不希望其他人看到的文件的最佳方法是加密。加密本质上是使用密钥将文件转换为不可读的乱码，除非您使用该密钥将其解锁。</p><p>TrueCrypt曾是一种流行的影响力最大的（没有之一）的磁盘加密工具，一个开源的动态加密应用程序，当年揭发了NSA棱镜门丑闻的斯诺登也青睐使用这款加密软件。TrueCrypt使您可以像处理常规驱动器上的文件一样使用加密文件。如果没有即时加密，那么积极地使用加密文件将是一个巨大的痛苦，其结果通常是人们只是不对自己的文件进行加密，或者因嫌解密和加密的麻烦而使用不安全的方法加密文件。</p><p>几年前，经常会有这种段子：某天突发奇想要在一台新电脑上安装TrueCrypt，去官网下载时才发现早已物是人非，TrueCrypt官网宣布于2014年5月因为安全问题停止开发。事实上当时TrueCrypt因为美国政府安全审计问题压力，拱手认输而关闭。VeraCrypt是TrueCrypt 的分支，于2013年6月发布，法国安全顾问Mounir Idrassi是项目的主要开发者。VeraCrypt是比TrueCrypt更出色的替代加密软件，在TrueCrypt停止开发之后，要寻找TrueCrypt的替代，可能没有比VeraCrypt更好的了。</p><p>使用VeraCrypt的即时加密系统，您可以创建一个加密卷（甚至是一个完全加密的系统驱动器）。加密卷中的所有文件均已加密，您可以使用VeraCrypt将其安装为普通驱动器以查看和编辑文件。当您在上面完成工作后，您可以卸下该卷。VeraCrypt会处理所有事务，将文件临时保存在内存RAM中，然后自动进行清理，并确保文件无损。</p><p>VeraCrypt也可以加密您的整个驱动器，至少在某些PC上是可行的，但是我们通常建议使用Windows的内置Bitlocker功能来加密整个磁盘。VeraCrypt是为文件组创建加密卷的理想选择，而不是对整个启动驱动器进行加密，在这方面Bitlocker是一个更好的选择。</p><h2 id="veracrypttruecrypt">为什么使用VeraCrypt代替TrueCrypt？</h2><p>从技术上讲，您仍然可以根据需要使用旧版本的TrueCrypt，甚至可以按照本指南进行操作，因为TrueCrypt和VeraCrypt的界面几乎完全相同。VeraCrypt解决了TrueCrypt的代码审核带来的一些小问题，更不用说对自己代码的审核了。它对TrueCrypt基础的改进为它成为真正的继任者奠定了基础，尽管它运行比TrueCrypt慢一些，但正如知名安全专家史蒂夫·吉布森（Steve Gibson）所说的，现在是转而使用VeraCrypt的好时机。</p><p>如果您使用的是旧版本的TrueCrypt，则并不是很紧迫要更换到VeraCrypt，它仍然非常可靠。但是VeraCrypt是未来趋势，比如您要设置新的加密卷，则应该更换使用VeraCrypt，毕竟TrueCrypt官网最后发布提供的最新7.2版本不支持创建新的加密卷。</p><h2 id="veracrypt">如何安装VeraCrypt</h2><p>对于本教程，您只需要做一些简单的操作：</p><ul><li><p>获取下载VeraCrypt的免费副本。</p></li><li><p>以计算机的管理员身份运行安装。</p></li></ul><p>仅此而已！您可以获取Windows、Linux或Mac OS X的VeraCrypt版本，然后以管理员权限安装（不能以受限/guest帐户权限运行VeraCrypt）。在本教程中，我们将使用Windows版本的VeraCrypt并将其安装在Windows 10电脑上。</p><p>VeraCrypt官网下载地址为：<a href="https://www.veracrypt.fr/en/Downloads.html">https://www.veracrypt.fr/en/Downloads.html</a></p><p><img src="/upload/2026/03/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt2.jpg" alt="如何使用VeraCrypt保护PC上的敏感文件"></p><p>在国内，此官网下载地址可能很慢，可能会遇到多次重试下载失败，则可以到国外知名开源软件网站sourceforge.net下载，地址为：<a href="https://sourceforge.net/projects/veracrypt/">https://sourceforge.net/projects/veracrypt/</a></p><p><img src="/upload/2026/03/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt3.jpg" alt="如何使用VeraCrypt保护PC上的敏感文件"></p><p>目前windows最新版本是官方今年8月7日发布的1.24-Update7，macos最新版本则是官方一周前的11月28日发布的1.24-Update8。与其它任何应用程序一样，下载并安装VeraCrypt。只需双击下载后的exe文件VeraCrypt Setup 1.24-Update7.exe，建议右键点击该文件，选择以管理员身份运行，按照向导中的说明进行操作即可。</p><p><img src="/upload/2026/03/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt4.jpg" alt="如何使用VeraCrypt保护PC上的敏感文件"></p><p>在安装过程中，可以选择&quot;安装&quot;选项，例如&quot;为所有用户安装&quot;和&quot;将.hc文件扩展名与VeraCrypt相关联&quot;。可以按默认选择即可。安装到最后，会提示是否禁用Windows快速启动，因为在开启Windows快速启动的情况下，VeraCrypt存在个别未知问题，建议选择禁用之，然后按提示重启电脑生效。</p><h2 id="heading">如何创建加密卷</h2><p>应用程序完成安装并重启电脑后，导航至&quot;开始&quot;菜单并启动VeraCrypt。您将看到下面的屏幕：</p><p><img src="/upload/2026/03/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt5.jpg" alt="如何使用VeraCrypt保护PC上的敏感文件"></p><p>您需要做的第一件事就是创建一个加密卷，因此单击&quot;创建加密卷&quot;按钮。这将启动&quot;加密卷创建向导&quot;，并提示您选择以下卷类型之一：</p><p><img src="/upload/2026/03/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt6.jpg" alt="如何使用VeraCrypt保护PC上的敏感文件"></p><p>卷可以像放在驱动器或磁盘上的文件卷一样简单，也可以像对操作系统的全盘加密一样复杂。对于本指南，我们力求把事情变得简单，并着重于介绍如何设置易于使用的本地容器。默认选择&quot;创建文件型加密卷&quot;，我们只需要点击下一步。</p><p>接下来，向导将询问您是否要创建标准卷或隐藏卷。再次，为了简单起见，在这一点上，我们将跳过&quot;隐藏卷&quot;的讨论。这绝不会降低我们正在创建的卷的加密级别或安全性，因为&quot;隐藏卷&quot;只是一种混淆加密卷位置的方法。</p><p><img src="/upload/2026/03/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt7.jpg" alt="如何使用VeraCrypt保护PC上的敏感文件"></p><p>直接点击下一步，接下来，您需要为卷选择一个做任意的名称和任意位置。这里唯一重要的参数是主机驱动器有足够的空间来创建要使用的卷（即，如果要使用100GB的加密卷，则需要选择具有100GB以上可用空间的驱动器）。建议驱动器选择除C盘外的非系统盘存放，以免重装系统时造成数据丢失，下图，我们将把加密的卷放在数据盘驱动器D盘不易被误删除的目录中，并取名为do-not-del ，文件名称任意，不需要有扩展名，即D:\backup\do-not-del。</p><p><img src="/upload/2026/03/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt8.jpg" alt="如何使用VeraCrypt保护PC上的敏感文件"></p><p>现在是时候选择您的加密方案了。您在这里真的不会出错。是的，有很多选择，但是所有选择都是非常可靠的加密方案，并且出于实用目的是可以互换的。例如，在2008年，FBI花费了一年多的时间试图解密涉及金融诈骗的巴西银行家的AES加密硬盘。如果您是数据保护偏执狂，有条件寻求数据取证专家的意见，您可以通过下拉菜单按缩写字母名称选择不同加密算法和哈希算法，以提升加密级别，您会放心地知道自己的数据是安全的。通常情况下，我们按默认选择点击下一步即可。</p><p><img src="/upload/2026/03/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt9.jpg" alt="如何使用VeraCrypt保护PC上的敏感文件"></p><p>在下一步中，您将选择卷大小。您可以以KB、MB或GB为单位进行设置。我们为该示例创建了5GB的测试卷。</p><p><img src="/upload/2026/03/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt10.jpg" alt="如何使用VeraCrypt保护PC上的敏感文件"></p><p>点击下一步，出现如下图的设置密码框。这里要记住一件事：短密码是个坏主意。您应该创建至少20个字符长的密码。我们建议您创建一个强大而不易忘记的密码。一项很棒的技巧是使用密码短语而不是简单的密码。这是一个示例：In2NDGradeMrsAmerman $ aidIWasAGypsy。这样的密码比你使用诸如password123、day这样的脆弱密码好。</p><p><img src="/upload/2026/03/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt11.jpg" alt="如何使用VeraCrypt保护PC上的敏感文件"></p><p>如果您使用了弱密码，比如密码字符长度太少，向导会给出警告窗口：</p><p><img src="/upload/2026/03/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt12.jpg" alt="如何使用VeraCrypt保护PC上的敏感文件"></p><p>在设置好安全强度的密码后，点击下一步，在创建实际卷之前，创建向导将询问您是否打算存储大文件。如果您打算在卷中存储大于4GB的文件，请点击选择&quot;是&quot;，它会调整文件系统以更好地满足您的需求。</p><p><img src="/upload/2026/03/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt13.jpg" alt="如何使用VeraCrypt保护PC上的敏感文件"></p><p>在&quot;加密卷格式化&quot;屏幕上，您需要四处移动鼠标以生成一些随机数据。</p><p><img src="/upload/2026/03/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt14.jpg" alt="如何使用VeraCrypt保护PC上的敏感文件"></p><p>产生足够的随机性后，点击&quot;格式化&quot;按钮。</p><p><img src="/upload/2026/03/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt15.jpg" alt="如何使用VeraCrypt保护PC上的敏感文件"></p><p>您也可以在格式化前选择要格式化的文件系统格式，比如NTFS之类的，但为了兼容性，建议不用选择，就按默认的exFAT进行格式化。</p><p><img src="/upload/2026/03/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt16.jpg" alt="如何使用VeraCrypt保护PC上的敏感文件"></p><p>格式化过程完成后，向导会弹窗提示已经完成加密卷的创建：</p><p><img src="/upload/2026/03/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt17.jpg" alt="如何使用VeraCrypt保护PC上的敏感文件"></p><p>点击确定后返回向导页面：</p><p><img src="/upload/2026/03/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt18.jpg" alt="如何使用VeraCrypt保护PC上的敏感文件"></p><p>此时，您如果需要再创建一个新的加密卷，则点击下一步，重复上面的流程，如果不需要，则点击退出按钮，返回到前面VeraCrypt的主界面。</p><p>现在，无论您的加密卷放置在何位置，它仅仅是一个单纯的文件，您还需要在VeraCrypt中将其挂载使用。</p><h2 id="heading-1">如何挂载加密卷</h2><p>单击VeraCrypt主窗口中的&quot;选择文件&quot;按钮，然后导航到存放VeraCrypt加密卷的目录。选择我们刚才创建的加密卷文件后，为安全起见，默认选择了&quot;从不保留历史纪录&quot;，不建议取消此勾选，再从上面的框中选择一个可用的驱动器盘符。我们选择了X，然后单击加载。</p><p><img src="/upload/2026/03/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt19.jpg" alt="如何使用VeraCrypt保护PC上的敏感文件"></p><p>此时按提示输入前面设置的加密卷密码，然后单击确定。</p><p><img src="/upload/2026/03/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt20.jpg" alt="如何使用VeraCrypt保护PC上的敏感文件"></p><p>需要耐心等待片刻，如下图：</p><p><img src="/upload/2026/03/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt21.jpg" alt="如何使用VeraCrypt保护PC上的敏感文件"></p><p>加载成功后，主界面如下图：</p><p><img src="/upload/2026/03/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt22.jpg" alt="如何使用VeraCrypt保护PC上的敏感文件"></p><p>让我们看一下&quot;我的电脑&quot;，可以看到我们的加密卷已成功加载：</p><p><img src="/upload/2026/03/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt23.jpg" alt="如何使用VeraCrypt保护PC上的敏感文件"></p><p>哦耶！成功了！5GB的加密卷呈现在您面前，正如兹母制作的甜点一样甜得美不可言。现在，您可以进入该加密卷，将所有您想要防止窥探的敏感文件拷入其中。</p><p>将敏感文件复制到加密卷中后，请不要忘记对其进行安全擦除。常规文件系统存储是不安全的，除非正确地擦除空间，否则已加密文件的痕迹将保留在未加密磁盘上。另外，当您不需要使用加密卷时，不要忘记在VeraCrypt 中&quot;卸载&quot;加密卷。</p>]]></description>
                        <pubDate>Sun, 06 Dec 2020 18:30:00 GMT</pubDate>
                    </item>
                
                    <item>
                        <title>
                            <![CDATA[从玩转靶机DVWA看程序设计安全]]>
                        </title>
                        <link>/article/Programming-Security-from-Playing-with-the-Target-DVWA</link>
                        <description><![CDATA[<p><span class="nowrap"><span class="emojify">💁🏻‍♂️</span>《今日头条》 2020-11-16 《从玩转靶机DVWA看程序设计安全》 童建平</span></p><h2 id="heading">前言</h2><p>靶机，在军事领域意指作为射击训练目标的一种军用飞行器。类似地，在网络安全行业，靶机，也称靶场，泛指作为渗透测试用途的一种软件或系统。常见的渗透测试靶机系统有DVWA、Metasploitable、mutillidaemutillidae、SQLol、hackxor、BodgeIt、Exploit KB、WackoPicko、OWASP Hackademic、WebGoat、XSSeducation、Web for Pentester、Lazysysadmin等等，举不胜举。DVWA就是其中最著名、最基础的靶场。<img src="/upload/2026/03/Programming-Security-from-Playing-with-the-Target-DVWA1.jpg" alt="从玩转靶机DVWA看程序设计安全Programming Security from Playing with the Target DVWA"></p><h2 id="dvwa">关于DVWA</h2><p>DVWA，全称Dam Vulnerable Web Application，是著名的OWASP开源的一个在线web安全教学平台，基于PHP+Mysql编写，用于常规WEB漏洞教学及检测WEB脆弱性，包含暴力破解、命令执行、CSRF、文件包含、SQL注入、XSS、盲注等常见的一些安全漏洞，并且分Low、Medium、High、Impossible四种不同的安全等级，等级越高难度也越大，同时每一个漏洞可以直接在页面选择查看源码进行源码对比加以学习。<img src="/upload/2026/03/Programming-Security-from-Playing-with-the-Target-DVWA2.png" alt="从玩转靶机DVWA看程序设计安全Programming Security from Playing with the Target DVWA"></p><h2 id="dvwa-1">安装配置DVWA</h2><p>DVWA是推荐新手首选靶场，配置简单，可运行在LAMP(Linux+Apache+Mysql+Php)之类的环境中，也可以运行在Windows系统中，只要您有个支持php+mysql的环境即可。这种环境的配置方法，网络上文章多如牛毛，这里就不赘述了。下面小编为您讲述如何在Centos 7.x下安装配置DVWA。</p><h4 id="heading-1">下载源码</h4><p>首先，我们需要到DVWA官方Github地址下载源码：<img src="/upload/2026/03/Programming-Security-from-Playing-with-the-Target-DVWA3.jpg" alt="从玩转靶机DVWA看程序设计安全Programming Security from Playing with the Target DVWA"><br>官方于2个月前的9月13日发布了最新版本2.01，也可以直接通过下面地址下载源码包：</p><h4 id="heading-2">安装配置</h4><ol><li>将下载的压缩包保存到本地后，通过rz命令(如果找不到此命令，请运行yum –y install lrzsz安装)将其上传到您的服务器上。解压后，会生成子目录DVWA-2.0.1，需要将该子目录下的所有文件移至您的站点根目录下。假设您的站点根目录是/opt/allsite/domain.com/wwwroot，则解压后目录结构如下图：<img src="/upload/2026/03/Programming-Security-from-Playing-with-the-Target-DVWA4.jpg" alt="从玩转靶机DVWA看程序设计安全Programming Security from Playing with the Target DVWA"></li><li>进入上图中config目录，重命名配置文件：</li></ol><pre><code class="language-shell">mv config.inc.php.dist config.inc.php</code></pre><p><br>修改其中$_DVWA数组各项值，如将$_DVWA[ &lsquo;db_server&rsquo; ]、$_DVWA[ &lsquo;db_database&rsquo; ]、$_DVWA[ &lsquo;db_user&rsquo; ]、$_DVWA[ &lsquo;db_password&rsquo; ]的值更改为您的数据库地址、数据库名、数据库用户名、数据库密码对应的值。如下图：<img src="/upload/2026/03/Programming-Security-from-Playing-with-the-Target-DVWA5.jpg" alt="从玩转靶机DVWA看程序设计安全Programming Security from Playing with the Target DVWA"></p><ol start="3"><li>如果您的php配置文件/etc/php.ini中没有开启允许allow_url_include，需要开启之，否则安装过程中会提示：</li></ol><pre><code class="language-code">PHP function allow_url_include: Disabled</code></pre><p>下面是修改后正确的配置：</p><p><img src="/upload/2026/03/Programming-Security-from-Playing-with-the-Target-DVWA6.jpg" alt="从玩转靶机DVWA看程序设计安全Programming Security from Playing with the Target DVWA"><br>如果变更了php配置，记得用systemctl reload httpd等命令重启下apache服务！</p><ol start="4"><li>还有一个坑需要事先修改配置以避免，否则您可能在安装过程中遇到如下错误：</li></ol><pre><code class="language-shell">You can also use this to reset the administrator credentials (&quot;admin // password&quot;) at any stage.reCAPTCHA key: Missing[User: apache] Writable folder /opt/allsite/domain.com/wwwroot/config: YesStatus in red, indicate there will be an issue when trying to complete some modules.</code></pre><p>这是有关谷歌验证码的功能，解决方法很简单，修改前面第2步骤中的配置文件config.inc.php，将其中$_DVWA[ &lsquo;recaptcha_public_key&rsquo; ]和$_DVWA[ &lsquo;recaptcha_private_key&rsquo; ]的值改为如下即可：</p><pre><code class="language-code">$_DVWA[ 'recaptcha_public_key' ] = '6LdK7xITAAzzAAJQTfL7fu6I-0aPl8KHHieAT_yJg';$_DVWA[ 'recaptcha_private_key' ] = '6LdK7xITAzzAAL_uw9YXVUOPoIHPZLfw2K1n5NVQ';</code></pre><p>如下图：<img src="/upload/2026/03/Programming-Security-from-Playing-with-the-Target-DVWA7.jpg" alt="从玩转靶机DVWA看程序设计安全Programming Security from Playing with the Target DVWA"></p><ol start="5"><li>假设您的网站域名是www.domain.com，此时即可访问http://www.domain.com/setup.php 进行初始化数据库，如下图：<img src="/upload/2026/03/Programming-Security-from-Playing-with-the-Target-DVWA8.jpg" alt="从玩转靶机DVWA看程序设计安全Programming Security from Playing with the Target DVWA"><br>只要在Status in red一行前面的检测项都是绿色的，就可以下拉页面，点击下图的Create / Reset Database按钮就行初始化数据。否则，请根据红色错误提示进行修改相关配置解决。<img src="/upload/2026/03/Programming-Security-from-Playing-with-the-Target-DVWA9.jpg" alt="从玩转靶机DVWA看程序设计安全Programming Security from Playing with the Target DVWA"><br>这个setup.php页面，可以在任何时候，您需要时进行访问，进行重新初始化操作，方便重新测试使用。</li><li>成功初始化数据库后，即完成安装。系统自动跳转到登录页面http://www.domain.com/login.php ，如下图：<img src="/upload/2026/03/Programming-Security-from-Playing-with-the-Target-DVWA10.jpg" alt="从玩转靶机DVWA看程序设计安全Programming Security from Playing with the Target DVWA"></li><li>此时输入默认的用户名admin，密码password，即可成功登录DVWA，如下图：<img src="/upload/2026/03/Programming-Security-from-Playing-with-the-Target-DVWA11.jpg" alt="从玩转靶机DVWA看程序设计安全Programming Security from Playing with the Target DVWA"></li></ol><h2 id="dvwa-2">DVWA演练</h2><p>上面已经完成了DVWA的安装，下面我们可以开始愉快的学习之旅了，让我们来看看如何在DVWA中进行渗透攻防演练。</p><h4 id="heading-3">安全级别</h4><p>本文开头介绍了DVWA分4种安全模式，安装完成后默认配置是最高级别的Impossible安全模式，为方便我们学习渗透测试，需要修改等级为最低级别Low：<br>登录DVWA后，点击左边菜单&quot;DVWA Security&quot;，在如下图中的下拉菜单中选择Low并点击Submit按钮提交，即可完成配置：<img src="/upload/2026/03/Programming-Security-from-Playing-with-the-Target-DVWA12.jpg" alt="从玩转靶机DVWA看程序设计安全Programming Security from Playing with the Target DVWA"></p><h4 id="brute-force">Brute Force(暴力破解)</h4><p>然后我们点击左边菜单&quot;Brute Force(暴力破解)&quot;，如下图：<img src="/upload/2026/03/Programming-Security-from-Playing-with-the-Target-DVWA13.jpg" alt="从玩转靶机DVWA看程序设计安全Programming Security from Playing with the Target DVWA"><br>我们在用户名和密码框中输入随意的字符，将提示用户名或密码不正确，如下图：<img src="/upload/2026/03/Programming-Security-from-Playing-with-the-Target-DVWA14.jpg" alt="从玩转靶机DVWA看程序设计安全Programming Security from Playing with the Target DVWA"><br>此时，我们可以在该页面右下角点击&quot;View Surce(查看源代码)&ldquo;按钮，查看此页面的源代码，这是DVWA很有用的一个功能，方便我们边查询源码边学习如何渗透测试，如下图：<img src="/upload/2026/03/Programming-Security-from-Playing-with-the-Target-DVWA15.jpg" alt="从玩转靶机DVWA看程序设计安全Programming Security from Playing with the Target DVWA"><br>如图所示，代码中的SQL语句为：</p><pre><code class="language-sql">SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';</code></pre><p>如上图，我们输入的用户名是gdfgdsf，密码是fgsdgsdfg，则此SQL查询语句向数据库提交查询：</p><pre><code class="language-sql">SELECT * FROM `users` WHERE user = 'gdfgdsf' AND password = 'fgsdgsdfg';</code></pre><p>由于数据库中不存在此用户名，自然通过不了，提示用户名或密码错误。<br>那如果我们用户名改为输入:</p><pre><code class="language-sql">admin'--</code></pre><p>即admin后面加个英文单引号再加双连字符(&ndash;)再加1个空格，如下图：<img src="/upload/2026/03/Programming-Security-from-Playing-with-the-Target-DVWA16.jpg" alt="从玩转靶机DVWA看程序设计安全Programming Security from Playing with the Target DVWA"><br>是不是见证奇迹的时刻发生了？我们成功绕过了程序设置，系统提示我们登录成功，而我们连密码都输入为空的。<br>我们来看看当输入上面用户名时，SQL语句变成了什么?SQL语句就变成：</p><pre><code class="language-sql">SELECT * FROM `users` WHERE user = 'admin'-- ' AND password = '';</code></pre><p>为什么这个语句能绕过验证呢？这是因为双连字符(&ndash;)在SQL中通常具有特别的含义，它起到注释作用，表示其后面的语句属于注释，应被忽略不予执行。于是上面的语句等价于执行了：</p><pre><code class="language-sql">SELECT * FROM `users` WHERE user = 'admin';</code></pre><p>数据库正好存在有名称为admin的用户，于是攻击者就能绕过成功登录系统了。<br>类似如上，构建含有特殊字符的用户名，还可以结合使用union等语句进行攻击，是很有用的技巧。</p><h2 id="heading-4">启示录</h2><p>限于时间和篇幅，上面只是简单介绍下DVWA的暴力破解模块，仅为其冰山一角，更多功能有待您去发现和体验，本文仅为抛砖引玉。从上面的源代码可看出，写出那样的代码是程序新手经常犯的错误，对SQL语句中引用的变量等缺乏应有的过滤操作，引发了安全风险。<br>那如何提高程序安全设计呢？其实DVWA也隐藏了给我们提高程序安全设计的技巧。我们将DVWA Security安全级别改为Medium，然后再返回菜单&quot;Brute Force(暴力破解)&quot;，点击查看源代码，将看到如下图所示：<img src="/upload/2026/03/Programming-Security-from-Playing-with-the-Target-DVWA17.jpg" alt="从玩转靶机DVWA看程序设计安全Programming Security from Playing with the Target DVWA"><br>由上可见，DVWA提供了使用mysqli_real_escape_string和md5函数对用户输入值进行相关转换操作，某种程度上提升了安全性。但道高一尺，魔高一丈，这点小把戏还是对付不了中级黑客的。<br>接着，我们将DVWA Security安全级别改为High，然后同样再返回菜单&quot;Brute Force(暴力破解)&quot;，点击查看源代码，将看到如下图所示：<img src="/upload/2026/03/Programming-Security-from-Playing-with-the-Target-DVWA18.jpg" alt="从玩转靶机DVWA看程序设计安全Programming Security from Playing with the Target DVWA"><br>怎么样，代码是不是更进化了？还对session进行了认证。然并卵，在高级黑客面前这点改进估计还是相形见拙，还是会被攻破。您自己可以再更改安全等级，再看DVWA新的代码安全改进。从中，您可以学到很多程序安全设计技巧。<br>所以，DVWA不仅仅是一款供渗透测试人员进行演练的靶场，也是广大&quot;程序猿&quot;学习提高的榜样。希望您能喜欢这套系统。<br>好了，本期教程先到这里，希望能给您带来帮助。小编一字字码字好累，一张张截图好苦，如果您喜欢，请记得帮忙点赞、收藏、转发，并点击关注小编，不胜感激！您的肯定将是小编前进的动力！本文由&quot;世说鹰语&quot;原创，欢迎关注，带您一起涨知识！</p>]]></description>
                        <pubDate>Mon, 16 Nov 2020 23:59:00 GMT</pubDate>
                    </item>
                
                    <item>
                        <title>
                            <![CDATA[在Windows 10上使用WSL安装Centos]]>
                        </title>
                        <link>/article/Installing-Centos-on-Windows-10-using-WSL</link>
                        <description><![CDATA[<p><span class="nowrap"><span class="emojify">💁🏻‍♂️</span>《今日头条》 2020-11-03 《在Windows 10上使用WSL安装Centos》 童建平</span></p><p>通过本文，您将获得一个简单的方式在Windows 10 WSL上手工安装CentOS ，以便学习使用RHEL的 RPM 或YUM 等命令……</p><p>WSL(Windows Subsystem for Linux)为用户提供了颇具吸引力的前沿功能。因为WSL可以让您不需要安装诸如VirtualBox之类的虚拟化软件，就可以直接在Windows 10系统中学习使用Linux命令。适用于Linux的Windows子系统通常被简称为WSL，是一个在Windows 10和Windows Server 2019上能够运行原生Linux二进制可执行文件（ELF格式）的兼容层。</p><p>通常我们可以通过Microsoft store安装特定Linux发行版，微软商店提供了一些预编译的轻量级镜像，目前可供选择的有： Ubuntu、Kali Linux、Debian、AlpinLinux、OpenSUSE 和SUSE Enterprise Server等发行版。因此，如果您想安装CentOS/RHEL (Red Hat Enterprise) 或者Arch Linux ，您不得不手工安装它们。那么，我们该怎么操作呢？</p><h2 id="wsl-centos-7">如何在WSL上安装 CentOS 7</h2><p>注意：开始安装前，您必须先在Windows 10中启用WSL，如果您不清楚怎么操作，请查阅参考笔者之前的文章：</p><p><a href="/article/Rambling-about-installing-and-using-WSL-on-Windows-Server-2019/" target="_blank">漫谈在Windows Server 2019中安装使用WSL</a></p><h4 id="1-centos-wsl">1: 下载CentOS WSL</h4><p>首先我们需要下载一个可用于WSL的CentOS镜像，该镜像应该是一个经过压缩的，且包含了rootfs及其它文件。幸运地，Github有牛人提供了一个开源的可运行在WSL上的CentOS实例，地址为：https://github.com/yuk7/CentWSL ，其最新版本基于目前流行的版本CentOS 7.6。如下图：</p><p><img src="/upload/2026/03/Installing-Centos-on-Windows-10-using-WSL1.jpg" alt="在Windows 10上使用WSL安装Centos Installing Centos on Windows 10 using WSL"></p><h4 id="2-wsl-centos-7x">2: 解压WSL CentOS 7.x</h4><p>从上面Github地址下载对应的压缩文件，右键点击并解压之，解压后文件大小300MB左右。如下，我们用WinRAR解压，当然您也可以用系统默认解压程序或其它解压缩工具。</p><p><img src="/upload/2026/03/Installing-Centos-on-Windows-10-using-WSL2.jpg" alt="在Windows 10上使用WSL安装Centos Installing Centos on Windows 10 using WSL"></p><h4 id="3-wslcentosexe-">3: 在WSL中运行CentOS.exe 并安装</h4><p>解压后，您将在目标目录中看到2个文件：rootfs.tar.gz和CentOS.exe。我们需要运行CentOS.exe，以便解压其中的文件并注册到WSL。右键点击并以管理员身份运行：</p><p><img src="/upload/2026/03/Installing-Centos-on-Windows-10-using-WSL3.jpg" alt="在Windows 10上使用WSL安装Centos Installing Centos on Windows 10 using WSL"></p><h4 id="4-">4: 完成安装</h4><p>稍等一些时间，系统将自动进行初始化，完成后您将看到如下图所示消息，此时可按任意键退出安装。</p><p><img src="/upload/2026/03/Installing-Centos-on-Windows-10-using-WSL4.jpg" alt="在Windows 10上使用WSL安装Centos Installing Centos on Windows 10 using WSL"></p><h2 id="wslcentos-7">在WSL上启动CentOS 7</h2><p>要在WSL上启动运行Centos，这时您返回解压后的目录，您将看到多出了2个目录，如下图：</p><p><img src="/upload/2026/03/Installing-Centos-on-Windows-10-using-WSL5.jpg" alt="在Windows 10上使用WSL安装Centos Installing Centos on Windows 10 using WSL"></p><p>不用理会，此时再次右击并以管理员身份运行CentOS.exe，即成功登录系统了，如下图：</p><p><img src="/upload/2026/03/Installing-Centos-on-Windows-10-using-WSL6.jpg" alt="在Windows 10上使用WSL安装Centos Installing Centos on Windows 10 using WSL"></p><h2 id="wslcentos-7-1">在WSL上更新Centos 7</h2><p>现在，您可以随心所欲在CentOS上运行您想要执行的命令了。然而，为了检验系统可用性，我们最好使用yum命令测试下更新系统：</p><pre><code class="language-shell">yum -y update</code></pre><p><img src="/upload/2026/03/Installing-Centos-on-Windows-10-using-WSL7.jpg" alt="在Windows 10上使用WSL安装Centos Installing Centos on Windows 10 using WSL"></p><h2 id="wslcentos-7-2">在WSL上卸载CentOS 7</h2><p>如果您因为某种原因不想使用了，可以使用下面命令在WSL上卸载CentOS：</p><pre><code class="language-shell">./CentOS.exe clean</code></pre><p>当您在使用CentOS过程中遭遇一些错误想重装，或者您不小心删除了解压缩的目录需要重装时，我们需要先卸载之：</p><p><img src="/upload/2026/03/Installing-Centos-on-Windows-10-using-WSL8.jpg" alt="在Windows 10上使用WSL安装Centos Installing Centos on Windows 10 using WSL"></p><p>在WSL上重新安装CentOS，只需要重新执行前面的步骤操作即可。</p>]]></description>
                        <pubDate>Tue, 03 Nov 2020 18:15:00 GMT</pubDate>
                    </item>
                
                    <item>
                        <title>
                            <![CDATA[漫谈在Windows Server 2019中安装使用WSL]]>
                        </title>
                        <link>/article/Rambling-about-installing-and-using-WSL-on-Windows-Server-2019</link>
                        <description><![CDATA[<p><span class="nowrap"><span class="emojify">💁🏻‍♂️</span>《今日头条》 2020-11-02 《漫谈在Windows Server 2019中安装使用WSL》 童建平</span></p><p>熟稔IT历史的朋友一定不会忘记98蓝屏事件：时任微软CEO的比尔·盖茨和助理 Chris Capossela在1998年春季计算机分销商展会（COMDEX ）现场演示Windows 98的&quot;即插即用&quot;（plug-and-play）新特性时，经历了演示计算机当场冷不丁甩出蓝屏死机（Blue Screen of Death，简称BSOD）界面的尴尬一幕：</p><p><img src="/upload/2026/03/Rambling-about-installing-and-using-WSL-on-Windows-Server-2019-1.gif" alt="漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019"></p><p>尽管微软极力想要化解其中的尴尬，但该事件还是在该公司的历史上留下了难以抹去的一笔。蓝屏死机几乎已经成为了微软Windows操作系统的标志。</p><p>那么，作为从业IT的您，如果是一名运维工程师，当你正在紧急处理线上故障时，突然办公电脑蓝屏死机了；又亦或您是一名程序猿，正在专注&quot;写bug&quot;时，也BSOD了，这是多么令人崩溃的事情啊。所以，拥有一个稳定的操作系统，是您的不二选择。</p><p>笔者自从Windows Server 2000以来，一直用Windows Server系列产品作为办公操作系统，深谙其利：</p><ul><li>Windows Server系列一般基于同时期的Windows家庭版开发而来，拥有相同的内核，如Windows Server 2012就是一套基于Windows 8基础上开发出来的服务器版系统，Windows Server 2019则基于Windows 10。如果您细心，会注意到很多Windows Update更新文件，Windows Server系列与Windows家庭版系列其实是相同的文件。所以使用Windows Server系列不会对您的日常办公带来什么不便。</li><li>作为办公用途，我们一般不需要华丽的Windows家庭版界面、多余的多媒体等功能，所以使用Windows Server系列作为办公操作系统完全适合，且能带来更高的稳定性(如基本告别蓝屏死机)、安全性。</li><li>Windows Server系列在内存管理和网络功能等方面要比Windows家庭版系列表现优秀，要求的硬件配置也更低(比如使用Windows 7最低内存要求为4G，Windows Server 2008 R2最低内存要求仅为512M)，也就意味着同等硬件配置情况下，使用Windows Server能使用更大的内存等资源，带来更高的工作效率。</li><li>不管您是运维工程还是程序猿，是不是经常在工作中需要搭建测试环境用于日常工作调试？在Windows Server系列上安装这些测试环境自然比在Windows家庭版系列上安装使用更便捷高效及稳定。</li></ul><p>因此，笔者极力推荐各位安装使用Windows Server系列最新版本Windows Server 2019用于办公，再配合安装使用WSL，可以告别以前在办公电脑上还要安装虚拟机安装LNMP等测试环境的窘境了。</p><p>大家知道，Windows 10推出了备受推崇的WSL。WSL，即Windows Subsystem for Linux，中文名称：适用于Linux的Windows子系统，可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销。如今，Windows Server 2019在版本1709及更高版本上也可以安装使用WSL了。</p><p>启用WSL，您可以：</p><ul><li>选择您偏好的 GNU/Linux 分发版。</li><li>运行常用的命令行软件工具（例如 grep、sed、awk）或其他 ELF-64 二进制文件。</li><li>运行 Bash shell 脚本和 GNU/Linux 命令行应用程序，包括：<ul><li>工具：vim、emacs、tmux。</li><li>语言：NodeJS、Javascript、Python、Ruby、C/ C++、C# 与 F#、Rust、Go 等。</li><li>服务：SSHD、MySQL、Apache、lighttpd、MongoDB、PostgreSQL。</li></ul></li><li>使用自己的 GNU/Linux 分发包管理器安装其他软件。</li><li>使用类似于 Unix 的命令行 shell 调用 Windows 应用程序。</li><li>在 Windows 上调用 GNU/Linux 应用程序。</li></ul><p>要在Windows Server 2019上使用WSL，首先需要确定您的系统版本大于1709，可按下面步骤确定您的操作系统版本：</p><p>①在开始菜单中点击Windows Powershell进入，或者在开始菜单中磁性贴中点击Windows Powershell进入，如下图：</p><p><img src="/upload/2026/03/Rambling-about-installing-and-using-WSL-on-Windows-Server-2019-2.jpg" alt="漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019"></p><p>②输入Powershell命令：</p><pre><code class="language-shell">Get-ComputerInfo | Select WindowsProductName, WindowsVersion, WindowsInstallationType, OsServerLevel, OsVersion, OsHardwareAbstractionLayer</code></pre><p>如下图：</p><p><img src="/upload/2026/03/Rambling-about-installing-and-using-WSL-on-Windows-Server-2019-3.jpg" alt="漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019"></p><p>③稍等几秒，系统输出结果，如：</p><pre><code class="language-shell">WindowsProductName : Windows Server 2019 DatacenterWindowsVersion : 1809WindowsInstallationType : ServerOsServerLevel : FullServerOsVersion : 10.0.17763OsHardwareAbstractionLayer : 10.0.17763.1131</code></pre><p>如下图：</p><p><img src="/upload/2026/03/Rambling-about-installing-and-using-WSL-on-Windows-Server-2019-4.jpg" alt="漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019"></p><p>上面的WindowsVersion的值即为您的系统版本。图中值为1809，满足WSL安装要求。</p><p>然后继续在上面的Powershell窗口中输入如下命令启用WSL：</p><pre><code class="language-shell">Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux</code></pre><p>如下图：</p><p><img src="/upload/2026/03/Rambling-about-installing-and-using-WSL-on-Windows-Server-2019-5.jpg" alt="漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019"></p><p>回车后， 稍等几秒，会提示您选择并重启计算机，如下图：</p><p><img src="/upload/2026/03/Rambling-about-installing-and-using-WSL-on-Windows-Server-2019-6.jpg" alt="漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019"></p><p>输入y或直接回车，电脑立即重启。重启后即成功启用了WSL。</p><p>接下来，就是选择下载并安装您喜欢的Linux发行版，在Windows 10下可以通过Microsoft Store应用直接下载安装，在Windows Server 2019中Microsoft Store应用不可用，可以通过以下网址来下载并手动安装Linux发行版：</p><ul><li>Ubuntu 20.04 <a href="https://aka.ms/wslubuntu2004">https://aka.ms/wslubuntu2004</a></li><li>Ubuntu 20.04 ARM <a href="https://aka.ms/wslubuntu2004arm">https://aka.ms/wslubuntu2004arm</a></li><li>Ubuntu 18.04 <a href="https://aka.ms/wsl-ubuntu-1804">https://aka.ms/wsl-ubuntu-1804</a></li><li>Ubuntu 18.04 ARM <a href="https://aka.ms/wsl-ubuntu-1804-arm">https://aka.ms/wsl-ubuntu-1804-arm</a></li><li>Ubuntu 16.04 <a href="https://aka.ms/wsl-ubuntu-1604">https://aka.ms/wsl-ubuntu-1604</a></li><li>Debian GNU/Linux <a href="https://aka.ms/wsl-debian-gnulinux">https://aka.ms/wsl-debian-gnulinux</a></li><li>Kali Linux <a href="https://aka.ms/wsl-kali-linux-new">https://aka.ms/wsl-kali-linux-new</a></li><li>OpenSUSE Leap 42 <a href="https://aka.ms/wsl-opensuse-42">https://aka.ms/wsl-opensuse-42</a></li><li>SUSE Linux Enterprise Server 12 <a href="https://aka.ms/wsl-sles-12">https://aka.ms/wsl-sles-12</a></li><li>Fedora Remix for WSL <a href="https://github.com/WhitewaterFoundry/WSLFedoraRemix/releases/">https://github.com/WhitewaterFoundry/WSLFedoraRemix/releases/</a></li></ul><p>然而，需要注意的是，如上个别发行版如Kali Linux并不适合于Windows Server 2019，因为Kali Linux需要运行在WSL 2上面，而目前Windows Server 2019是运行在WSL上的，除非您安装使用Windows Server 2019 Insider Preview版本，才能支持WSL 2。WSL 2 是适用于Linux的Windows子系统体系结构的一个新版本，它支持适用于Linux的Windows子系统在Windows 运行ELF64 Linux二进制文件，WSL 2 仅适用于Windows 10 版本1903、内部版本18362或更高版本。如果您试图强制在Windows Server 2019上安装使用Kali Linux，将不幸遭遇本文文首所述的BSOD。</p><p>现在，以Ubuntu 16.04为例，我们通过Powershell下载此发行版：</p><pre><code class="language-shell">Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile Ubuntu.appx –UseBasicParsing</code></pre><p>如下图：</p><p><img src="/upload/2026/03/Rambling-about-installing-and-using-WSL-on-Windows-Server-2019-7.jpg" alt="漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019"></p><p>回车后开始下载，取决于您的下载速度，可能费时很长，如下图：</p><p><img src="/upload/2026/03/Rambling-about-installing-and-using-WSL-on-Windows-Server-2019-8.jpg" alt="漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019"></p><p>有可能就遇到下载失败了，如下图：</p><p><img src="/upload/2026/03/Rambling-about-installing-and-using-WSL-on-Windows-Server-2019-9.jpg" alt="漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019"></p><p>这时候，为方便查看下载进度，我们改用curl命令进行下载：</p><pre><code class="language-shell">curl.exe -L -o ubuntu-1604.appx https://aka.ms/wsl-ubuntu-1604</code></pre><p>也是失败，如下图：</p><p><img src="/upload/2026/03/Rambling-about-installing-and-using-WSL-on-Windows-Server-2019-10.jpg" alt="漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019"></p><p>于是再改成下载更新版本的ubuntu：</p><pre><code class="language-shell">curl.exe -L -o ubuntu-1804.appx https://aka.ms/wsl-ubuntu-1804</code></pre><p>下载速度就很快了，5分钟左右就完成下载了，如下图：</p><p><img src="/upload/2026/03/Rambling-about-installing-and-using-WSL-on-Windows-Server-2019-11.jpg" alt="漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019"></p><p>然后对下载后ubuntu-1804.appx文件进行重命名，并解压到当前目录的ubuntu1804子目录下：</p><pre><code class="language-shell">Rename-Item ubuntu-1804.appx ubuntu-1804.zipExpand-Archive ubuntu-1804.zip ubuntu1804</code></pre><p>如下图：</p><p><img src="/upload/2026/03/Rambling-about-installing-and-using-WSL-on-Windows-Server-2019-12.jpg" alt="漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019"></p><p>然后继续输入下面命令切换到解压后的目录，并启动运行ubuntu：</p><pre><code class="language-shell">cd ubuntu1804ubuntu1804.exe</code></pre><p>如下图：</p><p><img src="/upload/2026/03/Rambling-about-installing-and-using-WSL-on-Windows-Server-2019-13.jpg" alt="漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019"></p><p>很不幸，您将看到如下错误提示：</p><p><img src="/upload/2026/03/Rambling-about-installing-and-using-WSL-on-Windows-Server-2019-14.jpg" alt="漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019"></p><p>解决的方法有2个，1个是按照错误提示中所述手工键入&quot;.\ubuntu1804.exe&quot;，或键入字母&quot;u&quot;再按Tab键也会自动填充&quot;.\ubuntu1804.exe&quot;命令。</p><p>另1个方法是使用如下PowerShell命令将您的分发版路径添加到Windows环境路径（在本例中为 C:\Users\Administrator\Ubuntu1804）中：</p><pre><code class="language-shell">$userenv = [System.Environment]::GetEnvironmentVariable(&quot;Path&quot;, &quot;User&quot;)[System.Environment]::SetEnvironmentVariable(&quot;PATH&quot;, $userenv + &quot;;C:\Users\Administrator\Ubuntu1804&quot;, &quot;User&quot;)</code></pre><p>如下图：</p><p><img src="/upload/2026/03/Rambling-about-installing-and-using-WSL-on-Windows-Server-2019-15.jpg" alt="漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019"></p><p>只是，第2个方法因为是修改系统变量，需要关闭原有窗口并重新启动PowerShell或者重启下计算机。重启后，就可以在任意路径下直接通过键入&quot;.\ubuntu1804.exe&quot;命令启动您的分发版，然后稍等片刻等待系统完成初始化。如下图：</p><p><img src="/upload/2026/03/Rambling-about-installing-and-using-WSL-on-Windows-Server-2019-16.jpg" alt="漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019"></p><p>之后，按照提示输入要创建的用户名和密码，即成功登录ubuntu系统，如下图：</p><p><img src="/upload/2026/03/Rambling-about-installing-and-using-WSL-on-Windows-Server-2019-17.jpg" alt="漫谈在Windows Server 2019中安装使用WSL-98蓝屏事件-Rambling about installing and using WSL on Windows Server 2019"></p><p>这样您就可以开始愉快的utuntu之旅了，在上面安装LNMP等环境，这里就暂不赘述了。喜欢本文的朋友，欢迎点赞、关注、评论哦！笔者后续将继续介绍在WSL下安装centos等发行版，敬请期待！</p>]]></description>
                        <pubDate>Mon, 02 Nov 2020 15:22:00 GMT</pubDate>
                    </item>
                
                    <item>
                        <title>
                            <![CDATA[无人参与安装Win2K全攻略]]>
                        </title>
                        <link>/article/Full-guide-to-installing-Win2K-unattended</link>
                        <description><![CDATA[<p><span class="nowrap"><span class="emojify">💁🏻‍♂️</span>《天极网》2001年4月26日 《无人参与安装Win2K全攻略》 福建农林大学 童建平</span></p><p>以下为文字版，扫描版请详见文末图片：</p><p>          当今电脑硬件大跌价，个人也可以拥有在以前看来是高性能高配置的电脑了，在个人电脑上玩转Windows 2000不再是梦。于是，我们不再眷恋Windows 9X,也不满意于Windows ME，我们的目标是Windows 2000家族系列。也许您以前得益于Microsoft Batch 98自动安装Windows 98的便捷，如今功能更强的Windows 2000的无人参与安装将是您的得力助手&mdash;-要知道Windows 2000的安装时间一般比Windows 9x要多半小时以上。下面以Windows 2000 Advance Server为例，详细介绍如何设置使用其无人参与安装(同样适用于其家族系列Windows 2000 Professional, Windows 2000 Server或Windows 2000 Datacenter Server)。<br>          无人参与安装可以简化在多个计算机上安装 Windows 2000 的过程，要做到这一点，需要创建和使用一个应答文件，即自动回答安装问题的自定义脚本。然后从命令行用适当的无人参与安装选项运行安装程序。当然，要使安装程序自动运行，如果您在CMOS里设置了开机密码，应先取消该设置。启动无人参与安装所用的命令与交互安装的命令相同。<br>          在运行MS-DOS或Windows 3.x的计算机上启动无人参与安装，请使用:</p><pre><code class="language-shell">winnt /u:&lt;ANSWER file&gt; /s:&lt;INSTALL source&gt; /t:&lt;TARGET drive&gt;</code></pre><p>          在运行Windows NT 4.0、Windows 95或Windows 98的计算机上启动无人参与安装，请使用:</p><pre><code class="language-shell">winnt32 /unattend:&lt;ANSWER file&gt; /s:&lt;INSTALL source&gt; [/syspart:&lt;TARGET drive&gt;] [/tempdrive:&lt;TARGET drive&gt;]</code></pre><p>          winnt.exe和winnt32.exe在Windows 2000安装光盘的i386目录下。其中，answer file为应答文件名，一般为unattend.txt，install source即安装文件源路径，target drive为目标盘。syspart参数为拷贝所有引导文件到目标盘并将其激活；tempdrive参数则拷贝所有安装文件到目标盘的某临时文件夹下，如果安装之中出现没有剩余磁盘空间，允许用户选择另一文件夹再继续安装。如果您要将系统安装在缺省的C盘下，可以省略syspart和tempdrive参数。而在多分区的硬盘上安装Windows 2000，若要确保系统安装在指定的目标盘上，最好用参数/t或/tempdrive指明目标分区。要完成无人参与安装，至少需要如下选项和键名值：</p><pre><code class="language-code">　　[Unattended]　　UnattendMode = FullUnattended　　TargetPath = WINNT　　[UserData]　　ComputerName = &quot;COMPUTER_NAME&quot;　　FullName = &quot;Your User Name&quot;　　[GuiUnattended]　　AdminPassword = *　　TimeZone = &quot;210&quot;　　[LicenseFilePrintData]　　AutoMode = &quot;PerServer&quot;　　AutoUsers = &quot;5&quot;　　[Networking]　　[Identification]　　JoinWorkgroup = Workgroup</code></pre><p><br>          Unattended选项中:</p><pre><code class="language-code">　　键名:UnattendMode　　键值：GuiAttended | ProvideDefault | DefaultHide | ReadOnly | FullUnattended　　指明系统安装的模式，缺省为&quot;DefaultHide&quot;模式，即&quot;隐藏页&quot;模式，如果应答文件中提供了所有回答，则安装程序不会让用户看到安装向导页面&quot;GuiAttended&quot;模式即&quot;使用GUI&quot;模式，只有Windows安装程序的文本模式部分是自动化的。&quot;ProvideDefault&quot;模式即&quot;提供默认&quot;模式，指明应答文件中提供的回答是默认回答，安装程序中会提示用户复查这些回答，用户可进行修改；&quot;FullUnattended&quot;模式即&quot;全自动&quot;模式，安装程序不提示用户作出任何回答，用户需在应答文件中提供所有需要的回答；&quot;ReadOnly&quot;模式即&quot;只读&quot;模式，如果用户可以看见安装向导页面，则不能进行修改。　　键名:TargetPath　　键值：* |　　指明系统安装目录名，通常是Winnt,如果已存在此目录，系统会安装在Winnt.x(x为0,1,...,999)目录下，目录名不能包含驱动器盘符，如果要指明目的盘符，要使用winnt32.exe的/tempdrive或winnt.exe的/t 参数。　　键名:ComputerType　　键值:Retail|OEM　　主要为OEM厂商而设，可略。　　键名:DriverSigningPolicy　　键值:Ignore|Warn|Block　　指明若发生硬件冲突时如何处理，可略。　　键名：ExtendOemPartition　　键值：0|1　　允许安装中建立扩展分区，可略。　　键名：FileSystem　　键值：ConvertNTFS|LeaveAlone　　选择是否在安装中将目标盘转换为NTFS分区，若要保留多系统启动，主分区必须格式为FAT或FAT32，此时应选&quot;LeaveAlone&quot;。值得注意的是，使用多系统时，应将Windows 2000安装在与原操作系统不同的分区上，否则安装程序会先格式化原系统所在分区。如果计划使用ExtendOemPartition,应设之为ConvertNTFS。推荐选择&quot;ConvertNTFS&quot;，因为NTFS系统更稳定、安全，且是唯一支持Active Directory的文件系统，Active Directory包括许多重要功能，例如域和基于域的安全；安装程序在复制文件到安装文件夹后开始转换分区。值得一提的是，如果要删除NTFS分区，可用Windows 2000光盘启动计算机进入安装程序，删除所在分区即可，或使用fdisk，但fdisk不能删除扩展分区中的NTFS分区，可用如下debug法：　　debug &lt;ENTER&gt;　　A 10 &lt;ENTER&gt;　　mov ax,0201 &lt;ENTER&gt;　　mov bx,0100 &lt;ENTER&gt;　　mov cx,0001 &lt;ENTER&gt;　　mov dx,0080 &lt;ENTER&gt;　　int 13 &lt;ENTER&gt;　　int 20 &lt;ENTER&gt;　　g=10 &lt;ENTER&gt;　　F 2ce 2dd 00 &lt;ENTER&gt;　　A 10 &lt;ENTER&gt;　　mov ax,0301 &lt;ENTER&gt;　　g=10 &lt;ENTER&gt;　　Q &lt;ENTER&gt;　　键名：NtUpgrade　　键值：Yes|No　　决定是否升级以前的Windows NT 3.51, Windows NT 4.0, Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server或Windows 2000 Datacenter Server，只能与winnt32.exe配合使用，如果设置了OemPreinstall =Yes，则此项不能设为YES。升级中会自动搜寻以前的用户设置。如果要从Windows 9x中进行升级，要使用键名Win9xUpgrade。　　键名：Repartition　　键值：Yes|No　　指定是否对客户端第一主盘进行重新分区和格式化(格式化为NTFS系统)。这只有在用Windows 2000光盘启动计算机进行无人参与安装时有效。　　键名：Win9xUpgrade　　键值：Yes|No　　指定是否从Windows 9x进行升级。建议不要使用升级安装，因为升级比全新安装需要更多的磁盘空间，而在升级过程中，在增加Active Directory 功能时，现有的用户帐户数据库可能会扩大十倍。键名OemFilesPath、OemPnPDriversPath、OemPreinstall、OemSkipEula、OverwriteOemFilesOnUpgradeValues等是为OEM厂商安装而设，可略。</code></pre><p><br>          UserData选项中：</p><pre><code class="language-code">　　键名：ComputerName　　键值： &lt;STRING&gt;　　用于设置计算机名，如果为*，则系统随机以公司名为基础生成计算机名。计算机名不可超过63个字符，否则会被自动截为63个字符。　　键名：FullName　　键值： &lt;STRING&gt;　　用于设置用户名，是确保完全无人参与安装不可少的。　　键名:OrgName　　键值： &lt;STRING&gt;　　设置公司名。　　键名：ProductID　　键值： &lt;STRING&gt;　　设置序列号，必须是正确的，否则安装过程会暂停要求用户点击&quot;接受协议&quot;等。</code></pre><p><br>          GuiUnattended选项中：</p><pre><code class="language-code">　　键名：AdminPassword　　键值：&lt;PASSWORD&gt; | *　　用于设置超级用户密码，如果为*，则密码为空。　　键名：AdvServerType　　键值：ServerNT　　用于设置服务器类型，只在升级Windows 2000 Server, Windows 2000 Advanced Server或Windows 2000 Datacenter Server时有效。　　键名：AutoLogon　　键值：Yes|No　　缺省值是&quot;NO&quot;，且对升级安装无效。当设置了AutoLogonAccountCreation=yes时，自动以超级用户登录。　　键名：AutoLogonAccountCreation　　键值：Yes|No　　缺省是&quot;Yes&quot;，设置安装后是否自动以超级用户登录系统。　　键名：AutoLogonCount　　键值：&lt;INTEGER&gt;　　键值通常为&quot;1&quot;，设置系统自动以超级用户登录的次数，重启后此键可失效----如果设为&quot;2&quot;，则重启后系统仍会自动以超级用户身份登录；如果设置了&quot;AdminPassword=*&quot;(空密码)和&quot;AutoLogon=Yes&quot;，系统只以超级用户登录一次且忽略此值。　　键名：TimeZone　　键值：&lt;INDEX&gt;　　用于设置时区，中国用户可设之为&quot;210&quot;。　　其它键名Arguments、DetachedProgram、OEMSkipRegional、OEMSkipWelcome、ProfilesDir，可略。</code></pre><p><br>          LicenseFilePrintData选项中：</p><pre><code class="language-code">　　键名：AutoMode　　键值：PerSeat | PerServer　　用于选择授权模式,键值&quot;PerSeat&quot;即&quot;每客户&quot;模式，&quot;PerServer&quot;即&quot;每服务器&quot;模式，建议选&quot;PerServer&quot;，因为可以一次性地从&quot;每服务器&quot;模式改成&quot;每客户&quot;模式而没有开销。　　键名：AutoUsers　　键值：&lt;INTEGER&gt;　　每服务器每个连接必须有自己的&quot;客户端访问许可证&quot;，此键用于设置同时连接的数目，通常为&quot;5&quot;。</code></pre><p><br>          Networking选项必须置于应答文件中所有网络设置选项的前面。其中：</p><pre><code class="language-code">　　键名：InstallDefaultComponents　　键值：Yes|No　　用于指定是否安装默认组件。</code></pre><p><br>          Identification选项中：</p><pre><code class="language-code">　　键名：JoinWorkgroup　　键值：&lt;WORKGROUP name&gt;　　用于设置加入的工作组名。　　键名：JoinDomain　　键值：&lt;DOMAIN name&gt;　　用于设置加入的域名。　　键名:DomainAdmin　　键值：&lt;ACCOUNT name&gt;　　用于指定域中有权限去添加计算机到域的用户帐户。　　键名：DomainAdminPassword　　键值：&lt;PASSWORD of user account&gt;　　用于指定域中有权限去添加计算机到域的用户帐户的密码。　　除了以上必要的选项外，还有诸多选项供我们进行个性化设置。限于版面，下面只介绍常用选项和常用键名值:</code></pre><p><br>          URL选项，指定浏览器设置：</p><pre><code class="language-code">　　键名：Help_Page　　键值： &lt;URL&gt;　　指定默认浏览器帮助页。　　键名：Home_Page　　键值： &lt;URL&gt;　　指定默认浏览器主页。如：&quot;http://chinahacker.6to23.com&quot;，也可以是本机地址：&quot;file:///E:/homepage/index.html&quot;。</code></pre><p><br>          FavoritesEx选项，添加收藏夹：</p><pre><code class="language-code">　　键名值：Title&lt;#&gt; = &quot;&lt;SITE Name&gt;.url&quot;　　　　　　　URL&lt;#&gt; = &quot;&lt;SITE Address&gt;&quot;　　如：　　Title1 = &quot;雄鹰黑客网.url&quot;　　URL1 = &quot;http://chinahacker.6to23.com&quot;　　　　Title2 = &quot;本地主页.url&quot;　　URL2 = &quot;file:///E:/homepage/index.html&quot;</code></pre><p><br>          Display选项，如果Windows 2000包含您的显卡驱动，可在这里设置屏幕分辨率，省却安装后手工更改：</p><pre><code class="language-code">　　键名：BitsPerPel　　键值： &lt;VALID bits per pixel&gt;　　设置颜色值。若要设&quot;256色&quot;显示，值为&quot;8&quot;；若设&quot;增强色(16位)&quot;显示，值为&quot;16&quot;。　　键名：Vrefresh　　键值： &lt;VALID refresh rate&gt;　　设置刷新率。如&quot;85赫兹&quot;可设值为&quot;85&quot;。　　键名：Xresolution　　键值： &lt;VALID x resolution&gt;　　设置屏幕区域的像素宽度。如&quot;1024&quot;。　　键名：Yresolution　　键值： &lt;VALID resolution y&gt;　　设置屏幕区域的像素高度。如&quot;768&quot;。</code></pre><p><br>          RegionalSettings选项，用于语言设置：</p><pre><code class="language-code">　　键名：LanguageGroup　　键值：&lt;LANGUAGE group&gt;, &lt;LANGUAGE group&gt;, …　　设置系统被用来配置读取和写入多种语言的文档。&quot;中文简体&quot;为&quot;10&quot;，&quot;中文繁体&quot;为&quot;9&quot;。</code></pre><p><br>          TapiLocation选项，用于区域设置：</p><pre><code class="language-code">　　键名：CountryCode　　键值： &lt;COUNTRY code number&gt;　　设置国家所在区域，中国为&quot;86&quot;。　　键值：Dialing　　键值：Tone | Pulse　　设置电话拨号的方式，是音频(Tone)还是脉冲(Pulse)。</code></pre><p><br>          Components选项，设置可安装组件：</p><pre><code class="language-code">　　键名：accessopt　　键值：On | Off　　默认值是&quot;On&quot;。设置是否安装&quot;辅助工具&quot;里的&quot;辅助功能向导&quot;，主要为残疾人而设，可设为&quot;Off&quot;。　　键名：calc　　键值：On | Off　　默认值是&quot;On&quot;。设置是否安装计算器。　　键名：cdplayer　　键值：On | Off　　默认值是&quot;On&quot;。设置是否安装CD播放器。　　键名：cluster　　键值：On | Off　　默认值?quot;On&quot;。设置是否安装Windows群集。群集是由一组独立的计算机构成的，这些计算机协同工作以运行一组公用的应用程序，并为客户和应用程序提供类似单机系统的功能。因此个人计算机可设为&quot;Off&quot;。　　键名：deskpaper　　键值：On | Off　　默认值是&quot;On&quot;。设置是否安装桌面墙纸。若设为&quot;Off&quot;，Active Desktop的相关墙纸文件仍将安装。　　键名：LicenseServer　　键值：On | Off　　设置是否安装终端服务协议。终端服务是一种多会话环境，可以让远程计算机访问服务器上运行的基于 Windows 的程序。对于个人计算机而言，可以选择&quot;Off&quot;。　　键名：mousepoint　　键值：On | Off　　默认值是&quot;On&quot;。设置是否安装鼠标指标，可设为&quot;Off&quot;。　　键名：mswordpad　　键值：On | Off　　默认值是&quot;On&quot;。设置是否安装写字板。　　键名：paint　　键值：On | Off　　默认值是&quot;On&quot;。设置是否安装画图程序。　　键名：pinball　　键值：On | Off　　默认值是&quot;On&quot;。设置是否安装桌面弹球游戏。　　键名：rec　　键值：On | Off　　默认值是&quot;On&quot;。设置是否安装录音机程序。　　键名：solitaire　　键值：On | Off　　默认值是&quot;On&quot;。设置是否安装纸牌游戏。　　键名：templates　　键值：On | Off　　默认值是&quot;On&quot;。设置是否安装文档模板。　　键名：TSClients　　键值：On | Off　　默认值是&quot;Off&quot;。设置是否安装终端服务。　　键名：vol　　键值：On | Off　　默认值是&quot;On&quot;。设置是否安装音量控制。</code></pre><p><br>          NetAdapters选项，用于设置网络适配器：</p><pre><code class="language-code">　　键名：adapter instance　　键值：&lt;ADAPTER parameters section&gt;　　如：Adapter1=params.Adapter1</code></pre><p><br>          params.adapter instance选项，与NetAdapters配合使用：</p><pre><code class="language-code">　　键名：InfID　　键值：&lt;PNP adapter of&gt;　　如：[params.Adapter1]　INFID=*</code></pre><p><br>          NetClients选项，用于设置网络客户端：</p><pre><code class="language-code">　　键名：network client name　　键值：&lt;CLIENT parameters section&gt;　　如：MS_MSClient=params.MS_MSClient</code></pre><p><br>          NetServices选项，用于设置网络服务端：</p><pre><code class="language-code">　　键名：network service name　　键值：&lt;SERVICE parameters section&gt;　　如：MS_SERVER=params.MS_SERVER</code></pre><p><br>          NetProtocols选项，用于设置网络协议：</p><pre><code class="language-code">　　键名：protocol name　　键值：&lt;PROTOCOL parameters section&gt;　　键名protocol name包括：MS_TCPIP、MS_NWIPX、MS_PPTP、MS_L2TP、MS_DLC、MS_AppleTalk、MS_NetBEUI、MS_NetMon、MS_ATMLANE、MS_ATMUni、MS_ATMArps、MS_STREAMS，如下设置：MS_TCPIP=params.MS_TCPIP&lt;MS_TCPIP parameters&gt;选项，用于设置MS_TCPIP协议参数，选项名为&quot;params.MS_TCPIP&quot;：　　键名：DNS　　键值：Yes |No　　设置是否安装DNS。　　键名：UseDomainNameDevolution　　键值：Yes | No　　默认值是：&quot;Yes&quot; ，指定当DNS无法进行域名解析时是否进行域名转向。　　键名：EnableLMHosts　　键值：Yes | No　　默认值是：&quot;Yes&quot;，指定是否使用LMHosts查找。　　键名：AdapterSections　　键值：&lt;SECTION name&gt;[,&lt;SECTION name&gt;, …]　　指定一系列包含网络协议参数的选项。每个选项均有一个指定的&quot;SpecificTo&quot;值，这个&quot;SpecificTo&quot;值即在选项[NetAdapters]中已定义的网络适配器名。　　如：　　[params.MS_TCPIP]　　DNS=No　　UseDomainNameDevolution=No　　EnableLMHosts=Yes　　AdapterSections=params.MS_TCPIP.Adapter1</code></pre><p><br>          params.MS_TCPIP.Adapter1选项，配合[params.MS_TCPIP]选项进行设置：</p><pre><code class="language-code">　　键名：SpecificTo　　键值：&lt;NETWORK name component&gt;　　指定在本选项中的参数只针&lt;NETWORK name component&gt;所定义的网络组件。如果&quot;SpecificTo&quot;缺省，则本选项中的参数设置普遍适用于安装中被定义的网络协议。如：　　SpecificTo=Adapter1　　键名：DHCP　　键值：Yes | No　　默认值是：&quot;Yes&quot;，指定是否在网络联接中使用Dynamic Host Configuration Protocol(DHCP)。　　键名：IPAddress　　键值：&lt;IP address&gt;[, &lt;IP address&gt;[, …]]　　指定IP地址。　　键名：SubnetMask　　键值：&lt;SUBNET address&gt;[, &lt;SUBNET address&gt;[, …]]　　指定子网掩码。　　键名：WINS　　键值：Yes | No　　默认值是&quot;No&quot;，指定是否在网络联接中使用WINS。　　键名：NetBIOSOptions　　键值：0 | 1 | 2　　默认值是：&quot;0&quot;，&quot;0&quot;表示从DHCP Server获得NETBIOS设置，&quot;1&quot;表示在TCP/IP协议上绑定NETBIOS，&quot;2&quot;表示不在TCP/IP协议上绑定NETBIOS。</code></pre><p><br>          最后，给出一个unattend.txt实例：</p><pre><code class="language-code">　　[Unattended]　　Unattendmode = FullUnattended　　TargetPath = WINNT　　Filesystem =ConvertNTFS　　[UserData]　　FullName = &quot;童建平&quot;　　OrgName = &quot;雄鹰黑客网&quot;　　ComputerName = &quot;eagle&quot;　　[GuiUnattended]　　TimeZone = &quot;210&quot;　　AdminPassword =chinahacker　　AutoLogon = Yes　　AutoLogonCount = 1　　[Branding]　　BrandIEUsingUnattended = Yes　　[URL]　　Home_Page=http://chinahacker.6to23.com　　Help_Page=file:///E:/homepage/index.html　　[LicenseFilePrintData]　　AutoMode = &quot;PerServer&quot;　　AutoUsers = &quot;5&quot;　　[FavoritesEx]　　Title1 = &quot;雄鹰黑客网.url&quot;　　URL1 = &quot;http://chinahacker.6to23.com&quot;　　[Display]　　BitsPerPel = 16　　XResolution = 1024　　YResolution = 768　　VRefresh =60　　[Components]　　accessopt=Off　　calc=Off　　cdplayer=Off　　cluster=Off　　deskpaper=Off　　LicenseServer=Off　　mousepoint=Off　　mswordpad=On　　paint=On　　pinball=Off　　rec=Off　　solitaire=Off　　templates=Off　　TSClients=Off　　vol=On　　[Networking]　　InstallDefaultComponents = YES　　[Identification]　　JoinWorkgroup =hacker　　[NetAdapters]　　Adapter1=params.Adapter1　　[params.Adapter1]　　INFID=*　　[NetClients]　　MS_MSClient=params.MS_MSClient　　[NetServices]　　MS_SERVER=params.MS_SERVER　　[NetProtocols]　　MS_TCPIP=params.MS_TCPIP　　[params.MS_TCPIP]　　DNS=No　　UseDomainNameDevolution=No　　EnableLMHosts=Yes　　AdapterSections=params.MS_TCPIP.Adapter1　　[params.MS_TCPIP.Adapter1]　　SpecificTo=Adapter1　　DHCP=No　　IPAddress=192.168.0.1　　SubnetMask=255.255.255.0　　WINS=No　　NetBIOSOptions=0</code></pre><p>扫描版请详见如下：</p><p><img src="/upload/2026/03/Full-guide-to-installing-Win2K-unattended.jpg" alt="无人参与安装Win2K全攻略Full guide to installing Win2K unattended"></p>]]></description>
                        <pubDate>Tue, 09 Jul 2019 08:10:00 GMT</pubDate>
                    </item>
                
                    <item>
                        <title>
                            <![CDATA[Linkbotpro--测试主页链接好工具]]>
                        </title>
                        <link>/article/Linkbotpro-Good-tool-for-testing-homepage-links</link>
                        <description><![CDATA[<p><span class="nowrap"><span class="emojify">💁🏻‍♂️</span>《电脑商情报》2001年第9期 《Linkbotpro--测试主页链接好工具》 福建农林大学 童建平</span></p><p>以下为文字版，扫描版请详见文末图片：</p><p>          个人主页作为因特网的一枝独秀，至今仍红红火火。可是包括很多大型网站都会有链接错误 ，对于日益发展壮大的个人网站来说，这种错误也是不可避免的。小弟作主页久了，对这种错误也很烦恼，毕竟检查每个链接是多累的事。最近，小弟觅到一款测试、检查网页链接的好工具Linkbot Pro，相见恨晚，特介绍给各位共享。<br>          Linkbot Pro(见图1)是个共享软件，安装文件有6.50MB，可到http://chinahacker.6to23.com/ 或http://www.watchfire.com/下载，未注册版每次运行和关闭时都会弹出窗口要求注册。<br><img src="/upload/2026/03/Linkbotpro-Good-tool-for-testing-homepage-links1.gif" alt="图1"><br>图1<br>          Linkbot Pro主界面有友好的Windows风格，从上往下依次是菜单栏、工具栏、地址栏、工作区 、状态栏。首先点击工具栏&quot;新建&quot;图标，弹出一个小窗口，可以在联网下直接在其中的文本框中输入网址如&quot;http://chinahacker.6to23.com/ &ldquo;进行网上测试，也可点击&quot;Browse&quot;按钮打开本地首页HT M文件进行脱机测试，区别在于后者网页中的网址链接会被认为出错。当然，也可在工具栏下的地址栏中进行操作。<br>          测试中，Linkbot Pro右上角图标会像IE图标一样转动,可随时点击工具栏中的停 止按钮中止测试。测试的同时在Linkbot Pro状态栏上，左边(如图2)显示当前工作状态，右边(如 图3)则显示总文件数、已检测文件数、出错文件数、检测速率、检测时间等。检测完成后，状态栏 左边会显示检测所用时间，同时弹出窗口询问是否产生检测结果报告，图4为十分详细的检测结果报告页面。<br><img src="/upload/2026/03/Linkbotpro-Good-tool-for-testing-homepage-links2.gif" alt="图2"><br>图2<br><img src="/upload/2026/03/Linkbotpro-Good-tool-for-testing-homepage-links3.gif" alt="图3"><br>图3<br><img src="/upload/2026/03/Linkbotpro-Good-tool-for-testing-homepage-links4.gif" alt="图4"><br>图4<br>          除了检测结果报告，我们还可以在Linkbot Pro主界中查看检测结果。在菜单栏中点击菜 单&quot;Tools&ndash;&gt;Schedule Runs&rdquo;，可以让Linkbot Pro象计划任务一样定期检测您的主页。<br>          点击菜单&quot;View&ndash;&gt;Toolbars&quot;可以自定义工具栏。工具栏左半部是下面要介绍的一些功能的快速启动按钮 ，右半部从那个绿色的打勾状的按钮开始，供用户选择在工作区右栏显示链接对象类型，如反显红叉按钮，则在工作区右栏只显示出错链接。<br>          在工作区的左栏，有个下拉菜单(如图5)，提供目录树 、URL地址树、错误链接、出错页面、近期更新页面、久未更新页面、下载缓慢页面、单独页面、 无标题页面、含框架页面、无ALT页面、未指明图片宽窄页面、有逻辑错误页面、有Form页面、网站地图、扫描规则、所有链接等多达17种查看方式。<br><img src="/upload/2026/03/Linkbotpro-Good-tool-for-testing-homepage-links5.gif" alt="图5"><br>图5<br>          工作区的右栏，有6个选项卡。其中&quot;Children &ldquo;选项卡(如图6)以表格形式列出左栏链接对象的检测结果，包括&quot;Link URL&rdquo;(链接地址)、&ldquo;Link Status&rdquo;(链接状态)、&ldquo;Hits&rdquo;(点击数)、&ldquo;Link Description&rdquo;(链接描述)、&ldquo;Link Document Title&rdquo; (链接文档标题)、&ldquo;Author&rdquo;(作者)、&ldquo;Last Modified&rdquo;(最后更新)、&ldquo;Type&rdquo;(类型)、&ldquo;size&rdquo;(大小) 等9项内容(可对其进行拉伸)；&ldquo;Link Status&quot;即显示链接是否有错。<br><img src="/upload/2026/03/Linkbotpro-Good-tool-for-testing-homepage-links6.gif" alt="图6"><br>图6<br>          &ldquo;Parents&quot;选项卡(如图7)显示 左栏链接出现在何文档中，与&quot;Children&quot;选项卡一样有9项内容。<br><img src="/upload/2026/03/Linkbotpro-Good-tool-for-testing-homepage-links7.gif" alt="图7"><br>图7<br>          &ldquo;HTML&quot;选项卡(如图8)则显示左 栏HTM文件的源代码，可进行修改、编辑并保存，保存时只要在左栏点击其它HTM文件，就会弹出窗 口要求保存。<br><img src="/upload/2026/03/Linkbotpro-Good-tool-for-testing-homepage-links8.gif" alt="图8"><br>图8<br>          &ldquo;Browse&quot;选项卡(如图9)则调用IE浏览器在Linkbot Pro窗口中对左栏HTM文件或图片等进行预览,这时Linkbot Pro的状态栏变成IE的状态栏,可显示一些网页的状态栏跑马灯效果等 。<br><img src="/upload/2026/03/Linkbotpro-Good-tool-for-testing-homepage-links9.gif" alt="图9"><br>图9<br>          &ldquo;Properties&quot;选项卡(如图10)则显示左栏对象的详细信息，不过内容与&quot;Parents&quot;选项卡显示的相差无几。<br><img src="/upload/2026/03/Linkbotpro-Good-tool-for-testing-homepage-links10.gif" alt="图10"><br>图10<br>          &ldquo;Site Map&quot;选项卡(如图11)则以图形方式显示整个网页的层次结构,可以点击菜单&quot;Tools&ndash;&gt;Site Map&ndash;&gt;Map Options&quot;对图形显示参数进行设置。<br><img src="/upload/2026/03/Linkbotpro-Good-tool-for-testing-homepage-links11.gif" alt="图11"><br>图11<br>          在&quot;Children&quot;或&quot;Parents&quot;选项 卡中，右击其中链接，弹出如图12的右键菜单，下面仅介绍其中几个比较重要的选项功能。　　　　　　　<br><img src="/upload/2026/03/Linkbotpro-Good-tool-for-testing-homepage-links12.gif" alt="图12"><br>图12<br><img src="/upload/2026/03/Linkbotpro-Good-tool-for-testing-homepage-links13.gif" alt="图13"><br>图13<br>          其中&quot;Repair&quot;项是针对错误链接的,右击错误链接，在右键菜单中选&quot;Repair&rdquo;,弹出如图13的对话框， 再点击其中的&quot;Search/Replace&quot;按钮，会弹出向导对话框(如图14)让你改正。而选&quot;Properties&quot;项 ，则方便我们发现错误，在弹出的图15中我们可以看到，错误是将&quot;myarticle&quot;打错成&quot;myartilce&rdquo; ，而错误所在页就显示在下面；改正后，我们可以在其右键菜单中选&quot;Re-Check Selected Links&rdquo;, 再作检测，再打开&quot;Properties&quot;项时就可以发现错误消失了。对于HTM文件，其右键菜单中有个专门选项&quot;Validate HTML&rdquo;,点之出现如图16的对话框，显示一些建议性修改，而且鼠标移近时会有如网页中的&quot;ALT&quot;效果；关于此项功能，可在菜单&quot;Tools&ndash;&gt;Validator Options&quot;中进行相关设置。<br><img src="/upload/2026/03/Linkbotpro-Good-tool-for-testing-homepage-links14.gif" alt="图14"><br>图14<br><img src="/upload/2026/03/Linkbotpro-Good-tool-for-testing-homepage-links15.gif" alt="图15"><br>图15<br><img src="/upload/2026/03/Linkbotpro-Good-tool-for-testing-homepage-links16.gif" alt="图16"><br>图16<br>          最后，本人发现Linkbot Pro不仅是个检测主页的好工具，而且还内置上传功能(经过本人测试 可行)，可点击菜单&quot;Tools&ndash;&gt;Options for <em><strong>&ldquo;进行设置,&rdquo;</strong></em>&ldquo;为用Linkbot Pro测试后的首页文 件地址名，如&quot;E_homepage_index_html&rdquo;。Linkbot Pro真可谓功能多多，就等你去下载掘宝了。 &ldquo;***&ldquo;为用Linkbot Pro测试后的首页文件地址名，如&quot;E_homepage_index_html&rdquo;。Linkbot Pro真可谓功能多多，就等你去下载掘宝了。</p><p>扫描版请详见如下：</p><p><img src="/upload/2026/03/Linkbotpro-Good-tool-for-testing-homepage-links.jpg" alt="Linkbotpro&ndash;测试主页链接好工具Linkbotpro Good tool for testing homepage links"></p>]]></description>
                        <pubDate>Tue, 09 Jul 2019 08:09:00 GMT</pubDate>
                    </item>
                
            
        </channel>
    </rss>
