[{"content":"💁🏻‍♂️ github.com 2025-08-04 《EagleDesk-跨平台远程控制软件》 童建平\nEagleDesk - 跨平台远程控制软件 EagleDesk是一款基于Flutter开发的跨平台远程控制软件，支持Android、iOS、macOS、Windows等多个平台。\n✨ 功能特性 核心功能 远程桌面控制: 实时控制远程设备的桌面 屏幕查看: 仅查看远程屏幕，不进行控制 文件传输: 在设备间安全传输文件 多平台支持: Android、iOS、macOS、Windows 🎯 核心特性 🌐 真正的跨平台支持 - 一套代码，支持Windows、Android、iOS、macOS、Linux 🚀 现代化UI设计 - 采用Material 3设计语言，科技感十足的渐变配色 ⚡ 高性能屏幕共享 - 实时屏幕录制与传输，支持30FPS高帧率 🔒 企业级安全 - 端到端加密，设备码+临时密码双重验证 🎮 完整远程控制 - 支持鼠标、键盘、触摸等全方位远程操作 📁 智能文件传输 - 拖拽式文件传输，支持大文件断点续传 🔍 智能设备发现 - 局域网自动发现，支持P2P直连和中继模式 P2P直连: 优先使用点对点连接，减少延迟 中继服务器: P2P失败时自动切换到中继模式 端到端加密: 使用AES-256加密保护数据传输 NAT穿透: 支持STUN/TURN协议进行网络穿透 动态码率: 根据网络状况自动调整视频质量 🛠️ 技术架构 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ┌─────────────────────────────────────────────────────────────┐ │ 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 │ └─────────────────────────────────────────────────────────────┘ 项目结构 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 # 应用启动入口 技术细节 网络协议 设备发现: UDP广播发现局域网内的设备 连接建立: 优先尝试P2P直连 失败时使用中继服务器 数据传输: 屏幕数据: H.264/H.265编码 + UDP传输 控制指令: TCP可靠传输 文件传输: TCP + 断点续传 安全机制 密钥交换: RSA非对称加密交换会话密钥 数据加密: AES-256对称加密 身份认证: 基于JWT的用户认证 双因素认证: 支持TOTP二次验证 性能优化 动态码率: 根据网络状况调整视频质量 区域更新: 仅传输屏幕变化区域 硬件加速: 利用GPU进行视频编解码 多路径: 同时尝试多种连接路径 🚀 功能细节 📱 远程控制功能 🎥 屏幕共享 实时屏幕录制 - 支持高清屏幕捕获，最高支持4K分辨率 自适应帧率 - 根据网络状况自动调整帧率(15-60FPS) 智能压缩 - H.264硬件编码，减少带宽占用 多显示器支持 - 支持多屏幕环境下的屏幕选择 🎮 远程操作 精准鼠标控制 - 支持左键、右键、滚轮、拖拽操作 完整键盘支持 - 支持所有按键组合，包括快捷键 触摸手势 - 移动端支持多点触控手势 剪贴板同步 - 跨设备剪贴板内容同步 📁 文件传输 拖拽传输 - 简单拖拽即可传输文件 批量传输 - 支持多文件、文件夹批量传输 断点续传 - 网络中断后自动续传 传输加密 - 文件传输过程全程加密 🔐 安全特性 🛡️ 多重验证 设备码验证 - 6位数字设备码，定期自动更新 临时密码 - 6位随机密码，每次连接后失效 权限控制 - 细粒度权限管理，用户可控制访问范围 🔒 数据加密 端到端加密 - 使用AES-256加密所有传输数据 密钥交换 - 基于RSA的安全密钥交换机制 会话保护 - 每个会话使用独立的加密密钥 🌐 网络连接 🔍 智能发现 局域网扫描 - 自动发现同网段设备 设备码连接 - 通过设备码快速连接 历史记录 - 保存常用设备连接信息 🚀 连接模式 P2P直连 - 局域网内直接连接，低延迟 中继模式 - 跨网络环境通过服务器中继 自动切换 - 根据网络环境自动选择最佳连接方式 🎨 界面设计 🌈 现代化设计语言 EagleDesk采用最新的Material 3设计规范，结合科技感的配色方案：\n主色调: 现代紫色 (#6366F1) - 科技感与专业性的完美结合 辅助色: 科技绿 (#10B981) - 代表连接状态和成功操作 强调色: 青色 (#06B6D4) - 突出重要信息和交互元素 🎭 深色/浅色主题 自适应主题 - 跟随系统主题自动切换 护眼设计 - 深色主题减少眼部疲劳 高对比度 - 确保在各种环境下的可读性 📱 响应式布局 移动端优化 - 针对手机屏幕优化的纵向布局 平板适配 - 充分利用平板的大屏幕空间 桌面端体验 - 侧边栏导航，多窗口支持 🔧 技术实现 📚 核心技术栈 前端框架: Flutter 3.x 状态管理: Provider + ChangeNotifier 本地存储: Hive (轻量级NoSQL数据库) 网络通信: WebSocket + TCP + UDP 图像处理: Flutter Image + 原生编解码 权限管理: permission_handler + 原生权限API 🏗️ 架构模式 采用分层架构设计，确保代码的可维护性和扩展性：\n1 2 3 4 5 6 7 8 9 10 lib/ ├── core/ # 核心业务逻辑 │ ├── models/ # 数据模型 │ ├── services/ # 业务服务 │ └── app.dart # 应用入口 ├── ui/ # 用户界面 │ ├── screens/ # 页面组件 │ ├── widgets/ # 通用组件 │ └── theme/ # 主题配置 └── main.dart # 应用启动 🔌 平台集成 Android平台 Kotlin插件 - 处理屏幕录制、权限管理 MediaProjection API - 实现屏幕捕获 AccessibilityService - 实现远程控制 Windows平台 C++插件 - 系统级API调用 DirectX - 高性能屏幕捕获 Windows API - 鼠标键盘模拟 iOS/macOS平台 Swift插件 - 原生功能封装 ReplayKit - 屏幕录制框架 Core Graphics - 图像处理 📱 平台支持 ✅ 已支持平台 平台 状态 功能完整度 备注 🤖 Android ✅ 完全支持 100% 包含vivo等厂商适配 🪟 Windows ✅ 完全支持 100% Win10/11完全兼容 🍎 iOS ✅ 基础支持 80% 受系统限制部分功能 🍎 macOS ✅ 基础支持 85% 权限管理需优化 🐧 Linux ✅ 基础支持 75% 主流发行版支持 🔄 兼容性测试 Android: API 21+ (Android 5.0+) iOS: iOS 12.0+ Windows: Windows 10 1903+ macOS: macOS 10.15+ Linux: Ubuntu 18.04+, CentOS 7+ 🎯 使用场景 💼 商业应用 远程办公 - 居家办公时访问公司电脑 技术支持 - IT人员远程解决技术问题 演示培训 - 远程演示软件操作和培训 协同工作 - 团队成员之间的屏幕共享协作 🏠 个人使用 文件访问 - 外出时访问家中电脑文件 游戏娱乐 - 在移动设备上操作电脑游戏 媒体控制 - 手机控制电脑播放媒体内容 学习辅助 - 学生远程访问学校电脑资源 🏥 专业领域 医疗诊断 - 医生远程查看医疗设备数据 工业控制 - 远程监控和控制工业设备 教育培训 - 在线教学和远程实验指导 金融服务 - 安全的远程金融系统访问 🔒 安全说明 🛡️ 隐私保护 本地优先 - 优先使用P2P直连，数据不经过第三方服务器 临时连接 - 连接密码定期更新，防止长期暴露 权限最小化 - 只申请必要权限，用户可随时撤销 数据不存储 - 不在服务器存储用户数据和连接记录 🔐 安全建议 定期更新 - 及时更新应用版本，获取最新安全补丁 网络安全 - 在可信网络环境下使用，避免公共WiFi 权限管理 - 定期检查和管理应用权限 密码保护 - 不要将设备码和密码分享给不信任的人 使用说明 首次使用 注册账号或登录现有账号 应用会自动生成设备ID并注册到服务器 在设置中配置网络参数（如需要） 连接设备 确保设备在同一网络或可通过互联网访问 在主页面查看发现的设备 点击\u0026quot;远程控制\u0026quot;建立连接 连接成功后即可控制远程设备 功能使用 远程控制: 直接在屏幕上操作，支持鼠标和键盘 虚拟键盘: 点击键盘按钮使用虚拟键盘 缩放: 使用手势或工具栏按钮缩放屏幕 文件传输: 通过菜单访问文件传输功能 开发计划 已完成 基础架构搭建 用户界面设计 设备发现机制 连接管理 基础加密功能 屏幕捕获和显示 输入事件处理 P2P网络实现 服务器端开发 计划中 文件传输功能 音频传输 移动端优化 性能优化 多语言支持 注意: 这是一个演示项目，部分功能仍在开发中。\n📞 技术支持 如有问题或建议，请通过以下方式联系：\n提交GitHub Issue 如需购买及定制本系统或其它程序软件、app开发（Android/iOS），欢迎通过以下方式联系：\n微信号: xmdoor 邮箱: www@xmyy.com 🙏 致谢 感谢以下开源项目和技术社区的支持：\nFlutter Team - 提供优秀的跨平台开发框架 Material Design - 现代化的设计语言 Dart Community - 活跃的开发者社区 所有贡献者 - 每一个贡献都让EagleDesk变得更好 ⭐ 如果这个项目对你有帮助，请给我们一个Star！⭐\n让远程控制变得简单，让协作变得高效\nEagleDesk - 连接无界，控制无限 🦅\n💻 项目预览 Windows端界面 手机移动端界面 ","date":"2025-08-04T22:08:00+08:00","image":"https://xmyy.com/article/EagleDesk-cross-platform-remote-control-software/EagleDesk-cross-platform-remote-control-software_huf7e5c738edd240a68deab3a41230c235_266921_120x120_fill_q75_box_smart1.jpg","permalink":"https://xmyy.com/article/EagleDesk-cross-platform-remote-control-software/","title":"EagleDesk - 跨平台远程控制软件 - 现代化跨平台远程控制解决方案"},{"content":"💁🏻‍♂️ github.com 2025-07-17 《微信小程序：酒店预订管理系统》 童建平\n🏨 现代化酒店管理系统 项目概述 这是一个基于现代Web技术栈构建的全栈酒店管理系统，旨在为酒店行业提供完整的数字化解决方案，通过技术创新提升酒店运营效率和客户体验。系统采用前后端分离架构，结合了成熟的企业级框架和现代化的用户界面设计，为酒店运营管理和客户服务提供了强有力的技术支撑。\n🎯 核心特性 业务功能 客房管理 - 房型配置、房间状态管理、价格策略 预订系统 - 在线预订、订单管理、支付集成 会员体系 - 用户注册、会员等级、积分系统 优惠券系统 - 优惠券发放、使用跟踪、营销活动 积分商城 - 积分兑换、商品管理、订单处理 系统管理 - 用户权限、数据统计、系统配置 技术特色 响应式设计 - 完美适配PC端、平板和移动设备 现代化UI - 采用豪华酒店主题的视觉设计语言 高性能 - 优化的数据库查询和前端渲染 安全可靠 - 完善的权限控制和数据加密 易于扩展 - 模块化架构，支持功能定制 🛠️ 技术架构 后端技术栈 框架: Spring Boot + RuoYi框架 数据库: MySQL 8.0 安全: Apache Shiro权限框架 构建工具: Maven 开发语言: Java 11+ 前端技术栈 框架: Vue.js 3 + UniApp 状态管理: Pinia 样式: SCSS + 响应式设计 构建工具: Vite UI组件: 自定义组件库 部署架构 应用服务器: Spring Boot内嵌Tomcat 数据库: MySQL主从复制 前端部署: 静态资源CDN分发 API网关: 统一接口管理 🎨 设计理念 视觉设计 系统采用现代化的酒店行业设计语言，以金色为主色调，营造奢华专业的品牌形象：\n色彩方案: 金色(#D4AF37) + 深灰(#1a1a1a) + 蓝色(#2c5aa0) 设计风格: 现代简约 + 豪华质感 交互体验: 流畅动画 + 即时反馈 布局结构: 响应式网格 + 卡片式设计 用户体验 直观导航 - 清晰的信息架构和导航逻辑 快速操作 - 简化的操作流程和智能表单 个性化 - 基于用户行为的个性化推荐 多端一致 - 跨平台的统一用户体验 📱 功能模块 客户端功能 首页展示 - 酒店介绍、特色服务、推荐房型 房型浏览 - 房型列表、详情查看、实时价格 在线预订 - 日期选择、房型预订、支付处理 个人中心 - 订单管理、会员信息、积分查询 优惠活动 - 优惠券领取、特价房型、会员专享 管理后台 数据看板 - 经营数据统计、趋势分析 房间管理 - 房型配置、房间状态、价格管理 订单管理 - 预订处理、入住登记、账单管理 会员管理 - 用户信息、等级管理、积分操作 营销管理 - 优惠券配置、活动管理、数据分析 系统设置 - 权限配置、参数设置、日志管理 🚀 快速开始 环境要求 Java 8 或更高版本 MySQL 8.0+ Node.js 16+ Maven 3.6+ 后端部署 1 2 3 4 5 6 7 8 9 10 11 12 # 进入后端目录 cd RuoYi-4.8.1 # 配置数据库 # 修改 application.yml 中的数据库连接信息 # 导入数据库 mysql -u root -p \u0026lt; sql/ry_20250416.sql # 编译运行 mvn clean compile mvn spring-boot:run 前端部署 1 2 3 4 5 6 7 8 9 10 11 # 进入前端目录 cd frontend # 安装依赖 npm install # 开发模式 npm run dev # 生产构建 npm run build 📊 项目结构 1 2 3 4 5 6 7 8 9 10 11 12 13 hotel-management-system/ ├── RuoYi-4.8.1/ # 后端项目 │ ├── ruoyi-admin/ # 管理后台模块 │ ├── ruoyi-common/ # 通用工具模块 │ ├── ruoyi-framework/ # 框架核心模块 │ ├── ruoyi-hotel/ # 酒店业务模块 │ └── sql/ # 数据库脚本 ├── frontend/ # 前端项目 │ ├── src/ # 源代码 │ │ ├── pages/ # 页面组件 │ │ ├── stores/ # 状态管理 │ │ └── utils/ # 工具函数 │ └── styles/ # 样式文件 🔧 开发指南 代码规范 Java: 遵循阿里巴巴Java开发规范 JavaScript: 使用ESLint + Prettier CSS: BEM命名规范 + SCSS预处理 Git: 语义化提交信息 数据库设计 系统采用规范化的数据库设计，主要包含以下核心表：\n用户管理: sys_user, sys_role, sys_menu 酒店业务: hotel_room, hotel_booking, hotel_member 营销系统: hotel_coupon, hotel_product, hotel_order API设计 RESTful风格 - 统一的API设计规范 统一响应格式 - 标准化的数据返回格式 错误处理 - 完善的异常处理机制 接口文档 - 详细的API文档说明 🔒 安全特性 身份认证 - 基于Token的用户认证机制 权限控制 - 细粒度的角色权限管理 数据加密 - 敏感数据加密存储 SQL注入防护 - 参数化查询防止SQL注入 XSS防护 - 输入输出过滤防止跨站脚本攻击 📈 性能优化 数据库优化 - 索引优化、查询优化 缓存策略 - Redis缓存热点数据 前端优化 - 代码分割、懒加载、CDN加速 接口优化 - 分页查询、数据压缩 📞 技术支持 如需购买及定制本系统或其它微信小程序、app开发（Android/iOS），欢迎通过以下方式联系：\n微信号: xmdoor 邮箱: www@xmyy.com 🙏 致谢 感谢以下开源项目为本系统提供的技术支持：\nRuoYi - 后端管理框架 Vue.js - 前端框架 UniApp - 跨平台开发框架 Element Plus - UI组件库 💻 项目预览 前端界面 微信小程序 后端界面 管理功能 ","date":"2025-07-17T21:35:00+08:00","image":"https://xmyy.com/article/WeChat-Mini-Program-Hotel-Reservation-Management-System/_hub7d4f2c05c22b4476f007bfc898292c7_762469_51561ce91b7a7cd0726c97dbe5b5692c.jpg","permalink":"https://xmyy.com/article/WeChat-Mini-Program-Hotel-Reservation-Management-System/","title":"微信小程序：酒店预订管理系统"},{"content":"💁🏻‍♂️ sourceforge.net 2025-05-05 《SikkerBox-手机上的网络瑞士军刀》 童建平\n概述 SikkerBox 是一款免费的综合性安全和网络工具应用，旨在为用户提供一站式的安全工具和网络诊断服务。\nSikker源于挪威语，意为安全，Box代表工具箱。\nSikkerBox 具有跨平台兼容性，将两因素认证(2FA)管理与强大的网络诊断工具套件结合在一起。\nSikkerBox 采用现代、清晰的UI界面布局和指示，旨在打造成手机上的网络瑞士军刀，为您的数字生活提供一个功能强大且用户友好的安全层解决方案。\n主要功能 两因素认证(2FA) 高度安全可靠的双因素身份验证 (2FA)，支持包括github、gitlab、google、PayPal等在内的超过 1000 多种提供双因素身份登录验证的网站和在线App。\n安全账户管理：通过加密方式安全地存储和管理您的2FA账户 二维码扫描：通过扫描二维码轻松添加新账户 手动输入支持：支持手工输入账户信息 基于时间的一次性密码(TOTP)：生成安全的、符合 RFC 6238 标准的、基于时间的一次性密码（TOTP）/双因素代码 (2FA 代码)，验证码每 30 秒自动更新一次。 离线访问：设置完成后完全离线工作 视觉定制：账户显示服务网站图标，便于识别 网络诊断工具 SikkerBox包含一套全面的网络工具：\n端口检测：验证任何IP地址上特定端口是否开放或关闭，提供常用端口列表供用户快速一键选择 IP地址归属地查询：确定任何IP地址的地理位置，包含自动获取用户公网IP的功能 WiFi扫描器：分析附近的WiFi网络，包括信号强度、信道和安全信息 Ping诊断：测试到域名或IP地址的连通性 Whois查询：查询任何域名的注册信息 DNS反向查询：查找与IP地址关联的主机名 更多功能：更多功能敬请期待 用户体验 多语言支持：完整支持中英文界面切换，所有提示和错误信息均已国际化 现代Material设计：采用Material Design 3的清晰、直观的现代风格界面，注重易用性 响应式布局：针对各种屏幕尺寸进行优化 剪贴板集成：多数功能支持复制粘贴到剪贴板 深色模式支持：在低光环境下舒适查看 友好提示：多数页面提供友好的加载指示器和错误提示 技术细节 跨平台支持：适用于 Android、iOS、Windows、macOS、Linux 和 Web 安全存储：所有账户密钥均使用本地 Hive 数据库进行加密和安全存储，不向任何服务器传输数据，所有敏感数据保留在您的设备上 低资源占用：优化电池和内存消耗 隐私和安全 SikkerBox优先考虑您的隐私和安全：\n无需账户：无需创建账户即可使用所有功能 注重隐私：无分析或跟踪 不收集数据：您的2FA密钥和网络诊断结果保留在您的设备上 开放网络API：网络工具使用开放API进行诊断，不会损害隐私 使用场景 安全专业人员：验证网络配置和安全设置 IT管理员：诊断网络问题和验证服务器配置 开发人员：测试应用程序连接和网络功能 注重隐私的用户：管理2FA账户，无需依赖第三方服务 系统要求 Android 5.0 (Lollipop)或更高版本 iOS 11.0或更高版本 桌面版：Windows 10+、macOS 10.14+或带有GTK 3的Linux 使用指南 安装 目前暂时提供安卓端apk安装包，直接下载apk安装即可。\n下载地址：\nhttps://www.pgyer.com/VT9KrSgd\nhttps://play.google.com/store/apps/details?id=com.sikkerbox.eagle\nhttps://sikkerbox.sourceforge.io\nhttps://github.com/eagleos/sikkerbox\n致谢 Flutter 团队提供的优秀框架 所有使本项目成为可能的软件包维护者 Github 开启/配置/更换 two-factor authentication (2FA) 双因素认证 未开启2FA 下载并安装SikkerBox。\n登录Github后，点击页面最右上角的头像，再点击Settings进入设置页面。\n再在左侧Access菜单中点击Password and authentication，然后在【Two-factor authentication】区域点击Enable two-factor authentication（启用双重身份验证）按钮。\n打开SikkerBox，直接点击app右下角的扫描图标，对准上述Github出现的二维码。扫描成功后自动添加到主界面的账户列表中。\n在SikkerBox主界面账户列表中点击对应的Github账号，进去可查看到一次性密码，返回Github页面在二维码下面的Verify the code from the app方框中输入此一次性密码，验证通过后会自动跳转到Download your recovery codes页面，务必下载并将恢复码保存在安全的地方。\n然后，点击I have saved my recovery codes按钮，在出现的另一页面中点击Done按钮，即完成开启2FA。\n下次如果重新登录Github，或者在另外设备上登录Github要求输入2FA认证吗时，打开SikkerBox，在SikkerBox主界面账户列表中点击对应的Github账号，进去可查看到一次性密码，输入此一次性密码即可登录成功。\n更换2FA app 下载并安装SikkerBox。\n使用原有2FA app成功登录Github后，点击页面最右上角的头像，再点击Settings进入设置页面。\n再在左侧Access菜单中点击Password and authentication，然后在【Two-factor authentication】的Two-factor methods区域，点击Authenticator app(Configured)右边的Edit按钮。\n打开SikkerBox，直接点击app右下角的扫描图标，对准上述Github出现的二维码。扫描成功后自动添加到主界面的账户列表中。\n在SikkerBox主界面账户列表中点击对应的Github账号，进去可查看到一次性密码，返回Github页面在二维码下面的Verify the code from the app方框中输入此一次性密码，验证通过后点击Save保存按钮即可完成2FA app替换。\nFAQ 在SikkerBox中不小心删除账户，无法进行2FA认证登录Github，怎么办？ 答：使用Github恢复码成功登录Github，然后使用上述更换2FA app步骤重新绑定SikkerBox即可。\n2FA 在线验证码生成器 Time-based One-Time Password (TOTP) Generator https://xmyy.com/2fa/\n贡献者 欢迎参与本app测试，参与者将会在下面表格中列出以示感谢！\n手机机型 测试版本 测试结果 最新测试时间 测试者 Vivo IQOO Neo5（Android 11） 1.0.2 ✅ 2025.05.27 eagle Vivo IQOO Neo5 活力版（Android 11） 1.0.2 ✅ 2025.05.27 eagle 华为畅享9 Plus（Android 8.1） 1.0.2 ✅ 2025.05.29 eagle Schok SV55216A（Android 10） 1.0.2 ✅ 2025.06.19 closed test OnePlus 8T（Android 11） 1.0.2 ✅ 2025.06.19 closed test Huawei Y9 Prime 2019（Android 9） 1.0.2 ✅ 2025.06.19 closed test Vivo Y35（Android 13） 1.0.2 ✅ 2025.06.19 closed test Tecno SPARK 8 Pro（Android 11） 1.0.2 ✅ 2025.06.19 closed test Oppo A52（Android 10） 1.0.2 ✅ 2025.06.19 closed test Vivo V50 Lite（Android 15） 1.0.2 ✅ 2025.06.19 closed test Realme 6（Android 10） 1.0.2 ✅ 2025.06.19 closed test Vivo V2058（Android 11） 1.0.2 ✅ 2025.06.19 closed test Qsmart Smart 8（Android 12） 1.0.2 ✅ 2025.06.19 closed test Samsung\tGalaxy A15（Android 14） 1.0.2 ✅ 2025.06.19 closed test Redmi Note 12（Android 12） 1.0.2 ✅ 2025.06.19 closed test Oppo Reno11 F 5G（Android 14） 1.0.2 ✅ 2025.06.19 closed test QSmart Ultra（Android 13） 1.0.2 ✅ 2025.06.19 closed test Redmi A3x（Android 14） 1.0.2 ✅ 2025.06.19 closed test Vivo\tY28s 5G（Android 14） 1.0.2 ✅ 2025.06.19 closed test Redmi 13C（Android 13） 1.0.2 ✅ 2025.06.19 closed test Google Pixel 6（Android 12） 1.0.2 ✅ 2025.06.19 closed test Vivo 1906（Android 9） 1.0.2 ✅ 2025.06.19 closed test Realme 6i（Android 10） 1.0.2 ✅ 2025.06.19 closed test LGE G Pad 5 10.1 FHD（Android 9） 1.0.2 ✅ 2025.06.19 closed test Oppo A3s（Android 8.1） 1.0.2 ✅ 2025.06.19 closed test Redmi Note 11（Android 11） 1.0.2 ✅ 2025.06.19 closed test 软件著作权证书 我们一直在努力改进我们的应用！有任何建议或反馈，请告诉我们——我们很乐意听取您的意见！\n","date":"2025-05-15T13:06:00+08:00","image":"https://xmyy.com/article/SikkerBox-Cyber-Swiss-Army-Knife-on-your-cell-phone/SikkerBox-Cyber-Swiss-Army-Knife-on-your-cell-phone_hu5bcd832e666cfa0f766cae5380719b77_964485_120x120_fill_q75_box_smart1.jpg","permalink":"https://xmyy.com/article/SikkerBox-Cyber-Swiss-Army-Knife-on-your-cell-phone/","title":"SikkerBox-手机上的网络瑞士军刀"},{"content":"💁🏻‍♂️ sourceforge.net 2025-03-31 《Tengine-rpm 基于Tengine 3.1深度定制优化》 童建平\nTengine RPM 说明文档 Tengine是亚洲最大的电子商务网站淘宝网推出的高性能的HTTP和反向代理web服务器。它基于 Nginx HTTP 服务器，拥有许多高级功能。事实证明，Tengine 在淘宝网、天猫、优酷、阿里速卖通和阿里云等世界前100强网站上非常稳定、高效。\n简言之，Tengine是一个具有一些高级功能的 Nginx 发行版。Tengine官方没有提供RPM包，这里提供非官方的经过优化编译并集成LuaJIT、ModSecurity、geoip2等多种常用模块的Tengine RPM包，方便用户在目标服务器上快速安装配置web服务器。\n这是基于官方包https://tengine.taobao.org/download/tengine-3.1.0.tar.gz 制作的rpm包，您可免费下载并安装使用。\n目前仅先推出基于almalinux 9.5的rpm包，同样可用于Red Hat Enterprise Linux (RHEL) 及其衍生产品，如CentOS Linux、Rocky Linux。\n如何下载？ https://github.com/eagleos/tengine-rpm/releases\nhttps://tengine-rpm.sourceforge.io\n如何安装？ 手工安装 rpm -Uvh tengine-3.1.0-1.el9.x86_64.rpm\n如：\n1 2 3 4 5 6 7 8 9 10 11 12 [root@EagleOS ~]# rpm -ivh tengine-3.1.0-1.el9.x86_64.rpm 错误：依赖检测失败： geolite2-city \u0026lt; 20250331 被 tengine-3.1.0-1.el9.x86_64 取代 geolite2-country \u0026lt; 20250331 被 tengine-3.1.0-1.el9.x86_64 取代 [root@EagleOS ~]# rpm -Uvh tengine-3.1.0-1.el9.x86_64.rpm Verifying... ################################# [100%] 准备中... ################################# [100%] 正在升级/安装... 1:tengine-3.1.0-1.el9 ################################# [ 33%] 正在清理/删除... 2:geolite2-country-20191217-6.el9 ################################# [ 67%] 3:geolite2-city-20191217-6.el9 ################################# [100%] 如下图所示：\n在线安装 1 2 dnf copr enable xmdoor/tengine-rpm dnf -y install tengine 如下图所示：\n安装依赖 如果您安装时提示类似如下信息：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [root@EagleOS ~]# rpm -ivh tengine-3.1.0-1.el9.x86_64.rpm 错误：依赖检测失败： apr \u0026gt;= 1.7.0 被 tengine-3.1.0-1.el9.x86_64 需要 apr-util \u0026gt;= 1.6.1 被 tengine-3.1.0-1.el9.x86_64 需要 jemalloc \u0026gt;= 5.2.1 被 tengine-3.1.0-1.el9.x86_64 需要 jemalloc-devel \u0026gt;= 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 \u0026gt;= 1.5.2 被 tengine-3.1.0-1.el9.x86_64 需要 libmodsecurity \u0026gt;= 3.0.12 被 tengine-3.1.0-1.el9.x86_64 需要 libmodsecurity-devel \u0026gt;= 3.0.12 被 tengine-3.1.0-1.el9.x86_64 需要 libmodsecurity.so.3()(64bit) 被 tengine-3.1.0-1.el9.x86_64 需要 lmdb \u0026gt;= 0.9.29 被 tengine-3.1.0-1.el9.x86_64 需要 lmdb-devel \u0026gt;= 0.9.29 被 tengine-3.1.0-1.el9.x86_64 需要 lua-devel \u0026gt;= 5.4.4 被 tengine-3.1.0-1.el9.x86_64 需要 luajit \u0026gt;= 2.1.0 被 tengine-3.1.0-1.el9.x86_64 需要 luajit-devel \u0026gt;= 2.1.0 被 tengine-3.1.0-1.el9.x86_64 需要 geolite2-city \u0026lt; 20250331 被 tengine-3.1.0-1.el9.x86_64 取代 geolite2-country \u0026lt; 20250331 被 tengine-3.1.0-1.el9.x86_64 取代 请先下载相关依赖包：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 wget https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/apr-1.7.0-12.el9_3.x86_64.rpm wget https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/apr-util-1.6.1-23.el9.x86_64.rpm wget https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/apr-util-bdb-1.6.1-23.el9.x86_64.rpm wget https://repo.almalinux.org/almalinux/9/CRB/x86_64/os/Packages/libmaxminddb-devel-1.5.2-4.el9.x86_64.rpm wget https://repo.almalinux.org/almalinux/9/CRB/x86_64/os/Packages/lmdb-0.9.29-3.el9.x86_64.rpm wget https://repo.almalinux.org/almalinux/9/CRB/x86_64/os/Packages/lmdb-devel-0.9.29-3.el9.x86_64.rpm wget https://repo.almalinux.org/almalinux/9/CRB/x86_64/os/Packages/lua-devel-5.4.4-4.el9.x86_64.rpm wget https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/Packages/lua-rpm-macros-1-6.el9.noarch.rpm wget https://repo.almalinux.org/almalinux/9/devel/x86_64/os/Packages/lua-static-5.4.4-4.el9.x86_64.rpm wget https://repo.almalinux.org/almalinux/9/devel/x86_64/os/Packages/pcre2-static-10.40-6.el9.x86_64.rpm wget https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/l/libmodsecurity-3.0.12-1.el9.x86_64.rpm wget https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/l/libmodsecurity-devel-3.0.12-1.el9.x86_64.rpm wget https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/l/libmodsecurity-static-3.0.12-1.el9.x86_64.rpm wget https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/s/ssdeep-libs-2.14.1-11.el9.x86_64.rpm wget https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/j/jemalloc-5.2.1-2.el9.x86_64.rpm wget https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/j/jemalloc-devel-5.2.1-2.el9.x86_64.rpm wget https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/l/luajit-2.1.0-0.23beta3.el9.x86_64.rpm wget https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/Packages/l/luajit-devel-2.1.0-0.23beta3.el9.x86_64.rpm 再安装：\n1 2 3 4 5 6 7 8 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.rpm rpm -ivh libmaxminddb-devel-1.5.2-4.el9.x86_64.rpm rpm -ivh lmdb-0.9.29-3.el9.x86_64.rpm lmdb-devel-0.9.29-3.el9.x86_64.rpm rpm -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.rpm rpm -ivh pcre2-static-10.40-6.el9.x86_64.rpm rpm -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.rpm rpm -ivh jemalloc-5.2.1-2.el9.x86_64.rpm jemalloc-devel-5.2.1-2.el9.x86_64.rpm rpm -ivh luajit-2.1.0-0.23beta3.el9.x86_64.rpm luajit-devel-2.1.0-0.23beta3.el9.x86_64.rpm 支持的发行版 如下发行版测试通过：\nAlmalinux 9.5 x86_64\n兼容如下发行版，未经测试：\nRed Hat Enterprise Linux 9.x x86_64\nCentOS Linux 9.x x86_64\nRocky Linux 9.x x86_64\n配置说明 nginx配置文件位于：/app/nginx/conf 安装后会自动启动nginx服务，手工重启服务命令：systemctl restart nginx，重载配置命令：systemctl reload nginx 安装rpm包过程中，会自动检测目标服务器cpu核数，对nginx配置进行自动优化配置处理 对于目标服务器默认站点，在nginx.conf中对境外服务器默认禁止访问，以节省服务器相关访问资源。您如果需要开放此访问，可更改此文件，删除如下配置语句即可： 1 2 3 if ($ip_deny) { return 503; } 支持lua语法，相关测试语句请查看nginx.conf中配置，可修改相关配置进行测试 vhost.conf为站点配置示例，默认未加载，可仿之修改并启动 vhost.conf中默认启用了modsecurity防攻击模块，即Web应用程序防火墙 (WAF)，配置文件位于：/app/nginx/conf/modsecurity，日志位于：/app/nginx/logs/modsec_audit.log 本rpm包编译参数如下： 1 2 3 4 5 6 7 [root@EagleOS ~]# nginx -V Tengine version: Microsoft-IIS/3.1.0 nginx version: Microsoft-IIS/8.5/1.24.0 built by gcc 11.5.0 20240719 (Red Hat 11.5.0-5) (GCC) built with OpenSSL 3.2.2 4 Jun 2024 TLS SNI support enabled configure 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=\u0026#39;-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\u0026#39; --with-ld-opt=\u0026#39;-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\u0026#39; FAQ 1.为何使用rpm -Uvh而不是rpm -ivh？ 答：如果目标服务器已经安装了系统默认的geolite2-city和geolite2-country，则其中的IP数据库文件是2019年过旧的数据库，本rpm包中包含同样路径及名称的IP数据库文件（2025.03.31官方maxmind.com最新数据库），会覆盖安装，所以需要使用rpm -Uvh进行升级安装。\nRPM公钥 本RPM包制作过程中，对官方源码文件tengine-3.1.0.tar.gz进行RSA 4096 位密钥（最高强度）验证签名，确保源码完整性。本人分块的 GPG 公钥如下： https://xmyy.com/keys/eagle-public-key1.asc\nhttps://xmyy.com/keys/eagle-public-key2.asc\nhttps://xmyy.com/keys/eagle-public-key3.asc\n上述分块合并后完整的 GPG 公钥如下： https://xmyy.com/keys/eagle-master-public-key.asc\n本人公钥包含签名和加密功能，各位可以（可选）信任导入本人公钥 ","date":"2025-03-31T23:59:00+08:00","image":"https://xmyy.com/article/tengine-rpm-deeply-customized-and-optimized-based-on-Tengine/_hub6ad84b234d951f3ea5b70f97fa3d7ed_207895_e53b092a8f26162b5bd0c09650ef8a63.png","permalink":"https://xmyy.com/article/tengine-rpm-deeply-customized-and-optimized-based-on-Tengine/","title":"Tengine-rpm 基于Tengine 3.1深度定制优化"},{"content":"💁🏻‍♂️ sourceforge.net 2025-03-11 《EagleOS 9.5-基于AlmaLinux 9.5深度定制优化》 童建平\nEagleOS 9.5 说明文档\n一、系统简介 EagleOS 9.5基于AlmaLinux 9.5进行深度定制优化。\nEagleOS 9.5根据AlmaLinux 9.5官方AlmaLinux-9.5-x86_64-dvd.iso进行精简，全程完全自动化无人值守安装，支持大于2TB磁盘自动分区，集成安装1151个软件包，包含了常用的工具及依赖库等，iso文件大小由官方的10.6G至不到2.6G，使装机效率更高效。\nEagleOS 9.5安装过程中自动进行了如下几项系统优化：\n（1）禁用selinux\n（2）禁用NetworkManager，改用传统network\n（3）一些服务的禁用、内核参数等优化\n（4）集成epel、elrepo源，并更改使用国内源\n（5）集成安装unrar、p7zip等常用软件包\n安装完成后，ssh端口：49156，默认ip：192.168.0.205，系统超级用户名：root，密码：www.ip40.com\n二、系统安装说明 EagleOS系统iso文件下载 请到天翼云盘高速下载eagleos9.5.iso：\nhttps://cloud.189.cn/t/JjiqyeqQ7Fri\n（访问码：2zkf）\nhttps://eagleos.sourceforge.io\nEagleOS系统安装方式 光盘安装 请将eagleos9.5.iso刻录成光盘，目标服务器设置从光驱启动进行安装。\nU盘安装 支持2种方式安装：\n（1）以cdrom方式量产烧录到U盘，目标服务器设置从U盘启动进行安装。\n（2）使用Ventoy等工具制作U盘启动引导，拷贝eagleos9.5.iso到U盘，目标服务器设置从U盘启动进行安装，直接选择eagleos9.5.iso进行引导安装。\nPXE网络安装（Linux） 在Linux上安装syslinux，拷贝/usr/share/syslinux/pxelinux.0到tftp根目录下，其余略。\nPXE网络安装（Windows） （1）将本光盘目录/images/pxeboot拷贝到windows系统任意目录下，直接双击本目录下的tftpd64.exe，即自动启动pxe服务器（含dhcp,tftp等服务），可修改相关配置，直接生效。\n（2）在windows系统下使用nginx、apache httpd或安装windows系统自带iis中的web角色创建web服务，下面以iis为例详述相关配置：\n（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。\n（4）将如下代码存为web.config，保存于web根目录如D:\\web\\pxe下，以确保安装过程中能正常下载安装文件。\n（5）目标服务器设置从网络启动进行安装，即可开始从PXE安装EagleOS 9.5，当然目标服务器与您的web服务器必须网络是相通的。\n\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;Start of web.config\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026ndash;\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 \u0026lt;?xml version=\u0026#34;1.0\u0026#34; encoding=\u0026#34;UTF-8\u0026#34;?\u0026gt; \u0026lt;configuration\u0026gt; \u0026lt;system.webServer\u0026gt; \u0026lt;directoryBrowse enabled=\u0026#34;true\u0026#34; \u0026gt;\u0026lt;/directoryBrowse\u0026gt; \u0026lt;staticContent\u0026gt; \u0026lt;mimeMap fileExtension=\u0026#34;.cfg\u0026#34; mimeType=\u0026#34;application/octet-stream\u0026#34; \u0026gt;\u0026lt;/mimeMap\u0026gt; \u0026lt;mimeMap fileExtension=\u0026#34;.img\u0026#34; mimeType=\u0026#34;application/octet-stream\u0026#34; \u0026gt;\u0026lt;/mimeMap\u0026gt; \u0026lt;mimeMap fileExtension=\u0026#34;.bz2\u0026#34; mimeType=\u0026#34;application/octet-stream\u0026#34; \u0026gt;\u0026lt;/mimeMap\u0026gt; \u0026lt;/staticContent\u0026gt; \u0026lt;security\u0026gt; \u0026lt;requestFiltering allowDoubleEscaping=\u0026#34;true\u0026#34;\u0026gt;\u0026lt;/requestFiltering\u0026gt; \u0026lt;/security\u0026gt; \u0026lt;/system.webServer\u0026gt; \u0026lt;/configuration\u0026gt; \u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;End of web.config\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;-\nEagleOS系统安装步骤 （1）请先确定目标服务器已经配置好raid等磁盘配置，后续安装过程将清空硬盘数据并进行自动化分区，请确定目标服务器目标磁盘上如有重要数据已经备份到其他服务器!!!\n（2）安装过程将自动配置有连接网络（只要物理联通即可）的网卡，所以建议将网线接到第一网卡进行操作，特别是在PXE安装情况下，否则安装后您得手工编辑配置网络。\n（3）成功从光盘或pxe网络引导启动目标服务器后，您将看到如下的系统安装界面 (进入此界面时，请快速随意按下键盘方向键上下键，避免安装界面短暂的6秒延时超过而自动开始系统安装) :\n光盘安装方式的引导界面：\nPXE网络安装方式的引导界面：\n安装启动界面安装选项说明：\n①第一项是“Automatically install EagleOS”，安装过程中只需要您手工进行硬盘分区，格式化完成后的界面中指定好引导启动的硬盘，之后都是自动化无人值守安装操作。\n②第二项是“Automatically partition and install EagleOS on nvme”，在/dev/nvme0n1上进行自动化分区及系统安装。\n（4）安装界面默认停留在上面第一项。可根据需要选择相应安装选项按回车后开始安装。视硬件配置不同，安装过程15-30分钟左右。\n（5）安装完成后自动进入系统（PXE方式视硬件不同可能需要修改cmos引导）。在登录界面中，输入用户名:root，密码: www.ip40.com ，即可通过控制台登录系统。\n（6）通常情况下，您的网络段配置与eagleos9.5.iso默认配置的IP段不同，因此安装后需要在控制台修改网络IP等信息：\n通过vim命令修改网卡配置文件/etc/sysconfig/network-scripts/ifcfg-ens160，修改其中相关信息后保存退出，然后执行命令: systemctl restart network，重启网络服务即可。\n您就可以在本机电脑上通过SecureCRT等远程登录软件进行远程登录此台服务器了!\n感谢您的使用！\n有何建议和意见欢迎反馈给雄鹰：www@xmyy.com\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@+===========-=@@@@@@@@@@@@@@@@@@@@@@@@@@@@%=:. =@@@@@@@@@@@@@@@@@@@%+==++=--=*%@@@@@@@%+-=++===#@@ @@@%. ######* #@@@@@@@@@@@@@@@@@@@@@@@@@@@@%: =@@@@@@@@@@@@@@@@@+. =#@@@@%*: :*@@@@+ +@@@%+ :@@ @@@@- .@@@@@@@%@@@@@@%##@@@@@@@@@@%##%@@@@@@@= =@@@@@@%##%@@@@@@. *@@@@@@@@@+ +@@@: .+#@@@@*@@ @@@@- *****= @@@@*: +*= :+@@@@#-.-++:.::: #@- =@@@@=:=+= .+@@@- @@@@@@@@@@@. %@@@=. .-*@@@@ @@@@- =====: @@@@==*@@* #@@% @@@% %%@@- =@@%. .%%%. =@@. %@@@@@@@@@@- %@@@@@#=: -@@ @@@@- .@@@@@@#@@@@@*==+* #@@@+: -*#= .+@@@@- =@@* *#**##*@@* =@@@@@@@@@@. +@@@*@@@@@%+ -@ @@@@: .@@@@@@@* @@ %@% *@@@*--=###@@@@@@@- =@@% -%@@%+%@@@*. -%@@@@@@%: .*@@@@..#@@@@@: +@ @#+=....-------.:@@+:.-+*=..=#@%. ::::::-+%%*:..:*@@%=: .:=+#@@@@@@#+::-+**+=-=#@@@@@@*:-=++=::=#@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*:=*+++++. :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%@@@@@@@@@@@@@@@@%%@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+ -#%@@%#--%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*===++**%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ mmmmmmmmmmmm++ .*@@@# :*@@@@*: .+@@%+... .@@@@:::::.=@: .*@@# :%@%: .-@@@#. :@@= .+@* #@@@ -: +@@# #@@* .%@@@- @@@#. :# #@@@ .@ .*@@@@=. ..*@@@@#.:*@- +@@# .=@@@@+. +@@@. .@@@@. :@@@@@#. #@@@@@@@@@@ .@@@. .@@@: .%@@. -@@@:=: +@@# +@@. %@@. @@@@. %@@@: -@@@@@@%. #@@@ .@ .+%@@@: .@@@. .@@@. +@@# :@@@###@@@%. %@@@- %@@%. :#@@@@= #@@@ .: .=@@= .@@@: .+%@@%@@+ +@@# =@@@. @@@%. .@@@: .@: .@@@% %@@% *@ .@@@: .@@@: :@@#. +@@# #@@@+. -@. +@@@- -@@+. #@= .@@@: =##############* .+%#+.-##=. .#@@@@@@@@@@::######. .+#%#=. .-+#%@%#+-. :==*#%@%*:. .*@: .#@@ +@@@. :@@. ..@#####@. ","date":"2025-03-11T15:46:06+08:00","image":"https://xmyy.com/article/EagleOS-deeply-customized-and-optimized-based-on-AlmaLinux/_hu22610833e332bcee47fc25cd9fe58b20_144072_b5aeb461e9b1a362c7ad112c9a192665.png","permalink":"https://xmyy.com/article/EagleOS-deeply-customized-and-optimized-based-on-AlmaLinux/","title":"EagleOS 9.5-基于AlmaLinux 9.5深度定制优化"},{"content":"💁🏻‍♂️ Github 2021-05-23 《EagleOS 7.9-基于Centos 7.9深度定制优化》 童建平\nEagleOS 7.9 说明文档\n一、系统简介 EagleOS 7.9基于CentOS 7.9进行深度定制优化。\nEagleOS 7.9根据CentOS 7.9的Everything版本进行精简，全程完全自动化无人值守安装，支持大于2TB磁盘自动分区，集成安装568个软件包，包含了常用的工具及依赖库等，使装机效率更高效。\nEagleOS 7.9安装后自动进行主要如下几项系统优化：\n(1)禁用selinux\n(2)禁用ipv6\n(3)一些服务的禁用、内核参数等优化\n(4)集成epel源，更改系统默认yum源为163源，epel源为aliyun源\n(5)集成安装unrar、p7zip、pip等软件包\n(6)升級系統openssl版本至1.1.1b\n安装完成后，ssh端口：49156，默认ip：192.168.0.157，系统超级用户名：root，密码：www.ip40.com\n二、系统安装说明 EagleOS系统iso文件下载 请到天翼云盘高速下载eagleos7.6.iso：\nhttps://cloud.189.cn/t/22uiyazYrQzq\n(访问码:0zra)\n本iso由于版本较旧，上述下载地址已失效。\nEagleOS系统安装方式 光盘安装:请将eagleos7.9.iso刻录成光盘，目标服务器设置从光驱启动进行安装。\nPXE网络安装（Linux）: 在Linux上安装syslinux，拷贝/usr/share/syslinux/pxelinux.0到tftp根目录下，其余略。\nPXE网络安装（Windows）:\n(1)将本光盘目录/images/pxeboot拷贝到windows系统任意目录下，直接双击本目录下的tftpd64.exe，即自动启动pxe服务器（含dhcp,tftp等服务），可修改相关配置，直接生效。\n(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。\n(3)将如下代码存为web.config，保存于web根目录如D:\\web\\pxe下，以确保安装过程中能正常下载安装文件。\n(4)目标服务器设置从网络启动进行安装，即可开始从PXE安装EagleOS 7.9，当然目标服务器与您的web服务器必须网络是相通的。\n\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;Start of web.config\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026ndash;\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 \u0026lt;?xml version=\u0026#34;1.0\u0026#34; encoding=\u0026#34;UTF-8\u0026#34;?\u0026gt; \u0026lt;configuration\u0026gt; \u0026lt;system.webServer\u0026gt; \u0026lt;directoryBrowse enabled=\u0026#34;true\u0026#34; \u0026gt;\u0026lt;/directoryBrowse\u0026gt; \u0026lt;staticContent\u0026gt; \u0026lt;mimeMap fileExtension=\u0026#34;.cfg\u0026#34; mimeType=\u0026#34;application/octet-stream\u0026#34; \u0026gt;\u0026lt;/mimeMap\u0026gt; \u0026lt;mimeMap fileExtension=\u0026#34;.img\u0026#34; mimeType=\u0026#34;application/octet-stream\u0026#34; \u0026gt;\u0026lt;/mimeMap\u0026gt; \u0026lt;mimeMap fileExtension=\u0026#34;.bz2\u0026#34; mimeType=\u0026#34;application/octet-stream\u0026#34; \u0026gt;\u0026lt;/mimeMap\u0026gt; \u0026lt;/staticContent\u0026gt; \u0026lt;security\u0026gt; \u0026lt;requestFiltering allowDoubleEscaping=\u0026#34;true\u0026#34;\u0026gt;\u0026lt;/requestFiltering\u0026gt; \u0026lt;/security\u0026gt; \u0026lt;/system.webServer\u0026gt; \u0026lt;/configuration\u0026gt; \u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;End of web.config\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;\u0026mdash;-\nEagleOS系统安装步骤 (1)\t请先确定目标服务器已经配置好raid等磁盘配置，后续安装过程将清空硬盘数据并进行自动化分区，请确定目标服务器目标磁盘上如有重要数据已经备份到其他服务器!!!\n(2)\t安装过程将自动配置有连接网络(只要物理联通即可)的网卡，所以建议将网线接到第一网卡进行操作，特别是在PXE安装情况下，否则安装后您得手工编辑配置网络。\n(3)\t成功从光盘或pxe网络引导启动目标服务器后，您将看到如下的系统安装界面 (进入此界面时，请快速随意按下键盘方向键上下键，避免安装界面短暂的6秒延时超过而自动开始系统安装) :\n安装启动界面安装选项说明：\n①第一项是“Auto Install EagleOS System By www.xmyy.com”，安装过程中只需要您手工进行硬盘分区，格式化完成后的界面中指定好引导启动的硬盘，之后都是自动化无人值守安装操作。\n②第二项是“Auto Install EagleOS and !Auto Partition! on sda”，在/dev/sda上进行系统安装。\n③第三项是“Auto Install EagleOS and !Auto Partition! on sdb”，在/dev/sdb上进行系统安装。\n④第四项是“Auto Install EagleOS and !Auto Partition! on vda”，在/dev/vda上进行系统安装。\n⑤第五项是“Auto Install EagleOS and !Auto Partition! on vdb”，在/dev/vdb上进行系统安装。\n⑥第六项是“Auto Install EagleOS with nginx By xmyy.com”，安装过程中只需要您手工进行硬盘分区，格式化完成后的界面中指定好引导启动的硬盘，之后都是自动化无人值守安装操作，安装完成后自动启动nginx服务。\n⑦第七项是“Auto Install EagleOS,nginx and !Auto Partition! on sda”，在/dev/sda上进行系统安装，安装完成后自动启动nginx服务。\n⑧第八项是“Auto Install EagleOS,nginx and !Auto Partition! on sdb”，在/dev/sdb上进行系统安装，安装完成后自动启动nginx服务。\n⑨第九项是“Auto Install EagleOS,nginx and !Auto Partition! on vda”，在/dev/vda上进行系统安装，安装完成后自动启动nginx服务。\n⑩第十项是“Auto Install EagleOS,nginx and !Auto Partition! on vdb”，在/dev/vdb上进行系统安装，安装完成后自动启动nginx服务。\n备注:第(6)-(10)项，自动安装nginx，相关软件包是经手工编译优化安装的，对应软件包及版本为:openssl 1.1.1b、jemalloc 5.2.0、pcre 8.43、tengine 2.3.2。\n(4)\t安装界面默认停留在上面第一项。可根据需要选择相应安装选项按回车后开始安装。视硬件配置不同，安装过程15-30分钟左右。\n(5)\t自动化安装过程中将会出现这种界面:\n直到最后出现黑色的登录界面，此时系统即成功安装完毕!\n(6)\t在登录界面中，输入用户名:root，密码: www.ip40.com，即可登录系统，然后修改网卡配置，假设您的内网IP是:192.168.29.100,网关是:192.168.29.254, 则可执行如下命令(注意您的服务器网卡名称如果不一样，需要修改如下红色网卡名称em1为您的服务器网卡名称)修改:\nvi /etc/sysconfig/network-scripts/ifcfg-em1\n1 2 3 4 5 6 7 8 9 10 11 # Generated by parse-kickstart UUID=\u0026#34;dfd48d4c-06d9-412a-9f1b-a67f2fa1f964\u0026#34; DNS2=\u0026#34;218.85.157.99\u0026#34; DNS1=\u0026#34;119.29.29.29\u0026#34; IPADDR=\u0026#34;192.168.29.100\u0026#34; GATEWAY=\u0026#34;192.168.29.254\u0026#34; NETMASK=\u0026#34;255.255.255.0\u0026#34; BOOTPROTO=\u0026#34;static\u0026#34; DEVICE=\u0026#34;em1\u0026#34; ONBOOT=\u0026#34;yes\u0026#34; IPV6INIT=\u0026#34;no\u0026#34; 需要修改的即为如上红色字样内容(UUID一行不同服务器是不同的值，此行保留不变或删除即可)，然后按键盘ESC键退出编辑状态，再输入:wq保存即可退出，然后执行命令: systemctl restart network重启网络服务即可。您就可以在本机电脑上通过SecureCRT或Xshell等远程登录软件进行远程登录此台服务器了!\n感谢您的使用!\nBy the way，EagleOS 7.6基于Centos 7.6深度定制优化，发布于两年前的：2019.05.29\nBy Eagle\n技术支持：www.xmyy.com\n2021.05.23\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@+===========-=@@@@@@@@@@@@@@@@@@@@@@@@@@@@%=:. =@@@@@@@@@@@@@@@@@@@%+==++=--=*%@@@@@@@%+-=++===#@@ @@@%. ######* #@@@@@@@@@@@@@@@@@@@@@@@@@@@@%: =@@@@@@@@@@@@@@@@@+. =#@@@@%*: :*@@@@+ +@@@%+ :@@ @@@@- .@@@@@@@%@@@@@@%##@@@@@@@@@@%##%@@@@@@@= =@@@@@@%##%@@@@@@. *@@@@@@@@@+ +@@@: .+#@@@@*@@ @@@@- *****= @@@@*: +*= :+@@@@#-.-++:.::: #@- =@@@@=:=+= .+@@@- @@@@@@@@@@@. %@@@=. .-*@@@@ @@@@- =====: @@@@==*@@* #@@% @@@% %%@@- =@@%. .%%%. =@@. %@@@@@@@@@@- %@@@@@#=: -@@ @@@@- .@@@@@@#@@@@@*==+* #@@@+: -*#= .+@@@@- =@@* *#**##*@@* =@@@@@@@@@@. +@@@*@@@@@%+ -@ @@@@: .@@@@@@@* @@ %@% *@@@*--=###@@@@@@@- =@@% -%@@%+%@@@*. -%@@@@@@%: .*@@@@..#@@@@@: +@ @#+=....-------.:@@+:.-+*=..=#@%. ::::::-+%%*:..:*@@%=: .:=+#@@@@@@#+::-+**+=-=#@@@@@@*:-=++=::=#@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*:=*+++++. :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%@@@@@@@@@@@@@@@@%%@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+ -#%@@%#--%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*===++**%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ mmmmmmmmmmmm++ .*@@@# :*@@@@*: .+@@%+... .@@@@:::::.=@: .*@@# :%@%: .-@@@#. :@@= .+@* #@@@ -: +@@# #@@* .%@@@- @@@#. :# #@@@ .@ .*@@@@=. ..*@@@@#.:*@- +@@# .=@@@@+. +@@@. .@@@@. :@@@@@#. #@@@@@@@@@@ .@@@. .@@@: .%@@. -@@@:=: +@@# +@@. %@@. @@@@. %@@@: -@@@@@@%. #@@@ .@ .+%@@@: .@@@. .@@@. +@@# :@@@###@@@%. %@@@- %@@%. :#@@@@= #@@@ .: .=@@= .@@@: .+%@@%@@+ +@@# =@@@. @@@%. .@@@: .@: .@@@% %@@% *@ .@@@: .@@@: :@@#. +@@# #@@@+. -@. +@@@- -@@+. #@= .@@@: =##############* .+%#+.-##=. .#@@@@@@@@@@::######. .+#%#=. .-+#%@%#+-. :==*#%@%*:. .*@: .#@@ +@@@. :@@. ..@#####@. ","date":"2021-05-23T16:05:30+08:00","image":"https://xmyy.com/article/EagleOS7-deeply-customized-and-optimized-based-on-Centos/_hu61c4a54282b6a8633461609b806dcc04_47385_e3163cb2b72f9ee6821f106e73e8af02.png","permalink":"https://xmyy.com/article/EagleOS7-deeply-customized-and-optimized-based-on-Centos/","title":"EagleOS 7.9-基于Centos 7.9深度定制优化"},{"content":"💁🏻‍♂️《今日头条》 2021-03-27 《Win10忘记密码怎么办？3步教您重置Windows10密码》 童建平\n今天有同事反馈忘记其笔记本电脑Windows 10系统登录密码，向我求助。我微信语音聊天稍微指导下其SaverWin的安装操作，小白也能轻松搞定，成功破解重置Windows 10系统登录密码，进入系统了。\n操作步骤其实很简单，如下：\n第1步 下载及安装 到官网 https://www.passfolk.com/windows-password-recovery.html 下载安装包，如下：\n点击图中的“Download Now”，下载安装包进行安装，都是点下一步进行安装，这里就不赘述了。\n第2步 烧录U盘 安装完成后，插入U盘，双击打开SaverWin主程序，如下图：\n如上图所示操作，选择U盘所在盘符，然后点击“Burn USB”烧录U盘按钮，会自动将SaverWin写入U盘。\n第3步 引导系统从U盘启动进行破解重置密码 然后重启电脑，按F8（视机型不同，按键可能不同，请自行解决）进入开机引导选择，如下图：\n选择倒数第2项U盘，进入SaverWin主界面，如下图：\n如图所示，在Step 1选择操作系统所在C盘，再在Step 2中选择下面对应的用户名如Administrator，再点击Step 3的Reset Password重置密码按钮，再点击Step 4重启电脑即可。\n拔掉U盘，重启电脑后，就直接进入系统桌面了。\n就这么简单！\n","date":"2021-03-27T19:56:00+08:00","image":"https://xmyy.com/article/3-Steps-to-Reset-Windows-10-Password/3-Steps-to-Reset-Windows-10-Password_hub078c052602c7a69a5f8dc45425068e8_23093_120x120_fill_q75_box_smart1.jpg","permalink":"https://xmyy.com/article/3-Steps-to-Reset-Windows-10-Password/","title":"Win10忘记密码怎么办？3步教您重置Windows10密码"},{"content":"💁🏻‍♂️《今日头条》 2021-02-11 《新开源工具IPCDump：用于在Linux上跟踪进程间通信》 童建平\n以色列一家进入传统防火墙细分领域市场的公司Guardicore近期宣布推出IPCDump，这是一种用于跟踪Linux上进程间通信的新开源工具。该工具涵盖了大多数Linux进程间通信（IPC）机制，包括管道、fifos、信号、Unix套接字、基于环回的网络和伪终端，这对于调试多进程应用程序以及提高它们在彼此之间如何通信的透明度非常有用。\nGuardicore公司使用纯软件方法与物理网络脱钩，为防火墙提供了更快的替代方案。Guardicore是为敏捷企业而打造的，可在云、数据中心和端点中提供更高的安全性和可见性。\n现代应用程序具有截然不同的流程，这些流程在黑盒子中相互插入，从而在发生问题时给开发人员带来了巨大挑战。对于调试复杂的多进程应用程序，此问题尤其重要。IPCDump通过跟踪应用程序通信的元数据和内容并在短暂进程之间跟踪IPC来解决此问题。\n安全从业人员还可以使用此开源工具来探索业务应用程序如何与内部和外部系统进行通信。IPCDump还可以轻松跟踪短期进程的创建和破坏，这是一项繁琐的任务，通常需要安全和IT团队手动根据netstat检查端口号。\n其他功能包括：\n支持管道和FIFO 回送IPC 信号（常规和实时） Unix流和数据报 基于伪终端的IPC 基于进程PID或名称的事件过滤 人性化或JSON格式的输出 Guardicore Research Ofri Ziv副总裁说：“ IPCDump是我们才华横溢的研发团队努力扩大细分平台技术界限的自然副产品，旨在使Guardicore的技术变得越来越强大。为此，我们需要能够更深入地研究Linux OS的内部机制，并因此开发了IPCDump。我们的目标是增加更多功能，使我们能够研究该工具尚未涵盖的其他机制，以进一步加深对内部Linux格局的了解。我们的团队还希望通过共享有用的开源调试工具来表达我们对开发和安全社区的承诺。”\n要下载IPCDump调试工具，请访问 https://github.com/guardicore/ipcdump\n","date":"2021-02-11T13:27:00+08:00","image":"https://xmyy.com/article/IPCDump-For-tracking-inter-process-communication-on-Linux/_huc2ca345ead1bb033a38c44f0c9746f5c_15326_9409fef05101cda295978e1aa928b775.jpg","permalink":"https://xmyy.com/article/IPCDump-For-tracking-inter-process-communication-on-Linux/","title":"新开源工具IPCDump：用于在Linux上跟踪进程间通信"},{"content":"💁🏻‍♂️《今日头条》 2021-01-10 《如何在MacOS下更改复制、粘贴等快捷键 以适应Windows下使用习惯》 童建平\n众所周知，MacOS下默认情况下使用Command+C快捷键来进行复制，而我们在Windows下习惯使用Control+C进行类似操作。 本视频将教您如何在MacOS下更改复制、粘贴等快捷键，以适应以前Windows下的使用习惯。 首先，打开“系统偏好设置”，然后点击键盘-\u0026gt;快捷键-\u0026gt;应用快捷键，添加复制快捷键，菜单标题分别为Copy、复制、拷贝，键盘快捷盘处则按键盘上的control+C，其它依此类推即可。\n操作步骤其实很简单，请详见如下视频：\nYour browser doesn't support HTML5 video. Here is a link to the video instead. ","date":"2021-01-10T23:30:00+08:00","image":"https://xmyy.com/article/How-to-Change-Copy-Paste-and-Other-Shortcuts-in-macOS/How-to-Change-Copy-Paste-and-Other-Shortcuts-in-macOS_huc799b94b0f12bd48b3d8df6731ada197_113588_120x120_fill_q75_box_smart1.jpg","permalink":"https://xmyy.com/article/How-to-Change-Copy-Paste-and-Other-Shortcuts-in-macOS/","title":"如何在MacOS下更改复制、粘贴等快捷键 以适应Windows下使用习惯（视频）"},{"content":"💁🏻‍♂️《今日头条》 2021-01-07 《如何通过ssh远程登录给esxi主机防火墙添加允许ip列表》 童建平\n事故现场：\n通过VMware vSphere Client直接更改esxi的IP成功（1段ip改为2段ip），但忘了之前有配置了只允许192.168.1.0段的ip连接VMware vSphere Client的防火墙规则，造成现在无法通过VMware vSphere Client连接esxi主机了。\n解决办法：\n所幸原来由于某种原因有开启了ssh，并未作ip受限规则，可以通过ssh登录esxi主机，增加允许ip列表。\n查看原来配置的防火墙规则命令：\n1 esxcli network firewall ruleset allowedip list 增加允许ip列表命令：\n1 esxcli network firewall ruleset allowedip add --ip-address=192.168.2.0/24 --ruleset-id=vSphereClient 操作步骤其实很简单，请详见如下视频：\nYour browser doesn't support HTML5 video. Here is a link to the video instead. ","date":"2021-01-07T18:57:00+08:00","image":"https://xmyy.com/article/How-to-add-allow-ip-list-to-esxi-host-firewall-via-ssh-remote-login/_hu9222065cc0cbf3ee20c6c8b156c95081_108455_9811cf7f9691f47e8d55003126b8f47e.jpg","permalink":"https://xmyy.com/article/How-to-add-allow-ip-list-to-esxi-host-firewall-via-ssh-remote-login/","title":"如何通过ssh远程登录给esxi主机防火墙添加允许ip列表（视频）"},{"content":"💁🏻‍♂️《今日头条》 2020-12-11 《如何在MacOS上安装VeraCrypt以跨平台保护数据》 童建平\n不管您从事互联网行业，还是从事其它行业，是不是经常有这种工作需求：白天在公司忙乎一些活，没干完，需要拷贝文件回家继续加班处理？而要拷贝的文件可能存放于不同子目录，每次拷贝一不小心就遗漏拷贝了，甚为麻烦。有什么又快捷又安全的方式来改变这种落后的拷贝方式、高效地解决问题呢？\n亦或还有一种场景：公司为您配置的电脑安装的是Windows 10操作系统，而您家里的个人电脑如小编一样是Macbook Air之类的苹果公司产品，使用的是不同的MacOS操作系统，我们有一些公事上或私事上的敏感数据文件，需要用某种方式进行保护且在这两种不同操作系统中互相拷贝。那如何解决这个需求呢？\nVeracrypt有什么用？ 要解决上述这些问题和需求，其实VeraCrypt将是不二选择，且听小编娓娓道来。VeraCrypt是一种免费和开放源代码的多平台加密工具，可在Windows、Linux和Mac OS上运行，可在GUI图形界面和命令行、控制台上使用。\n使用VeraCrypt，任何人都可以制作加密卷以保护数据、免遭未经授权的访问、使用、泄露、破坏和修改。您可以像在普通硬盘中一样将文件存储在VeraCrypt加密卷上。每当将数据存储在VeraCrypt卷中时，数据将在保存之前自动进行加密，并在加载后自动解密，而无需任何用户干预。正在VeraCrypt卷上写入的数据将被自动加密，从加密卷中复制或读取的数据将被自动解密。卸载VeraCrypt加密卷后，将无法访问和加密数据。要访问数据，您应该使用正确的密码或密钥文件加载VeraCrypt卷。没有使用正确的密码、密钥文件，任何人都无法窃取、读取、编辑加密卷上的数据。整个文件系统将被加密，包括文件名、文件夹名、每个文件的内容、可用空间、元数据等。\nVeraCrypt提供多种加密算法，包括AES、Camellia、Kuznyechik、Serpent和 Twofish等，如下列表：\n其他特性还有支持FAT32和NTFS分区、隐藏卷标、热键启动等。\n这是VeraCrypt的功能和亮点：\n以文件方式创建虚拟加密磁盘，并将其加载为真实磁盘。\n加密整个分区或存储设备，例如USB闪存驱动器或硬盘驱动器。\n支持加密安装Windows的系统分区或磁盘（预启动身份验证）。\n加密是自动的、实时的（动态的）和透明的。\n允许并行化和流水线化读取和写入数据，就像未加密驱动器一样快。\n加密支持在现代处理器上的硬件加速。\n提供合理的可否认性，以防万一您被迫透露密码：隐藏卷（伪装）和隐藏操作系统。\n为什么选择Veracrypt？ VeraCrypt与当年号称全球最好加密软件的TrueCrypt一样，\u0026ldquo;殊途同归\u0026rdquo;（某种方面而言）用于磁盘加密，它是基于TrueCrypt的免费磁盘加密软件，是由法国安全顾问Mounir Idrassi主导并于2013年6月发布、在TrueCrypt被迫关闭后至今积极开发、持续更新的可靠的TrueCrypt 分支，青出于蓝而胜于蓝。\nVeraCrypt解决了TrueCrypt存在的许多漏洞和安全性问题，增强了用于系统和分区的加密算法的安全性，使其免受日益发展的暴力破解攻击的影响。这种增强的安全性仅在打开加密分区时增加了一些延迟，而不会影响应用程序使用阶段的性能。这是合法使用者可以接受的，但是它使攻击者更难访问加密数据。 例如，当系统分区被加密时，TrueCrypt使用PBKDF2-RIPEMD160进行1000次迭代加密处理，而VeraCrypt使用327670次迭代加密处理。\n对于标准卷和其他分区，TrueCrypt最多使用2000次迭代，而VeraCrypt则对RIPEMD160算法使用655340次迭代，对于SHA-2和Whirlpool算法，则使用500000次迭代。\nVeraCrypt是免费和开源的，比TrueCrypt更安全，适用于Windows、Linux和Mac OS多平台操作系统，适用于硬盘或USB驱动器，读写速度极快。它是TrueCrypt关闭后的最佳替代品，没有之一。\n下面，本文将指导您如何在MacOS上安装使用VeraCrypt以保护文件数据安全，仅作抛砖引玉，希望能给您带来帮助。\n如何在MacOS上安装VeraCrypt 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版本。\nVeraCrypt依赖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兼容性问题。\n下载并安装OSXFuse 首先，我们需要去先下载并安装OSXFuse（如果您的系统中还未安装该软件的话），否则在VeraCrypt安装过程中您将碰到如下错误提示：\n上面截图中的地址，在国内可能无法访问，您可以到其github官网 https://github.com/osxfuse/osxfuse/releases 上下载：\n然后双击下载到的macfuse-4.0.4.dmg文件，将打开如下图的界面：\n双击图中箭头所示的install macFUSE.pkg，将弹出如下界面：\n理所当然，点击继续，出现如下图界面：\n再次点击\u0026quot;继续\u0026quot;按钮，如下图：\n有兴趣可以阅读下这软件许可协议，当然也可以直接点击\u0026quot;继续\u0026quot;按钮，如下图：\n当然得点击同意按钮了，再出现如下图：\n现在终于要开始安装了，点击\u0026quot;安装\u0026quot;按钮，出现下图界面：\n软件您当前登录的用户密码，再点击\u0026quot;安装软件\u0026quot;按钮，将会弹出警告框：\n这是MacOS系统的安全性特征，点击\u0026quot;打开安全性偏好设置\u0026quot;按钮，跳转到系统控制面板：\n图中显示来自开发者\u0026quot;Benjamin Fleischer\u0026quot;的系统软件已被阻止载入，不用管这提示，直接点击旁边的\u0026quot;允许\u0026quot;按钮，然后就完成安装了，如下图：\n下面我们可以进行VeraCrypt的安装步骤了。\n下载并安装VeraCrypt 您可以到VeraCrypt官网 https://www.veracrypt.fr/en/Downloads.html 选择下载您需要的版本。如下图所示：\n如果下载速度不畅，也可以到其github官网 https://github.com/veracrypt/VeraCrypt 下载对应的软件包，这里就不赘述了。\n双击下载到的 VeraCrypt_1.24-Update8.dmg文件，将出现如下图界面：\n双击图中的VeraCrypt_Installer.pkg，出现下图界面：\n点击图中\u0026quot;继续\u0026quot;按钮，出现如下图界面：\n同样地，再点击\u0026quot;继续\u0026quot;按钮，出现如下图：\n安装过程都是大同小异，也点击\u0026quot;同意\u0026quot;按钮，出现如下图：\n出现类似的页面，在这里可以更改安装位置，或按默认即可，然后点击\u0026quot;安装\u0026quot;按钮开始安装，出现如下图：\n同样需要输入您当前用户密码。这也是MacOS安全机制有别于Windows的地方，由于安装软件需要输入密码确认，一定程度上可以避免像Windows上恶意软件的泛滥。跑题了，点击\u0026quot;安装软件\u0026quot;按钮继续，出现如下图：\n哦耶！安装成功了！安装过程就此结束！\nBrew方式安装VeraCrypt 除了dmg包的方式安装VeraCrypt，MacOS下也可以使用brew方式安装VeraCrypt。\n如果您的系统上还没安装brew，仅需要下面一条命令进行安装：\n1 ruby -e \u0026#34;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)\u0026#34; \u0026lt; /dev/null 2\u0026gt; /dev/null ; brew install caskroom/cask/brew-cask 2\u0026gt; /dev/null 然后使用下面命令即可完成安装VeraCrypt：\n1 brew cask install veracrypt 当然这种方式要求比较熟练的相关技能，推荐使用前面的dmg包方式进行安装。\n如何在MacOS上使用VeraCrypt 在MacOS的启动台找到VeraCrypt的图标，点击打开，将看到VeraCrypt的主界面如下图：\n安装后，软件界面是英文的，官方没有提供中文语言包，但官方在 https://www.veracrypt.fr/code/VeraCrypt/ 提供了源码包，您有兴趣的话，可以自行去下载并进行汉化处理，重新生成安装包。\n界面虽然是英文的，但与Windows版本差别不大，且相关配置过程中一般按默认配置一直点\u0026quot;下一步\u0026quot;之类按钮即可，丝毫不影响我们使用。下面介绍下如何在MacOS下创建和加载加密卷。\n创建加密卷 在MacOS下创建加密卷，与在Windows下不尽相同，操作相对简单，这里不打算占用篇幅进行描述，有兴趣的朋友，可以点击下面链接去看我之前发表的文章：\n如何使用VeraCrypt保护PC上的敏感文件\n加载加密卷 这里回到文首提到的问题和需求，VeraCrypt是可以跨平台使用的，所以，比如您在Windows下按照上面所述我的文章《如何使用VeraCrypt保护PC上的敏感文件》中的方法创建了加密卷，您完全可以在卸载加密卷后，将加密卷文件拷贝到MacOS下来加载使用。下面将为您展示此操作：\n我将Windows下创建的加密卷文件拷贝到我的Mac电脑中，在VeraCrypt主界面中点击\u0026quot;Select File（选择打开文件）\u0026ldquo;按钮，选择我的加密卷存放路径，点击一个未使用的Slot卷标，如下图：\n其它配置如\u0026quot;Nerver save history(不保存历史纪录)\u0026ldquo;按默认不变，然后点击\u0026quot;Mount（加载）\u0026ldquo;按钮，出现如下图界面：\n同样输入您的加密卷密码，然后点\u0026quot;OK（确定）\u0026ldquo;按钮，将弹出如下图，提示您稍等片刻且软件可能暂时无法响应：\n从这里可以看出，VeraCrypt确实比TrueCrypt在加载时慢一点，因为它需要进行更强的加密运算，也才多费几秒，这是可以接受的。然后就出现如下图加载成功的界面了：\n然后返回MacOS的 \u0026ldquo;访达\u0026quot;窗口，可以看到我们在Windows下创建的加密卷文件中的目录和文件都存在：\n这就是VeraCrypt给我们带来的好处，非常适合需要跨平台进行数据传输文件的我们。一方面保障了我们的数据安全性要求，一方面提高了效率。每次我们需要跨平台操作时，仅需要拷贝这个加密卷文件即可，就不用理会里面那么多子目录和文件了，也就不用担心会遗漏一些文件拷贝，也就不再需要下班回家后还要打电话叫尚在公司的同事帮你打开公司电脑，还得告诉同事你的电脑密码叫他（她）帮您传输遗漏的文件给您了。\n重命名加密卷 加密完加密卷后，如上图所示，卷标默认名称\u0026quot;NO NAME\u0026rdquo;，中文意思是\u0026quot;没有名字\u0026rdquo;，也许有强迫症的您是不是感觉不爽？那么如何改名呢？\n比如，您想将名字改为\u0026quot;eagle\u0026quot;的话，仅需要在终端下输入下面命令：\n1 /usr/sbin/diskutil rename \u0026#34;NO NAME\u0026#34; \u0026#34;eagle\u0026#34; 如何保护VeraCrypt加密卷文件 我们建议，应将加密卷文件存放于电脑不易被找到的位置，以加强隐私安全保护。熟悉iso9001认证等安全认证的朋友应该知道，安全性要求我们需要给电脑设定屏保密码之类的，以避免我们离开电脑时造成信息泄露。我们确实应该做好这方面的安全配置。\n如果您没有配置这些，万一哪天有恶意者进入您的电脑，或者您不小心自己误删了加密卷文件，那可得了？数据就丢失了！怎么在MacOS下避免这种情况呢？\n您可以对加密码卷所在的目录及其本身增加密码认证处理，即进入加密卷目录时，需要输入密码才能访问，可以一定程度上避免这种被删除或误删除的情况。\n具体操作方法为：\n在\u0026quot;访达\u0026quot;窗口中，定位到您的加密卷所在的目录，右键点击\u0026quot;显示简介\u0026rdquo;，设置文件夹操作脚本，修改open操作，复制下面代码替换原来的提示注释即可：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 on opening folder this_folder tell application \u0026#34;Finder\u0026#34; set dialogresult to display dialog \u0026#34;请输入密码:\u0026#34; buttons {\u0026#34;确认\u0026#34;} default button 1 default answer \u0026#34; \u0026#34; set PWText to the text returned of dialogresult if not PWText = \u0026#34;这里请替换成您要设置的密码\u0026#34; then close folder this_folder beep 3 display dialog \u0026#34;密码错误！\u0026#34; buttons {\u0026#34;关闭!\u0026#34;} end if end tell end opening folder ","date":"2020-12-11T18:50:00+08:00","image":"https://xmyy.com/article/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms/_hu6e3c2a7f01311a5526d5e0e90eb12121_791206_6e14d9ac5e52165737959a11c59b7c0c.jpg","permalink":"https://xmyy.com/article/How-to-Install-VeraCrypt-on-MacOS-to-Protect-Data-Across-Platforms/","title":"如何在MacOS上安装VeraCrypt以跨平台保护数据"},{"content":"💁🏻‍♂️《今日头条》 2020-12-06 《如何使用VeraCrypt保护PC上的敏感文件》 童建平\n如果您正在寻找一种简单而强大的方法来加密从系统驱动器到备份介质的任何文件，并将其存储于这两者之中的任何地方，那么VeraCrypt是一款可帮助您锁定保护文件的开源软件。请继续阅读，我们将会向您展示如何使用它。\n什么是TrueCrypt / VeraCrypt，为什么要使用它？ 保护您不希望其他人看到的文件的最佳方法是加密。加密本质上是使用密钥将文件转换为不可读的乱码，除非您使用该密钥将其解锁。\nTrueCrypt曾是一种流行的影响力最大的（没有之一）的磁盘加密工具，一个开源的动态加密应用程序，当年揭发了NSA棱镜门丑闻的斯诺登也青睐使用这款加密软件。TrueCrypt使您可以像处理常规驱动器上的文件一样使用加密文件。如果没有即时加密，那么积极地使用加密文件将是一个巨大的痛苦，其结果通常是人们只是不对自己的文件进行加密，或者因嫌解密和加密的麻烦而使用不安全的方法加密文件。\n几年前，经常会有这种段子：某天突发奇想要在一台新电脑上安装TrueCrypt，去官网下载时才发现早已物是人非，TrueCrypt官网宣布于2014年5月因为安全问题停止开发。事实上当时TrueCrypt因为美国政府安全审计问题压力，拱手认输而关闭。VeraCrypt是TrueCrypt 的分支，于2013年6月发布，法国安全顾问Mounir Idrassi是项目的主要开发者。VeraCrypt是比TrueCrypt更出色的替代加密软件，在TrueCrypt停止开发之后，要寻找TrueCrypt的替代，可能没有比VeraCrypt更好的了。\n使用VeraCrypt的即时加密系统，您可以创建一个加密卷（甚至是一个完全加密的系统驱动器）。加密卷中的所有文件均已加密，您可以使用VeraCrypt将其安装为普通驱动器以查看和编辑文件。当您在上面完成工作后，您可以卸下该卷。VeraCrypt会处理所有事务，将文件临时保存在内存RAM中，然后自动进行清理，并确保文件无损。\nVeraCrypt也可以加密您的整个驱动器，至少在某些PC上是可行的，但是我们通常建议使用Windows的内置Bitlocker功能来加密整个磁盘。VeraCrypt是为文件组创建加密卷的理想选择，而不是对整个启动驱动器进行加密，在这方面Bitlocker是一个更好的选择。\n为什么使用VeraCrypt代替TrueCrypt？ 从技术上讲，您仍然可以根据需要使用旧版本的TrueCrypt，甚至可以按照本指南进行操作，因为TrueCrypt和VeraCrypt的界面几乎完全相同。VeraCrypt解决了TrueCrypt的代码审核带来的一些小问题，更不用说对自己代码的审核了。它对TrueCrypt基础的改进为它成为真正的继任者奠定了基础，尽管它运行比TrueCrypt慢一些，但正如知名安全专家史蒂夫·吉布森（Steve Gibson）所说的，现在是转而使用VeraCrypt的好时机。\n如果您使用的是旧版本的TrueCrypt，则并不是很紧迫要更换到VeraCrypt，它仍然非常可靠。但是VeraCrypt是未来趋势，比如您要设置新的加密卷，则应该更换使用VeraCrypt，毕竟TrueCrypt官网最后发布提供的最新7.2版本不支持创建新的加密卷。\n如何安装VeraCrypt 对于本教程，您只需要做一些简单的操作：\n获取下载VeraCrypt的免费副本。\n以计算机的管理员身份运行安装。\n仅此而已！您可以获取Windows、Linux或Mac OS X的VeraCrypt版本，然后以管理员权限安装（不能以受限/guest帐户权限运行VeraCrypt）。在本教程中，我们将使用Windows版本的VeraCrypt并将其安装在Windows 10电脑上。\nVeraCrypt官网下载地址为： https://www.veracrypt.fr/en/Downloads.html\n在国内，此官网下载地址可能很慢，可能会遇到多次重试下载失败，则可以到国外知名开源软件网站sourceforge.net下载，地址为： https://sourceforge.net/projects/veracrypt/\n目前windows最新版本是官方今年8月7日发布的1.24-Update7，macos最新版本则是官方一周前的11月28日发布的1.24-Update8。与其它任何应用程序一样，下载并安装VeraCrypt。只需双击下载后的exe文件VeraCrypt Setup 1.24-Update7.exe，建议右键点击该文件，选择以管理员身份运行，按照向导中的说明进行操作即可。\n在安装过程中，可以选择\u0026quot;安装\u0026quot;选项，例如\u0026quot;为所有用户安装\u0026quot;和\u0026quot;将.hc文件扩展名与VeraCrypt相关联\u0026quot;。可以按默认选择即可。安装到最后，会提示是否禁用Windows快速启动，因为在开启Windows快速启动的情况下，VeraCrypt存在个别未知问题，建议选择禁用之，然后按提示重启电脑生效。\n如何创建加密卷 应用程序完成安装并重启电脑后，导航至\u0026quot;开始\u0026quot;菜单并启动VeraCrypt。您将看到下面的屏幕：\n您需要做的第一件事就是创建一个加密卷，因此单击\u0026quot;创建加密卷\u0026quot;按钮。这将启动\u0026quot;加密卷创建向导\u0026quot;，并提示您选择以下卷类型之一：\n卷可以像放在驱动器或磁盘上的文件卷一样简单，也可以像对操作系统的全盘加密一样复杂。对于本指南，我们力求把事情变得简单，并着重于介绍如何设置易于使用的本地容器。默认选择\u0026quot;创建文件型加密卷\u0026quot;，我们只需要点击下一步。\n接下来，向导将询问您是否要创建标准卷或隐藏卷。再次，为了简单起见，在这一点上，我们将跳过\u0026quot;隐藏卷\u0026quot;的讨论。这绝不会降低我们正在创建的卷的加密级别或安全性，因为\u0026quot;隐藏卷\u0026quot;只是一种混淆加密卷位置的方法。\n直接点击下一步，接下来，您需要为卷选择一个做任意的名称和任意位置。这里唯一重要的参数是主机驱动器有足够的空间来创建要使用的卷（即，如果要使用100GB的加密卷，则需要选择具有100GB以上可用空间的驱动器）。建议驱动器选择除C盘外的非系统盘存放，以免重装系统时造成数据丢失，下图，我们将把加密的卷放在数据盘驱动器D盘不易被误删除的目录中，并取名为do-not-del ，文件名称任意，不需要有扩展名，即D:\\backup\\do-not-del。\n现在是时候选择您的加密方案了。您在这里真的不会出错。是的，有很多选择，但是所有选择都是非常可靠的加密方案，并且出于实用目的是可以互换的。例如，在2008年，FBI花费了一年多的时间试图解密涉及金融诈骗的巴西银行家的AES加密硬盘。如果您是数据保护偏执狂，有条件寻求数据取证专家的意见，您可以通过下拉菜单按缩写字母名称选择不同加密算法和哈希算法，以提升加密级别，您会放心地知道自己的数据是安全的。通常情况下，我们按默认选择点击下一步即可。\n在下一步中，您将选择卷大小。您可以以KB、MB或GB为单位进行设置。我们为该示例创建了5GB的测试卷。\n点击下一步，出现如下图的设置密码框。这里要记住一件事：短密码是个坏主意。您应该创建至少20个字符长的密码。我们建议您创建一个强大而不易忘记的密码。一项很棒的技巧是使用密码短语而不是简单的密码。这是一个示例：In2NDGradeMrsAmerman $ aidIWasAGypsy。这样的密码比你使用诸如password123、day这样的脆弱密码好。\n如果您使用了弱密码，比如密码字符长度太少，向导会给出警告窗口：\n在设置好安全强度的密码后，点击下一步，在创建实际卷之前，创建向导将询问您是否打算存储大文件。如果您打算在卷中存储大于4GB的文件，请点击选择\u0026quot;是\u0026quot;，它会调整文件系统以更好地满足您的需求。\n在\u0026quot;加密卷格式化\u0026quot;屏幕上，您需要四处移动鼠标以生成一些随机数据。\n产生足够的随机性后，点击\u0026quot;格式化\u0026quot;按钮。\n您也可以在格式化前选择要格式化的文件系统格式，比如NTFS之类的，但为了兼容性，建议不用选择，就按默认的exFAT进行格式化。\n格式化过程完成后，向导会弹窗提示已经完成加密卷的创建：\n点击确定后返回向导页面：\n此时，您如果需要再创建一个新的加密卷，则点击下一步，重复上面的流程，如果不需要，则点击退出按钮，返回到前面VeraCrypt的主界面。\n现在，无论您的加密卷放置在何位置，它仅仅是一个单纯的文件，您还需要在VeraCrypt中将其挂载使用。\n如何挂载加密卷 单击VeraCrypt主窗口中的\u0026quot;选择文件\u0026quot;按钮，然后导航到存放VeraCrypt加密卷的目录。选择我们刚才创建的加密卷文件后，为安全起见，默认选择了\u0026quot;从不保留历史纪录\u0026quot;，不建议取消此勾选，再从上面的框中选择一个可用的驱动器盘符。我们选择了X，然后单击加载。\n此时按提示输入前面设置的加密卷密码，然后单击确定。\n需要耐心等待片刻，如下图：\n加载成功后，主界面如下图：\n让我们看一下\u0026quot;我的电脑\u0026quot;，可以看到我们的加密卷已成功加载：\n哦耶！成功了！5GB的加密卷呈现在您面前，正如兹母制作的甜点一样甜得美不可言。现在，您可以进入该加密卷，将所有您想要防止窥探的敏感文件拷入其中。\n将敏感文件复制到加密卷中后，请不要忘记对其进行安全擦除。常规文件系统存储是不安全的，除非正确地擦除空间，否则已加密文件的痕迹将保留在未加密磁盘上。另外，当您不需要使用加密卷时，不要忘记在VeraCrypt 中\u0026quot;卸载\u0026quot;加密卷。\n","date":"2020-12-06T18:30:00+08:00","image":"https://xmyy.com/article/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt_hub6e6794b9a4479960ca6eb19dd4ed382_362936_120x120_fill_q75_box_smart1.jpg","permalink":"https://xmyy.com/article/How-to-Protect-Sensitive-Files-on-PC-with-VeraCrypt/","title":"如何使用VeraCrypt保护PC上的敏感文件"},{"content":"💁🏻‍♂️《今日头条》 2020-11-16 《从玩转靶机DVWA看程序设计安全》 童建平\n前言 靶机，在军事领域意指作为射击训练目标的一种军用飞行器。类似地，在网络安全行业，靶机，也称靶场，泛指作为渗透测试用途的一种软件或系统。常见的渗透测试靶机系统有DVWA、Metasploitable、mutillidaemutillidae、SQLol、hackxor、BodgeIt、Exploit KB、WackoPicko、OWASP Hackademic、WebGoat、XSSeducation、Web for Pentester、Lazysysadmin等等，举不胜举。DVWA就是其中最著名、最基础的靶场。 关于DVWA DVWA，全称Dam Vulnerable Web Application，是著名的OWASP开源的一个在线web安全教学平台，基于PHP+Mysql编写，用于常规WEB漏洞教学及检测WEB脆弱性，包含暴力破解、命令执行、CSRF、文件包含、SQL注入、XSS、盲注等常见的一些安全漏洞，并且分Low、Medium、High、Impossible四种不同的安全等级，等级越高难度也越大，同时每一个漏洞可以直接在页面选择查看源码进行源码对比加以学习。 安装配置DVWA DVWA是推荐新手首选靶场，配置简单，可运行在LAMP(Linux+Apache+Mysql+Php)之类的环境中，也可以运行在Windows系统中，只要您有个支持php+mysql的环境即可。这种环境的配置方法，网络上文章多如牛毛，这里就不赘述了。下面小编为您讲述如何在Centos 7.x下安装配置DVWA。\n下载源码 首先，我们需要到DVWA官方Github地址下载源码： 官方于2个月前的9月13日发布了最新版本2.01，也可以直接通过下面地址下载源码包：\n安装配置 将下载的压缩包保存到本地后，通过rz命令(如果找不到此命令，请运行yum –y install lrzsz安装)将其上传到您的服务器上。解压后，会生成子目录DVWA-2.0.1，需要将该子目录下的所有文件移至您的站点根目录下。假设您的站点根目录是/opt/allsite/domain.com/wwwroot，则解压后目录结构如下图： 进入上图中config目录，重命名配置文件： 1 mv config.inc.php.dist config.inc.php 修改其中$_DVWA数组各项值，如将$_DVWA[ \u0026lsquo;db_server\u0026rsquo; ]、$_DVWA[ \u0026lsquo;db_database\u0026rsquo; ]、$_DVWA[ \u0026lsquo;db_user\u0026rsquo; ]、$_DVWA[ \u0026lsquo;db_password\u0026rsquo; ]的值更改为您的数据库地址、数据库名、数据库用户名、数据库密码对应的值。如下图： 如果您的php配置文件/etc/php.ini中没有开启允许allow_url_include，需要开启之，否则安装过程中会提示： 1 PHP function allow_url_include: Disabled 下面是修改后正确的配置：\n如果变更了php配置，记得用systemctl reload httpd等命令重启下apache服务！\n还有一个坑需要事先修改配置以避免，否则您可能在安装过程中遇到如下错误： 1 2 3 4 5 6 7 You can also use this to reset the administrator credentials (\u0026#34;admin // password\u0026#34;) at any stage. reCAPTCHA key: Missing [User: apache] Writable folder /opt/allsite/domain.com/wwwroot/config: Yes Status in red, indicate there will be an issue when trying to complete some modules. 这是有关谷歌验证码的功能，解决方法很简单，修改前面第2步骤中的配置文件config.inc.php，将其中$_DVWA[ \u0026lsquo;recaptcha_public_key\u0026rsquo; ]和$_DVWA[ \u0026lsquo;recaptcha_private_key\u0026rsquo; ]的值改为如下即可：\n1 2 3 $_DVWA[ \u0026#39;recaptcha_public_key\u0026#39; ] = \u0026#39;6LdK7xITAAzzAAJQTfL7fu6I-0aPl8KHHieAT_yJg\u0026#39;; $_DVWA[ \u0026#39;recaptcha_private_key\u0026#39; ] = \u0026#39;6LdK7xITAzzAAL_uw9YXVUOPoIHPZLfw2K1n5NVQ\u0026#39;; 如下图： 假设您的网站域名是www.domain.com，此时即可访问http://www.domain.com/setup.php 进行初始化数据库，如下图： 只要在Status in red一行前面的检测项都是绿色的，就可以下拉页面，点击下图的Create / Reset Database按钮就行初始化数据。否则，请根据红色错误提示进行修改相关配置解决。 这个setup.php页面，可以在任何时候，您需要时进行访问，进行重新初始化操作，方便重新测试使用。 成功初始化数据库后，即完成安装。系统自动跳转到登录页面http://www.domain.com/login.php ，如下图： 此时输入默认的用户名admin，密码password，即可成功登录DVWA，如下图： DVWA演练 上面已经完成了DVWA的安装，下面我们可以开始愉快的学习之旅了，让我们来看看如何在DVWA中进行渗透攻防演练。\n安全级别 本文开头介绍了DVWA分4种安全模式，安装完成后默认配置是最高级别的Impossible安全模式，为方便我们学习渗透测试，需要修改等级为最低级别Low： 登录DVWA后，点击左边菜单\u0026quot;DVWA Security\u0026quot;，在如下图中的下拉菜单中选择Low并点击Submit按钮提交，即可完成配置： Brute Force(暴力破解) 然后我们点击左边菜单\u0026quot;Brute Force(暴力破解)\u0026quot;，如下图： 我们在用户名和密码框中输入随意的字符，将提示用户名或密码不正确，如下图： 此时，我们可以在该页面右下角点击\u0026quot;View Surce(查看源代码)\u0026ldquo;按钮，查看此页面的源代码，这是DVWA很有用的一个功能，方便我们边查询源码边学习如何渗透测试，如下图： 如图所示，代码中的SQL语句为：\n1 SELECT * FROM `users` WHERE user = \u0026#39;$user\u0026#39; AND password = \u0026#39;$pass\u0026#39;; 如上图，我们输入的用户名是gdfgdsf，密码是fgsdgsdfg，则此SQL查询语句向数据库提交查询：\n1 SELECT * FROM `users` WHERE user = \u0026#39;gdfgdsf\u0026#39; AND password = \u0026#39;fgsdgsdfg\u0026#39;; 由于数据库中不存在此用户名，自然通过不了，提示用户名或密码错误。 那如果我们用户名改为输入:\n1 admin\u0026#39;-- 即admin后面加个英文单引号再加双连字符(\u0026ndash;)再加1个空格，如下图： 是不是见证奇迹的时刻发生了？我们成功绕过了程序设置，系统提示我们登录成功，而我们连密码都输入为空的。 我们来看看当输入上面用户名时，SQL语句变成了什么?SQL语句就变成：\n1 SELECT * FROM `users` WHERE user = \u0026#39;admin\u0026#39;-- \u0026#39; AND password = \u0026#39;\u0026#39;; 为什么这个语句能绕过验证呢？这是因为双连字符(\u0026ndash;)在SQL中通常具有特别的含义，它起到注释作用，表示其后面的语句属于注释，应被忽略不予执行。于是上面的语句等价于执行了：\n1 SELECT * FROM `users` WHERE user = \u0026#39;admin\u0026#39;; 数据库正好存在有名称为admin的用户，于是攻击者就能绕过成功登录系统了。 类似如上，构建含有特殊字符的用户名，还可以结合使用union等语句进行攻击，是很有用的技巧。\n启示录 限于时间和篇幅，上面只是简单介绍下DVWA的暴力破解模块，仅为其冰山一角，更多功能有待您去发现和体验，本文仅为抛砖引玉。从上面的源代码可看出，写出那样的代码是程序新手经常犯的错误，对SQL语句中引用的变量等缺乏应有的过滤操作，引发了安全风险。 那如何提高程序安全设计呢？其实DVWA也隐藏了给我们提高程序安全设计的技巧。我们将DVWA Security安全级别改为Medium，然后再返回菜单\u0026quot;Brute Force(暴力破解)\u0026quot;，点击查看源代码，将看到如下图所示： 由上可见，DVWA提供了使用mysqli_real_escape_string和md5函数对用户输入值进行相关转换操作，某种程度上提升了安全性。但道高一尺，魔高一丈，这点小把戏还是对付不了中级黑客的。 接着，我们将DVWA Security安全级别改为High，然后同样再返回菜单\u0026quot;Brute Force(暴力破解)\u0026quot;，点击查看源代码，将看到如下图所示： 怎么样，代码是不是更进化了？还对session进行了认证。然并卵，在高级黑客面前这点改进估计还是相形见拙，还是会被攻破。您自己可以再更改安全等级，再看DVWA新的代码安全改进。从中，您可以学到很多程序安全设计技巧。 所以，DVWA不仅仅是一款供渗透测试人员进行演练的靶场，也是广大\u0026quot;程序猿\u0026quot;学习提高的榜样。希望您能喜欢这套系统。 好了，本期教程先到这里，希望能给您带来帮助。小编一字字码字好累，一张张截图好苦，如果您喜欢，请记得帮忙点赞、收藏、转发，并点击关注小编，不胜感激！您的肯定将是小编前进的动力！本文由\u0026quot;世说鹰语\u0026quot;原创，欢迎关注，带您一起涨知识！\n","date":"2020-11-16T23:59:00+08:00","image":"https://xmyy.com/article/Programming-Security-from-Playing-with-the-Target-DVWA/_hu89a1f8216a8e347b3274a9768eebfda9_157973_bdbf7d3953e688317555ca55bd6911d4.jpg","permalink":"https://xmyy.com/article/Programming-Security-from-Playing-with-the-Target-DVWA/","title":"从玩转靶机DVWA看程序设计安全"},{"content":"💁🏻‍♂️《今日头条》 2020-11-03 《在Windows 10上使用WSL安装Centos》 童建平\n通过本文，您将获得一个简单的方式在Windows 10 WSL上手工安装CentOS ，以便学习使用RHEL的 RPM 或YUM 等命令……\nWSL(Windows Subsystem for Linux)为用户提供了颇具吸引力的前沿功能。因为WSL可以让您不需要安装诸如VirtualBox之类的虚拟化软件，就可以直接在Windows 10系统中学习使用Linux命令。适用于Linux的Windows子系统通常被简称为WSL，是一个在Windows 10和Windows Server 2019上能够运行原生Linux二进制可执行文件（ELF格式）的兼容层。\n通常我们可以通过Microsoft store安装特定Linux发行版，微软商店提供了一些预编译的轻量级镜像，目前可供选择的有： Ubuntu、Kali Linux、Debian、AlpinLinux、OpenSUSE 和SUSE Enterprise Server等发行版。因此，如果您想安装CentOS/RHEL (Red Hat Enterprise) 或者Arch Linux ，您不得不手工安装它们。那么，我们该怎么操作呢？\n如何在WSL上安装 CentOS 7 注意：开始安装前，您必须先在Windows 10中启用WSL，如果您不清楚怎么操作，请查阅参考笔者之前的文章：\n漫谈在Windows Server 2019中安装使用WSL\n1: 下载CentOS WSL 首先我们需要下载一个可用于WSL的CentOS镜像，该镜像应该是一个经过压缩的，且包含了rootfs及其它文件。幸运地，Github有牛人提供了一个开源的可运行在WSL上的CentOS实例，地址为：https://github.com/yuk7/CentWSL ，其最新版本基于目前流行的版本CentOS 7.6。如下图：\n2: 解压WSL CentOS 7.x 从上面Github地址下载对应的压缩文件，右键点击并解压之，解压后文件大小300MB左右。如下，我们用WinRAR解压，当然您也可以用系统默认解压程序或其它解压缩工具。\n3: 在WSL中运行CentOS.exe 并安装 解压后，您将在目标目录中看到2个文件：rootfs.tar.gz和CentOS.exe。我们需要运行CentOS.exe，以便解压其中的文件并注册到WSL。右键点击并以管理员身份运行：\n4: 完成安装 稍等一些时间，系统将自动进行初始化，完成后您将看到如下图所示消息，此时可按任意键退出安装。\n在WSL上启动CentOS 7 要在WSL上启动运行Centos，这时您返回解压后的目录，您将看到多出了2个目录，如下图：\n不用理会，此时再次右击并以管理员身份运行CentOS.exe，即成功登录系统了，如下图：\n在WSL上更新Centos 7 现在，您可以随心所欲在CentOS上运行您想要执行的命令了。然而，为了检验系统可用性，我们最好使用yum命令测试下更新系统：\n1 yum -y update 在WSL上卸载CentOS 7 如果您因为某种原因不想使用了，可以使用下面命令在WSL上卸载CentOS：\n1 ./CentOS.exe clean 当您在使用CentOS过程中遭遇一些错误想重装，或者您不小心删除了解压缩的目录需要重装时，我们需要先卸载之：\n在WSL上重新安装CentOS，只需要重新执行前面的步骤操作即可。\n","date":"2020-11-03T18:15:00+08:00","image":"https://xmyy.com/article/Installing-Centos-on-Windows-10-using-WSL/Installing-Centos-on-Windows-10-using-WSL_hu042130161c2b6c330ef21e4d39f984aa_520402_120x120_fill_q75_box_smart1.jpg","permalink":"https://xmyy.com/article/Installing-Centos-on-Windows-10-using-WSL/","title":"在Windows 10上使用WSL安装Centos"},{"content":"💁🏻‍♂️《今日头条》 2020-11-02 《漫谈在Windows Server 2019中安装使用WSL》 童建平\n熟稔IT历史的朋友一定不会忘记98蓝屏事件：时任微软CEO的比尔·盖茨和助理 Chris Capossela在1998年春季计算机分销商展会（COMDEX ）现场演示Windows 98的\u0026quot;即插即用\u0026quot;（plug-and-play）新特性时，经历了演示计算机当场冷不丁甩出蓝屏死机（Blue Screen of Death，简称BSOD）界面的尴尬一幕：\n尽管微软极力想要化解其中的尴尬，但该事件还是在该公司的历史上留下了难以抹去的一笔。蓝屏死机几乎已经成为了微软Windows操作系统的标志。\n那么，作为从业IT的您，如果是一名运维工程师，当你正在紧急处理线上故障时，突然办公电脑蓝屏死机了；又亦或您是一名程序猿，正在专注\u0026quot;写bug\u0026quot;时，也BSOD了，这是多么令人崩溃的事情啊。所以，拥有一个稳定的操作系统，是您的不二选择。\n笔者自从Windows Server 2000以来，一直用Windows Server系列产品作为办公操作系统，深谙其利：\nWindows Server系列一般基于同时期的Windows家庭版开发而来，拥有相同的内核，如Windows Server 2012就是一套基于Windows 8基础上开发出来的服务器版系统，Windows Server 2019则基于Windows 10。如果您细心，会注意到很多Windows Update更新文件，Windows Server系列与Windows家庭版系列其实是相同的文件。所以使用Windows Server系列不会对您的日常办公带来什么不便。 作为办公用途，我们一般不需要华丽的Windows家庭版界面、多余的多媒体等功能，所以使用Windows Server系列作为办公操作系统完全适合，且能带来更高的稳定性(如基本告别蓝屏死机)、安全性。 Windows Server系列在内存管理和网络功能等方面要比Windows家庭版系列表现优秀，要求的硬件配置也更低(比如使用Windows 7最低内存要求为4G，Windows Server 2008 R2最低内存要求仅为512M)，也就意味着同等硬件配置情况下，使用Windows Server能使用更大的内存等资源，带来更高的工作效率。 不管您是运维工程还是程序猿，是不是经常在工作中需要搭建测试环境用于日常工作调试？在Windows Server系列上安装这些测试环境自然比在Windows家庭版系列上安装使用更便捷高效及稳定。 因此，笔者极力推荐各位安装使用Windows Server系列最新版本Windows Server 2019用于办公，再配合安装使用WSL，可以告别以前在办公电脑上还要安装虚拟机安装LNMP等测试环境的窘境了。\n大家知道，Windows 10推出了备受推崇的WSL。WSL，即Windows Subsystem for Linux，中文名称：适用于Linux的Windows子系统，可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销。如今，Windows Server 2019在版本1709及更高版本上也可以安装使用WSL了。\n启用WSL，您可以：\n选择您偏好的 GNU/Linux 分发版。 运行常用的命令行软件工具（例如 grep、sed、awk）或其他 ELF-64 二进制文件。 运行 Bash shell 脚本和 GNU/Linux 命令行应用程序，包括： 工具：vim、emacs、tmux。 语言：NodeJS、Javascript、Python、Ruby、C/ C++、C# 与 F#、Rust、Go 等。 服务：SSHD、MySQL、Apache、lighttpd、MongoDB、PostgreSQL。 使用自己的 GNU/Linux 分发包管理器安装其他软件。 使用类似于 Unix 的命令行 shell 调用 Windows 应用程序。 在 Windows 上调用 GNU/Linux 应用程序。 要在Windows Server 2019上使用WSL，首先需要确定您的系统版本大于1709，可按下面步骤确定您的操作系统版本：\n①在开始菜单中点击Windows Powershell进入，或者在开始菜单中磁性贴中点击Windows Powershell进入，如下图：\n②输入Powershell命令：\n1 Get-ComputerInfo | Select WindowsProductName, WindowsVersion, WindowsInstallationType, OsServerLevel, OsVersion, OsHardwareAbstractionLayer 如下图：\n③稍等几秒，系统输出结果，如：\n1 2 3 4 5 6 7 8 9 10 11 WindowsProductName : Windows Server 2019 Datacenter WindowsVersion : 1809 WindowsInstallationType : Server OsServerLevel : FullServer OsVersion : 10.0.17763 OsHardwareAbstractionLayer : 10.0.17763.1131 如下图：\n上面的WindowsVersion的值即为您的系统版本。图中值为1809，满足WSL安装要求。\n然后继续在上面的Powershell窗口中输入如下命令启用WSL：\n1 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux 如下图：\n回车后， 稍等几秒，会提示您选择并重启计算机，如下图：\n输入y或直接回车，电脑立即重启。重启后即成功启用了WSL。\n接下来，就是选择下载并安装您喜欢的Linux发行版，在Windows 10下可以通过Microsoft Store应用直接下载安装，在Windows Server 2019中Microsoft Store应用不可用，可以通过以下网址来下载并手动安装Linux发行版：\nUbuntu 20.04 https://aka.ms/wslubuntu2004 Ubuntu 20.04 ARM https://aka.ms/wslubuntu2004arm Ubuntu 18.04 https://aka.ms/wsl-ubuntu-1804 Ubuntu 18.04 ARM https://aka.ms/wsl-ubuntu-1804-arm Ubuntu 16.04 https://aka.ms/wsl-ubuntu-1604 Debian GNU/Linux https://aka.ms/wsl-debian-gnulinux Kali Linux https://aka.ms/wsl-kali-linux-new OpenSUSE Leap 42 https://aka.ms/wsl-opensuse-42 SUSE Linux Enterprise Server 12 https://aka.ms/wsl-sles-12 Fedora Remix for WSL https://github.com/WhitewaterFoundry/WSLFedoraRemix/releases/ 然而，需要注意的是，如上个别发行版如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。\n现在，以Ubuntu 16.04为例，我们通过Powershell下载此发行版：\n1 Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile Ubuntu.appx –UseBasicParsing 如下图：\n回车后开始下载，取决于您的下载速度，可能费时很长，如下图：\n有可能就遇到下载失败了，如下图：\n这时候，为方便查看下载进度，我们改用curl命令进行下载：\n1 curl.exe -L -o ubuntu-1604.appx https://aka.ms/wsl-ubuntu-1604 也是失败，如下图：\n于是再改成下载更新版本的ubuntu：\n1 curl.exe -L -o ubuntu-1804.appx https://aka.ms/wsl-ubuntu-1804 下载速度就很快了，5分钟左右就完成下载了，如下图：\n然后对下载后ubuntu-1804.appx文件进行重命名，并解压到当前目录的ubuntu1804子目录下：\n1 2 3 Rename-Item ubuntu-1804.appx ubuntu-1804.zip Expand-Archive ubuntu-1804.zip ubuntu1804 如下图：\n然后继续输入下面命令切换到解压后的目录，并启动运行ubuntu：\n1 2 3 cd ubuntu1804 ubuntu1804.exe 如下图：\n很不幸，您将看到如下错误提示：\n解决的方法有2个，1个是按照错误提示中所述手工键入\u0026quot;.\\ubuntu1804.exe\u0026quot;，或键入字母\u0026quot;u\u0026quot;再按Tab键也会自动填充\u0026quot;.\\ubuntu1804.exe\u0026quot;命令。\n另1个方法是使用如下PowerShell命令将您的分发版路径添加到Windows环境路径（在本例中为 C:\\Users\\Administrator\\Ubuntu1804）中：\n1 2 3 $userenv = [System.Environment]::GetEnvironmentVariable(\u0026#34;Path\u0026#34;, \u0026#34;User\u0026#34;) [System.Environment]::SetEnvironmentVariable(\u0026#34;PATH\u0026#34;, $userenv + \u0026#34;;C:\\Users\\Administrator\\Ubuntu1804\u0026#34;, \u0026#34;User\u0026#34;) 如下图：\n只是，第2个方法因为是修改系统变量，需要关闭原有窗口并重新启动PowerShell或者重启下计算机。重启后，就可以在任意路径下直接通过键入\u0026quot;.\\ubuntu1804.exe\u0026quot;命令启动您的分发版，然后稍等片刻等待系统完成初始化。如下图：\n之后，按照提示输入要创建的用户名和密码，即成功登录ubuntu系统，如下图：\n这样您就可以开始愉快的utuntu之旅了，在上面安装LNMP等环境，这里就暂不赘述了。喜欢本文的朋友，欢迎点赞、关注、评论哦！笔者后续将继续介绍在WSL下安装centos等发行版，敬请期待！\n","date":"2020-11-02T15:22:00+08:00","image":"https://xmyy.com/article/Rambling-about-installing-and-using-WSL-on-Windows-Server-2019/_huc4978c463cf56c0c7430dc851005064f_13142_07a65fc55316d699d2e68f03565f927d.jpg","permalink":"https://xmyy.com/article/Rambling-about-installing-and-using-WSL-on-Windows-Server-2019/","title":"漫谈在Windows Server 2019中安装使用WSL"},{"content":"💁🏻‍♂️《天极网》2001年4月26日 《无人参与安装Win2K全攻略》 福建农林大学 童建平\n以下为文字版，扫描版请详见文末图片：\n当今电脑硬件大跌价，个人也可以拥有在以前看来是高性能高配置的电脑了，在个人电脑上玩转Windows 2000不再是梦。于是，我们不再眷恋Windows 9X,也不满意于Windows ME，我们的目标是Windows 2000家族系列。也许您以前得益于Microsoft Batch 98自动安装Windows 98的便捷，如今功能更强的Windows 2000的无人参与安装将是您的得力助手\u0026mdash;-要知道Windows 2000的安装时间一般比Windows 9x要多半小时以上。下面以Windows 2000 Advance Server为例，详细介绍如何设置使用其无人参与安装(同样适用于其家族系列Windows 2000 Professional, Windows 2000 Server或Windows 2000 Datacenter Server)。 无人参与安装可以简化在多个计算机上安装 Windows 2000 的过程，要做到这一点，需要创建和使用一个应答文件，即自动回答安装问题的自定义脚本。然后从命令行用适当的无人参与安装选项运行安装程序。当然，要使安装程序自动运行，如果您在CMOS里设置了开机密码，应先取消该设置。启动无人参与安装所用的命令与交互安装的命令相同。 在运行MS-DOS或Windows 3.x的计算机上启动无人参与安装，请使用:\n1 winnt /u:\u0026lt;ANSWER file\u0026gt; /s:\u0026lt;INSTALL source\u0026gt; /t:\u0026lt;TARGET drive\u0026gt; 在运行Windows NT 4.0、Windows 95或Windows 98的计算机上启动无人参与安装，请使用:\n1 winnt32 /unattend:\u0026lt;ANSWER file\u0026gt; /s:\u0026lt;INSTALL source\u0026gt; [/syspart:\u0026lt;TARGET drive\u0026gt;] [/tempdrive:\u0026lt;TARGET drive\u0026gt;] winnt.exe和winnt32.exe在Windows 2000安装光盘的i386目录下。其中，answer file为应答文件名，一般为unattend.txt，install source即安装文件源路径，target drive为目标盘。syspart参数为拷贝所有引导文件到目标盘并将其激活；tempdrive参数则拷贝所有安装文件到目标盘的某临时文件夹下，如果安装之中出现没有剩余磁盘空间，允许用户选择另一文件夹再继续安装。如果您要将系统安装在缺省的C盘下，可以省略syspart和tempdrive参数。而在多分区的硬盘上安装Windows 2000，若要确保系统安装在指定的目标盘上，最好用参数/t或/tempdrive指明目标分区。要完成无人参与安装，至少需要如下选项和键名值：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [Unattended] UnattendMode = FullUnattended TargetPath = WINNT [UserData] ComputerName = \u0026#34;COMPUTER_NAME\u0026#34; FullName = \u0026#34;Your User Name\u0026#34; [GuiUnattended] AdminPassword = * TimeZone = \u0026#34;210\u0026#34; [LicenseFilePrintData] AutoMode = \u0026#34;PerServer\u0026#34; AutoUsers = \u0026#34;5\u0026#34; [Networking] [Identification] JoinWorkgroup = Workgroup Unattended选项中:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 键名:UnattendMode 键值：GuiAttended | ProvideDefault | DefaultHide | ReadOnly | FullUnattended 指明系统安装的模式，缺省为\u0026#34;DefaultHide\u0026#34;模式，即\u0026#34;隐藏页\u0026#34;模式，如果应答文件中提供了所有回答，则安装程序不会让用户看到安装向导页面\u0026#34;GuiAttended\u0026#34;模式即\u0026#34;使用GUI\u0026#34;模式，只有Windows安装程序的文本模式部分是自动化的。\u0026#34;ProvideDefault\u0026#34;模式即\u0026#34;提供默认\u0026#34;模式，指明应答文件中提供的回答是默认回答，安装程序中会提示用户复查这些回答，用户可进行修改；\u0026#34;FullUnattended\u0026#34;模式即\u0026#34;全自动\u0026#34;模式，安装程序不提示用户作出任何回答，用户需在应答文件中提供所有需要的回答；\u0026#34;ReadOnly\u0026#34;模式即\u0026#34;只读\u0026#34;模式，如果用户可以看见安装向导页面，则不能进行修改。 键名: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，此时应选\u0026#34;LeaveAlone\u0026#34;。值得注意的是，使用多系统时，应将Windows 2000安装在与原操作系统不同的分区上，否则安装程序会先格式化原系统所在分区。如果计划使用ExtendOemPartition,应设之为ConvertNTFS。推荐选择\u0026#34;ConvertNTFS\u0026#34;，因为NTFS系统更稳定、安全，且是唯一支持Active Directory的文件系统，Active Directory包括许多重要功能，例如域和基于域的安全；安装程序在复制文件到安装文件夹后开始转换分区。值得一提的是，如果要删除NTFS分区，可用Windows 2000光盘启动计算机进入安装程序，删除所在分区即可，或使用fdisk，但fdisk不能删除扩展分区中的NTFS分区，可用如下debug法： debug \u0026lt;ENTER\u0026gt; A 10 \u0026lt;ENTER\u0026gt; mov ax,0201 \u0026lt;ENTER\u0026gt; mov bx,0100 \u0026lt;ENTER\u0026gt; mov cx,0001 \u0026lt;ENTER\u0026gt; mov dx,0080 \u0026lt;ENTER\u0026gt; int 13 \u0026lt;ENTER\u0026gt; int 20 \u0026lt;ENTER\u0026gt; g=10 \u0026lt;ENTER\u0026gt; F 2ce 2dd 00 \u0026lt;ENTER\u0026gt; A 10 \u0026lt;ENTER\u0026gt; mov ax,0301 \u0026lt;ENTER\u0026gt; g=10 \u0026lt;ENTER\u0026gt; Q \u0026lt;ENTER\u0026gt; 键名：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厂商安装而设，可略。 UserData选项中：\n1 2 3 4 5 6 7 8 9 10 11 12 键名：ComputerName 键值： \u0026lt;STRING\u0026gt; 用于设置计算机名，如果为*，则系统随机以公司名为基础生成计算机名。计算机名不可超过63个字符，否则会被自动截为63个字符。 键名：FullName 键值： \u0026lt;STRING\u0026gt; 用于设置用户名，是确保完全无人参与安装不可少的。 键名:OrgName 键值： \u0026lt;STRING\u0026gt; 设置公司名。 键名：ProductID 键值： \u0026lt;STRING\u0026gt; 设置序列号，必须是正确的，否则安装过程会暂停要求用户点击\u0026#34;接受协议\u0026#34;等。 GuiUnattended选项中：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 键名：AdminPassword 键值：\u0026lt;PASSWORD\u0026gt; | * 用于设置超级用户密码，如果为*，则密码为空。 键名：AdvServerType 键值：ServerNT 用于设置服务器类型，只在升级Windows 2000 Server, Windows 2000 Advanced Server或Windows 2000 Datacenter Server时有效。 键名：AutoLogon 键值：Yes|No 缺省值是\u0026#34;NO\u0026#34;，且对升级安装无效。当设置了AutoLogonAccountCreation=yes时，自动以超级用户登录。 键名：AutoLogonAccountCreation 键值：Yes|No 缺省是\u0026#34;Yes\u0026#34;，设置安装后是否自动以超级用户登录系统。 键名：AutoLogonCount 键值：\u0026lt;INTEGER\u0026gt; 键值通常为\u0026#34;1\u0026#34;，设置系统自动以超级用户登录的次数，重启后此键可失效----如果设为\u0026#34;2\u0026#34;，则重启后系统仍会自动以超级用户身份登录；如果设置了\u0026#34;AdminPassword=*\u0026#34;(空密码)和\u0026#34;AutoLogon=Yes\u0026#34;，系统只以超级用户登录一次且忽略此值。 键名：TimeZone 键值：\u0026lt;INDEX\u0026gt; 用于设置时区，中国用户可设之为\u0026#34;210\u0026#34;。 其它键名Arguments、DetachedProgram、OEMSkipRegional、OEMSkipWelcome、ProfilesDir，可略。 LicenseFilePrintData选项中：\n1 2 3 4 5 6 键名：AutoMode 键值：PerSeat | PerServer 用于选择授权模式,键值\u0026#34;PerSeat\u0026#34;即\u0026#34;每客户\u0026#34;模式，\u0026#34;PerServer\u0026#34;即\u0026#34;每服务器\u0026#34;模式，建议选\u0026#34;PerServer\u0026#34;，因为可以一次性地从\u0026#34;每服务器\u0026#34;模式改成\u0026#34;每客户\u0026#34;模式而没有开销。 键名：AutoUsers 键值：\u0026lt;INTEGER\u0026gt; 每服务器每个连接必须有自己的\u0026#34;客户端访问许可证\u0026#34;，此键用于设置同时连接的数目，通常为\u0026#34;5\u0026#34;。 Networking选项必须置于应答文件中所有网络设置选项的前面。其中：\n1 2 3 键名：InstallDefaultComponents 键值：Yes|No 用于指定是否安装默认组件。 Identification选项中：\n1 2 3 4 5 6 7 8 9 10 11 12 13 键名：JoinWorkgroup 键值：\u0026lt;WORKGROUP name\u0026gt; 用于设置加入的工作组名。 键名：JoinDomain 键值：\u0026lt;DOMAIN name\u0026gt; 用于设置加入的域名。 键名:DomainAdmin 键值：\u0026lt;ACCOUNT name\u0026gt; 用于指定域中有权限去添加计算机到域的用户帐户。 键名：DomainAdminPassword 键值：\u0026lt;PASSWORD of user account\u0026gt; 用于指定域中有权限去添加计算机到域的用户帐户的密码。 除了以上必要的选项外，还有诸多选项供我们进行个性化设置。限于版面，下面只介绍常用选项和常用键名值: URL选项，指定浏览器设置：\n1 2 3 4 5 6 键名：Help_Page 键值： \u0026lt;URL\u0026gt; 指定默认浏览器帮助页。 键名：Home_Page 键值： \u0026lt;URL\u0026gt; 指定默认浏览器主页。如：\u0026#34;http://chinahacker.6to23.com\u0026#34;，也可以是本机地址：\u0026#34;file:///E:/homepage/index.html\u0026#34;。 FavoritesEx选项，添加收藏夹：\n1 2 3 4 5 6 7 8 键名值：Title\u0026lt;#\u0026gt; = \u0026#34;\u0026lt;SITE Name\u0026gt;.url\u0026#34; URL\u0026lt;#\u0026gt; = \u0026#34;\u0026lt;SITE Address\u0026gt;\u0026#34; 如： Title1 = \u0026#34;雄鹰黑客网.url\u0026#34; URL1 = \u0026#34;http://chinahacker.6to23.com\u0026#34; Title2 = \u0026#34;本地主页.url\u0026#34; URL2 = \u0026#34;file:///E:/homepage/index.html\u0026#34; Display选项，如果Windows 2000包含您的显卡驱动，可在这里设置屏幕分辨率，省却安装后手工更改：\n1 2 3 4 5 6 7 8 9 10 11 12 键名：BitsPerPel 键值： \u0026lt;VALID bits per pixel\u0026gt; 设置颜色值。若要设\u0026#34;256色\u0026#34;显示，值为\u0026#34;8\u0026#34;；若设\u0026#34;增强色(16位)\u0026#34;显示，值为\u0026#34;16\u0026#34;。 键名：Vrefresh 键值： \u0026lt;VALID refresh rate\u0026gt; 设置刷新率。如\u0026#34;85赫兹\u0026#34;可设值为\u0026#34;85\u0026#34;。 键名：Xresolution 键值： \u0026lt;VALID x resolution\u0026gt; 设置屏幕区域的像素宽度。如\u0026#34;1024\u0026#34;。 键名：Yresolution 键值： \u0026lt;VALID resolution y\u0026gt; 设置屏幕区域的像素高度。如\u0026#34;768\u0026#34;。 RegionalSettings选项，用于语言设置：\n1 2 3 键名：LanguageGroup 键值：\u0026lt;LANGUAGE group\u0026gt;, \u0026lt;LANGUAGE group\u0026gt;, … 设置系统被用来配置读取和写入多种语言的文档。\u0026#34;中文简体\u0026#34;为\u0026#34;10\u0026#34;，\u0026#34;中文繁体\u0026#34;为\u0026#34;9\u0026#34;。 TapiLocation选项，用于区域设置：\n1 2 3 4 5 6 键名：CountryCode 键值： \u0026lt;COUNTRY code number\u0026gt; 设置国家所在区域，中国为\u0026#34;86\u0026#34;。 键值：Dialing 键值：Tone | Pulse 设置电话拨号的方式，是音频(Tone)还是脉冲(Pulse)。 Components选项，设置可安装组件：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 键名：accessopt 键值：On | Off 默认值是\u0026#34;On\u0026#34;。设置是否安装\u0026#34;辅助工具\u0026#34;里的\u0026#34;辅助功能向导\u0026#34;，主要为残疾人而设，可设为\u0026#34;Off\u0026#34;。 键名：calc 键值：On | Off 默认值是\u0026#34;On\u0026#34;。设置是否安装计算器。 键名：cdplayer 键值：On | Off 默认值是\u0026#34;On\u0026#34;。设置是否安装CD播放器。 键名：cluster 键值：On | Off 默认值?quot;On\u0026#34;。设置是否安装Windows群集。群集是由一组独立的计算机构成的，这些计算机协同工作以运行一组公用的应用程序，并为客户和应用程序提供类似单机系统的功能。因此个人计算机可设为\u0026#34;Off\u0026#34;。 键名：deskpaper 键值：On | Off 默认值是\u0026#34;On\u0026#34;。设置是否安装桌面墙纸。若设为\u0026#34;Off\u0026#34;，Active Desktop的相关墙纸文件仍将安装。 键名：LicenseServer 键值：On | Off 设置是否安装终端服务协议。终端服务是一种多会话环境，可以让远程计算机访问服务器上运行的基于 Windows 的程序。对于个人计算机而言，可以选择\u0026#34;Off\u0026#34;。 键名：mousepoint 键值：On | Off 默认值是\u0026#34;On\u0026#34;。设置是否安装鼠标指标，可设为\u0026#34;Off\u0026#34;。 键名：mswordpad 键值：On | Off 默认值是\u0026#34;On\u0026#34;。设置是否安装写字板。 键名：paint 键值：On | Off 默认值是\u0026#34;On\u0026#34;。设置是否安装画图程序。 键名：pinball 键值：On | Off 默认值是\u0026#34;On\u0026#34;。设置是否安装桌面弹球游戏。 键名：rec 键值：On | Off 默认值是\u0026#34;On\u0026#34;。设置是否安装录音机程序。 键名：solitaire 键值：On | Off 默认值是\u0026#34;On\u0026#34;。设置是否安装纸牌游戏。 键名：templates 键值：On | Off 默认值是\u0026#34;On\u0026#34;。设置是否安装文档模板。 键名：TSClients 键值：On | Off 默认值是\u0026#34;Off\u0026#34;。设置是否安装终端服务。 键名：vol 键值：On | Off 默认值是\u0026#34;On\u0026#34;。设置是否安装音量控制。 NetAdapters选项，用于设置网络适配器：\n1 2 3 键名：adapter instance 键值：\u0026lt;ADAPTER parameters section\u0026gt; 如：Adapter1=params.Adapter1 params.adapter instance选项，与NetAdapters配合使用：\n1 2 3 键名：InfID 键值：\u0026lt;PNP adapter of\u0026gt; 如：[params.Adapter1]　INFID=* NetClients选项，用于设置网络客户端：\n1 2 3 键名：network client name 键值：\u0026lt;CLIENT parameters section\u0026gt; 如：MS_MSClient=params.MS_MSClient NetServices选项，用于设置网络服务端：\n1 2 3 键名：network service name 键值：\u0026lt;SERVICE parameters section\u0026gt; 如：MS_SERVER=params.MS_SERVER NetProtocols选项，用于设置网络协议：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 键名：protocol name 键值：\u0026lt;PROTOCOL parameters section\u0026gt; 键名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 \u0026lt;MS_TCPIP parameters\u0026gt;选项，用于设置MS_TCPIP协议参数，选项名为\u0026#34;params.MS_TCPIP\u0026#34;： 键名：DNS 键值：Yes |No 设置是否安装DNS。 键名：UseDomainNameDevolution 键值：Yes | No 默认值是：\u0026#34;Yes\u0026#34; ，指定当DNS无法进行域名解析时是否进行域名转向。 键名：EnableLMHosts 键值：Yes | No 默认值是：\u0026#34;Yes\u0026#34;，指定是否使用LMHosts查找。 键名：AdapterSections 键值：\u0026lt;SECTION name\u0026gt;[,\u0026lt;SECTION name\u0026gt;, …] 指定一系列包含网络协议参数的选项。每个选项均有一个指定的\u0026#34;SpecificTo\u0026#34;值，这个\u0026#34;SpecificTo\u0026#34;值即在选项[NetAdapters]中已定义的网络适配器名。 如： [params.MS_TCPIP] DNS=No UseDomainNameDevolution=No EnableLMHosts=Yes AdapterSections=params.MS_TCPIP.Adapter1 params.MS_TCPIP.Adapter1选项，配合[params.MS_TCPIP]选项进行设置：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 键名：SpecificTo 键值：\u0026lt;NETWORK name component\u0026gt; 指定在本选项中的参数只针\u0026lt;NETWORK name component\u0026gt;所定义的网络组件。如果\u0026#34;SpecificTo\u0026#34;缺省，则本选项中的参数设置普遍适用于安装中被定义的网络协议。如： SpecificTo=Adapter1 键名：DHCP 键值：Yes | No 默认值是：\u0026#34;Yes\u0026#34;，指定是否在网络联接中使用Dynamic Host Configuration Protocol(DHCP)。 键名：IPAddress 键值：\u0026lt;IP address\u0026gt;[, \u0026lt;IP address\u0026gt;[, …]] 指定IP地址。 键名：SubnetMask 键值：\u0026lt;SUBNET address\u0026gt;[, \u0026lt;SUBNET address\u0026gt;[, …]] 指定子网掩码。 键名：WINS 键值：Yes | No 默认值是\u0026#34;No\u0026#34;，指定是否在网络联接中使用WINS。 键名：NetBIOSOptions 键值：0 | 1 | 2 默认值是：\u0026#34;0\u0026#34;，\u0026#34;0\u0026#34;表示从DHCP Server获得NETBIOS设置，\u0026#34;1\u0026#34;表示在TCP/IP协议上绑定NETBIOS，\u0026#34;2\u0026#34;表示不在TCP/IP协议上绑定NETBIOS。 最后，给出一个unattend.txt实例：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 [Unattended] Unattendmode = FullUnattended TargetPath = WINNT Filesystem =ConvertNTFS [UserData] FullName = \u0026#34;童建平\u0026#34; OrgName = \u0026#34;雄鹰黑客网\u0026#34; ComputerName = \u0026#34;eagle\u0026#34; [GuiUnattended] TimeZone = \u0026#34;210\u0026#34; 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 = \u0026#34;PerServer\u0026#34; AutoUsers = \u0026#34;5\u0026#34; [FavoritesEx] Title1 = \u0026#34;雄鹰黑客网.url\u0026#34; URL1 = \u0026#34;http://chinahacker.6to23.com\u0026#34; [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 扫描版请详见如下：\n","date":"2019-07-09T08:10:00+08:00","image":"https://xmyy.com/article/Full-guide-to-installing-Win2K-unattended/win2000_hu90d750a471a0a7c6715b8e849701e13f_81859_120x120_fill_q75_box_smart1.jpg","permalink":"https://xmyy.com/article/Full-guide-to-installing-Win2K-unattended/","title":"无人参与安装Win2K全攻略"},{"content":"💁🏻‍♂️《电脑商情报》2001年第9期 《Linkbotpro--测试主页链接好工具》 福建农林大学 童建平\n以下为文字版，扫描版请详见文末图片：\n个人主页作为因特网的一枝独秀，至今仍红红火火。可是包括很多大型网站都会有链接错误 ，对于日益发展壮大的个人网站来说，这种错误也是不可避免的。小弟作主页久了，对这种错误也很烦恼，毕竟检查每个链接是多累的事。最近，小弟觅到一款测试、检查网页链接的好工具Linkbot Pro，相见恨晚，特介绍给各位共享。 Linkbot Pro(见图1)是个共享软件，安装文件有6.50MB，可到http://chinahacker.6to23.com/ 或http://www.watchfire.com/下载，未注册版每次运行和关闭时都会弹出窗口要求注册。 图1 Linkbot Pro主界面有友好的Windows风格，从上往下依次是菜单栏、工具栏、地址栏、工作区 、状态栏。首先点击工具栏\u0026quot;新建\u0026quot;图标，弹出一个小窗口，可以在联网下直接在其中的文本框中输入网址如\u0026quot;http://chinahacker.6to23.com/ \u0026ldquo;进行网上测试，也可点击\u0026quot;Browse\u0026quot;按钮打开本地首页HT M文件进行脱机测试，区别在于后者网页中的网址链接会被认为出错。当然，也可在工具栏下的地址栏中进行操作。 测试中，Linkbot Pro右上角图标会像IE图标一样转动,可随时点击工具栏中的停 止按钮中止测试。测试的同时在Linkbot Pro状态栏上，左边(如图2)显示当前工作状态，右边(如 图3)则显示总文件数、已检测文件数、出错文件数、检测速率、检测时间等。检测完成后，状态栏 左边会显示检测所用时间，同时弹出窗口询问是否产生检测结果报告，图4为十分详细的检测结果报告页面。 图2 图3 图4 除了检测结果报告，我们还可以在Linkbot Pro主界中查看检测结果。在菜单栏中点击菜 单\u0026quot;Tools\u0026ndash;\u0026gt;Schedule Runs\u0026rdquo;，可以让Linkbot Pro象计划任务一样定期检测您的主页。 点击菜单\u0026quot;View\u0026ndash;\u0026gt;Toolbars\u0026quot;可以自定义工具栏。工具栏左半部是下面要介绍的一些功能的快速启动按钮 ，右半部从那个绿色的打勾状的按钮开始，供用户选择在工作区右栏显示链接对象类型，如反显红叉按钮，则在工作区右栏只显示出错链接。 在工作区的左栏，有个下拉菜单(如图5)，提供目录树 、URL地址树、错误链接、出错页面、近期更新页面、久未更新页面、下载缓慢页面、单独页面、 无标题页面、含框架页面、无ALT页面、未指明图片宽窄页面、有逻辑错误页面、有Form页面、网站地图、扫描规则、所有链接等多达17种查看方式。 图5 工作区的右栏，有6个选项卡。其中\u0026quot;Children \u0026ldquo;选项卡(如图6)以表格形式列出左栏链接对象的检测结果，包括\u0026quot;Link URL\u0026rdquo;(链接地址)、\u0026ldquo;Link Status\u0026rdquo;(链接状态)、\u0026ldquo;Hits\u0026rdquo;(点击数)、\u0026ldquo;Link Description\u0026rdquo;(链接描述)、\u0026ldquo;Link Document Title\u0026rdquo; (链接文档标题)、\u0026ldquo;Author\u0026rdquo;(作者)、\u0026ldquo;Last Modified\u0026rdquo;(最后更新)、\u0026ldquo;Type\u0026rdquo;(类型)、\u0026ldquo;size\u0026rdquo;(大小) 等9项内容(可对其进行拉伸)；\u0026ldquo;Link Status\u0026quot;即显示链接是否有错。 图6 \u0026ldquo;Parents\u0026quot;选项卡(如图7)显示 左栏链接出现在何文档中，与\u0026quot;Children\u0026quot;选项卡一样有9项内容。 图7 \u0026ldquo;HTML\u0026quot;选项卡(如图8)则显示左 栏HTM文件的源代码，可进行修改、编辑并保存，保存时只要在左栏点击其它HTM文件，就会弹出窗 口要求保存。 图8 \u0026ldquo;Browse\u0026quot;选项卡(如图9)则调用IE浏览器在Linkbot Pro窗口中对左栏HTM文件或图片等进行预览,这时Linkbot Pro的状态栏变成IE的状态栏,可显示一些网页的状态栏跑马灯效果等 。 图9 \u0026ldquo;Properties\u0026quot;选项卡(如图10)则显示左栏对象的详细信息，不过内容与\u0026quot;Parents\u0026quot;选项卡显示的相差无几。 图10 \u0026ldquo;Site Map\u0026quot;选项卡(如图11)则以图形方式显示整个网页的层次结构,可以点击菜单\u0026quot;Tools\u0026ndash;\u0026gt;Site Map\u0026ndash;\u0026gt;Map Options\u0026quot;对图形显示参数进行设置。 图11 在\u0026quot;Children\u0026quot;或\u0026quot;Parents\u0026quot;选项 卡中，右击其中链接，弹出如图12的右键菜单，下面仅介绍其中几个比较重要的选项功能。　图12 图13 其中\u0026quot;Repair\u0026quot;项是针对错误链接的,右击错误链接，在右键菜单中选\u0026quot;Repair\u0026rdquo;,弹出如图13的对话框， 再点击其中的\u0026quot;Search/Replace\u0026quot;按钮，会弹出向导对话框(如图14)让你改正。而选\u0026quot;Properties\u0026quot;项 ，则方便我们发现错误，在弹出的图15中我们可以看到，错误是将\u0026quot;myarticle\u0026quot;打错成\u0026quot;myartilce\u0026rdquo; ，而错误所在页就显示在下面；改正后，我们可以在其右键菜单中选\u0026quot;Re-Check Selected Links\u0026rdquo;, 再作检测，再打开\u0026quot;Properties\u0026quot;项时就可以发现错误消失了。对于HTM文件，其右键菜单中有个专门选项\u0026quot;Validate HTML\u0026rdquo;,点之出现如图16的对话框，显示一些建议性修改，而且鼠标移近时会有如网页中的\u0026quot;ALT\u0026quot;效果；关于此项功能，可在菜单\u0026quot;Tools\u0026ndash;\u0026gt;Validator Options\u0026quot;中进行相关设置。 图14 图15 图16 最后，本人发现Linkbot Pro不仅是个检测主页的好工具，而且还内置上传功能(经过本人测试 可行)，可点击菜单\u0026quot;Tools\u0026ndash;\u0026gt;Options for \u0026ldquo;进行设置,\u0026rdquo;\u0026ldquo;为用Linkbot Pro测试后的首页文 件地址名，如\u0026quot;E_homepage_index_html\u0026rdquo;。Linkbot Pro真可谓功能多多，就等你去下载掘宝了。 \u0026ldquo;***\u0026ldquo;为用Linkbot Pro测试后的首页文件地址名，如\u0026quot;E_homepage_index_html\u0026rdquo;。Linkbot Pro真可谓功能多多，就等你去下载掘宝了。\n扫描版请详见如下：\n","date":"2019-07-09T08:09:00+08:00","image":"https://xmyy.com/article/Linkbotpro-Good-tool-for-testing-homepage-links/Linkbot_hu101cebf24397182ddb7e2662856bcf04_7646_120x120_fill_q75_box_smart1.jpg","permalink":"https://xmyy.com/article/Linkbotpro-Good-tool-for-testing-homepage-links/","title":"Linkbotpro--测试主页链接好工具"},{"content":"💁🏻‍♂️《软件世界》2001年第1期 《用DHTML制作动画一例》 福建农林大学 童建平\n以下为文字版，扫描版请详见文末图片：\n许多斑竹刻意修饰其首页，就是为了给访客良好的印象。动画是不可或缺的方法，但设计不错的动画，其文件大小也不菲，成了影响页面下载速度的瓶颈，这也是不少网友关闭浏览器显示图片、播放动画功能的原因。而今，当ASP、CGI、PHP等大放异彩时，动态HTML(DHTML)并未失去其生存空间，相反地，微软称将在IE 6.0中增入新的DHTML功能，足以证明这一点；本文这个DHTML制作动画的实例也可作为佐证。 本例通过DHTML编程，实现小圆点〔如图1〕沿着预定轨迹〔如图2、图3〕运动，从而实现动画效果〔如图4〕。该动画用来修饰页面的右下角，主要由三张总计7KB大小的图片组合而成，各图文件大小都很小，拥有分割图片的快速下载优势；而对于相同功能的单张动画图片，其大小是不言而喻的，且就本例而言，还会影响其它网页内容的排版。用动态HTML制作动画，深入挖掘DHTML，您是否被DHTML的魄力所动？OK，让我们一起来用DHTML制作动画： 首先，将下面代码加入\u0026lt;head\u0026gt;中：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 \u0026lt;SCRIPT language=JavaScript\u0026gt; \u0026lt;!-- function PlayLine(LineName, LineID) { var i,j,tmLn,props,keyFrm,sprite,numKeyFr,firstKeyFr,propNum,theObj,firstTime=fals e; if (document.LineXY == null) LineXY(); tmLn = document.LineXY[LineName]; if (LineID == null) { LineID = ++tmLn.ID; firstTime=true;} if (LineID == tmLn.ID) { setTimeout(\u0026#39;PlayLine(\u0026#34;\u0026#39;+LineName+\u0026#39;\u0026#34;,\u0026#39;+LineID+\u0026#39;)\u0026#39;,tmLn.delay); fNew = ++tmLn.curFrame; for (i=0; i\u0026lt;tmLn.length; i++) { sprite = tmLn[i]; if (sprite.charAt(0) == \u0026#39;s\u0026#39;) { if (sprite.obj) { numKeyFr = sprite.keyFrames.length; firstKeyFr = sprite.keyFrames[0]; if (fNew \u0026gt;= firstKeyFr \u0026amp;\u0026amp; fNew \u0026lt;= sprite.keyFrames[numKeyFr-1]) { keyFrm=1; for (j=0; j\u0026lt;sprite.values.length; j++) { props = sprite.values[j]; if (numKeyFr != props.length) { if (props.prop2 == null) sprite.obj[props.prop] = props[fNew-firstKeyFr]; else sprite.obj[props.prop2][props.prop] = props[fNew-firstKeyFr]; } else { while (keyFrm\u0026lt;numKeyFr \u0026amp;\u0026amp; fNew\u0026gt;=sprite.keyFrames[keyFrm]) keyFrm++; if (firstTime || fNew==sprite.keyFrames[keyFrm-1]) { if (props.prop2 == null) sprite.obj[props.prop] = props[keyFrm-1]; else sprite.obj[props.prop2][props.prop] = props[keyFrm-1]; } } } } } } else if (sprite.charAt(0)==\u0026#39;b\u0026#39; \u0026amp;\u0026amp; fNew == sprite.frame) eval(sprite.value); if (fNew \u0026gt; tmLn.lastFrame) tmLn.ID = 0; } } } function MovingLine(LineName, fNew, ToLineXY) { var i,j,tmLn,props,keyFrm,sprite,numKeyFr,firstKeyFr,lastKeyFr,propNum,theObj; if (document.LineXY == null) LineXY(); tmLn = document.LineXY[LineName]; if (ToLineXY != null) if (tmLn.gotoCount == null) tmLn.gotoCount = 1; else if (tmLn.gotoCount++ \u0026gt;= ToLineXY) {tmLn.gotoCount=0; return} jmpFwd = (fNew \u0026gt; tmLn.curFrame); for (i = 0; i \u0026lt; tmLn.length; i++) { sprite = (jmpFwd)? tmLn[i] : tmLn[(tmLn.length-1)-i]; if (sprite.charAt(0) == \u0026#34;s\u0026#34;) { numKeyFr = sprite.keyFrames.length; firstKeyFr = sprite.keyFrames[0]; lastKeyFr = sprite.keyFrames[numKeyFr - 1]; if ((jmpFwd \u0026amp;\u0026amp; fNew\u0026lt;firstKeyFr) || (!jmpFwd \u0026amp;\u0026amp; lastKeyFr\u0026lt;fNew)) continue; for (keyFrm=1; keyFrm\u0026lt;numKeyFr \u0026amp;\u0026amp; fNew\u0026gt;=sprite.keyFrames[keyFrm]; keyFrm++); for (j=0; j\u0026lt;sprite.values.length; j++) { props = sprite.values[j]; if (numKeyFr == props.length) propNum = keyFrm-1 else propNum = Math.min(Math.max(0,fNew-firstKeyFr),props.length-1); if (sprite.obj != null) { if (props.prop2 == null) sprite.obj[props.prop] = props[propNum]; else sprite.obj[props.prop2][props.prop] = props[propNum]; } } } else if (sprite.charAt(0)==\u0026#39;b\u0026#39; \u0026amp;\u0026amp; fNew == sprite.frame) eval(sprite.value); } tmLn.curFrame = fNew; if (tmLn.ID == 0) eval(\u0026#39;PlayLine(LineName)\u0026#39;); } function LineXY() { var ns = navigator.appName == \u0026#34;Netscape\u0026#34;; document.LineXY = new Array(1); document.LineXY[0] = new Array(3); document.LineXY[\u0026#34;Timeline1\u0026#34;] = document.LineXY[0]; document.LineXY[0].MM_Name = \u0026#34;Timeline1\u0026#34;; document.LineXY[0].fps = 15; document.LineXY[0][0] = new String(\u0026#34;sprite\u0026#34;); document.LineXY[0][0].slot = 2; if (ns) document.LineXY[0][0].obj = document[\u0026#34;Layer3\u0026#34;]; else document.LineXY[0][0].obj = document.all ? document.all[\u0026#34;Layer3\u0026#34;] : null; document.LineXY[0][0].keyFrames = new Array(1, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 100); document.LineXY[0][0].values = new Array(2); document.LineXY[0][0].values[0] = new Array(165,176,187,198,210,221,232,243,254,265,277,288,299,310,321,332,344,355, 366,377,388,399,411,422,433,444,455,466,477,488,498,509,519,529,539,549,558,56 8,577,586,595,603,612,620,629,637,645,653,661,668,676,683,691,698,705,712,718, 725,732,738,745,743,738,732,712,706,701,706,717,717,717,718,718,718,718,718,71 8,718,718,718,718,718,718,718,718,718,718,718,718,718,718,718,718,718,718,718, 718,718,718,718); document.LineXY[0][0].values[0].prop = \u0026#34;left\u0026#34;; document.LineXY[0][0].values[1] = new Array(467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467, 467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,46 7,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467, 467,467,467,473,478,489,490,496,494,484,473,462,456,450,444,437,431,424,417,41 0,402,394,386,378,369,360,351,341,332,322,312,302,291,281,271,261,251,241,231, 221,211,201,191); document.LineXY[0][0].values[1].prop = \u0026#34;top\u0026#34;; if (!ns) { document.LineXY[0][0].values[0].prop2 = \u0026#34;style\u0026#34;; document.LineXY[0][0].values[1].prop2 = \u0026#34;style\u0026#34;; } document.LineXY[0][1] = new String(\u0026#34;sprite\u0026#34;); document.LineXY[0][1].slot = 3; if (ns) document.LineXY[0][1].obj = document[\u0026#34;Layer3\u0026#34;]; else document.LineXY[0][1].obj = document.all ? document.all[\u0026#34;Layer3\u0026#34;] : null; document.LineXY[0][1].keyFrames = new Array(101, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 200); document.LineXY[0][1].values = new Array(2); document.LineXY[0][1].values[0] = new Array(718,718,718,718,718,718,718,718,718,718,718,718,718,718,718,718,718,718, 718,718,718,718,718,718,718,718,718,718,718,718,718,718,718,718,718,718,718,71 8,744,738,732,725,719,712,705,698,691,684,677,669,662,654,646,639,631,622,614, 606,597,588,580,571,561,552,543,533,523,513,503,493,482,472,461,450,439,428,41 7,406,395,384,373,362,351,340,329,318,308,297,286,275,264,253,242,231,220,209, 198,187,176,165); document.LineXY[0][1].values[0].prop = \u0026#34;left\u0026#34;; document.LineXY[0][1].values[1] = new Array(191,202,214,225,236,247,259,270,281,292,304,315,326,337,349,359,370,379, 389,398,407,416,425,433,441,448,455,463,469,476,472,469,466,463,460,457,454,45 1,477,468,468,468,468,468,468,468,467,467,467,467,467,467,467,467,467,467,467, 467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,46 7,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467,467, 467,467,467,467); document.LineXY[0][1].values[1].prop = \u0026#34;top\u0026#34;; if (!ns) { document.LineXY[0][1].values[0].prop2 = \u0026#34;style\u0026#34;; document.LineXY[0][1].values[1].prop2 = \u0026#34;style\u0026#34;; } document.LineXY[0][2] = new String(\u0026#34;behavior\u0026#34;); document.LineXY[0][2].frame = 201; document.LineXY[0][2].value = \u0026#34;MovingLine(\u0026#39;Timeline1\u0026#39;,\u0026#39;1\u0026#39;)\u0026#34;; document.LineXY[0].lastFrame = 201; for (i=0; i\u0026lt;document.LineXY.length; i++) { document.LineXY[i].ID = null; document.LineXY[i].curFrame = 0; document.LineXY[i].delay = 1000/document.LineXY[i].fps; } } //--\u0026gt; \u0026lt;/SCRIPT\u0026gt; 再将\u0026lt;body\u0026gt;改为\u0026lt;BODY onload=\u0026quot;PlayLine('Timeline1')\u0026quot;\u0026gt;。然后，在\u0026lt;body\u0026gt;后加入如下代码，其中的Layer1中有两张图，两个\u0026lt;img\u0026gt;标签之间不可断行，否则影响效果；Layer1中newgaogif为笔者编辑的修饰图，读者可自己更改，最好不要改变图片尺寸，否则要重新更改三个Layer的位置。\n1 2 3 4 5 6 7 8 9 10 \u0026lt;DIV id=Layer1 style=\u0026#34;HEIGHT: 38px; LEFT: 24px; POSITION: absolute; TOP: 453px; WIDTH: 680px; Z-INDEX: 4\u0026#34;\u0026gt; \u0026lt;IMG src=\u0026#34;newgao.gif\u0026#34; width=135 height=28\u0026gt;\u0026lt;IMG src=\u0026#34;图2.jpg\u0026#34; width=542 height=19\u0026gt;\u0026lt;/DIV\u0026gt; \u0026lt;DIV id=Layer2 style=\u0026#34;HEIGHT: 335px; LEFT: 700px; POSITION: absolute; TOP: 180px; WIDTH: 48px; Z-INDEX: 5\u0026#34;\u0026gt; \u0026lt;IMG src=\u0026#34;图3.jpg\u0026#34; width=63 height=331\u0026gt;\u0026lt;/DIV\u0026gt; \u0026lt;DIV id=Layer3 style=\u0026#34;HEIGHT: 15px; LEFT: 165px; POSITION: absolute; TOP: 467px; WIDTH: 15px; Z-INDEX: 6\u0026#34;\u0026gt; \u0026lt;IMG src=\u0026#34;图1.gif\u0026#34; width=9 height=9\u0026gt;\u0026lt;/DIV\u0026gt; 最后，预览一下，是不是看到了生动活泼地跳动着的小圆点？仿照本文方法，相信聪明的读者也能创造出别具一格的DHTML动画来，可别忘了把你的成果E-mail一份给本人(chinahacker@gnetpri.com)，让我共享您的喜悦。本文素材图及实例存于http://loveme1999.myrice.com/newgao.htm。有兴趣者可去看看。\n图1\n图2\n图3\n图4\n扫描版请详见如下：\n","date":"2019-07-09T08:08:00+08:00","image":"https://xmyy.com/article/An-example-of-animation-using-DHTML/pawel-czerwinski-8uZPynIu-rQ-unsplash_hud7e36f7e20e71be184458283bdae4646_55974_120x120_fill_q75_box_smart1.jpg","permalink":"https://xmyy.com/article/An-example-of-animation-using-DHTML/","title":"用DHTML制作动画一例"},{"content":"💁🏻‍♂️《电脑知识与技术》2000年第11期 《网页检索功能的简单实现》 福建农林大学 童建平\n以下为文字版，扫描版请详见文末图片：\n如今，个人主页已由当初的星火燎原发展到现在的如火如荼，内容是否丰富成了制约个人主页成败的瓶颈。而在提供大量信息的同时，若能提供站内检索服务，必能吸引访客，迅速抢占个人主页排行榜的制高点。著名网站如Yahoo!那样的搜索引擎对于个人主页是望尘莫及的，更有\u0026quot;杀鸡用牛刀\u0026quot;之嫌，因此，本文介绍一个适合个人主页的检索例子，其功能虽不能与Yahoo!同日同语，但其检索速度较Yahoo!是有过之而无不及。 请将下面代码粘贴于\u0026lt;head\u0026gt;和\u0026lt;/head\u0026gt;中。其中，第一个script中的代码的功能是：当鼠标移近文本框时，反显文本框中的文字，方便输入。第二个script代码中，Keyword数组存放关键词，Keyword[0]为关键词的数量，可根据关键词的增减进行增减；Searched数组存放检索结果信息，AboutHtm数组存放检索结果相关Htm文件的链接地址；当用户输入的关键词与Keyword数组元素匹配时，显示相应Searched数组信息，直接点击Searched信息，即可浏览相应AboutHtm数组元素所指向的Htm文件。后面的SearchedHtm函数定义检索结果页面，可修改stats参数，设置是否显示工具栏、状态栏等。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 \u0026lt;script language=\u0026#34;JavaScript\u0026#34;\u0026gt; \u0026lt;!-- function input_onFocus(theForm) { if (theForm.emailname.value ==\u0026#34;\u0026#34;) { alert(\u0026#34;请输入检索关键词!\u0026#34;); theForm.emailname.focus(); return (false); } return (true); } --\u0026gt; \u0026lt;/script\u0026gt; \u0026lt;script language=\u0026#34;JavaScript\u0026#34;\u0026gt; \u0026lt;!-- Keyword=new Object(); Searched=new Object(); AboutHtm=new Object(); Keyword[0]=5 Keyword[1]=\u0026#34;轸念陈景润\u0026#34; Searched[1]=\u0026#34;精妙美文，不可不看\u0026#34; AboutHtm[1]=\u0026#34;http://chinahacker2000.home.chinaren.com/myarticle/jingrun.htm\u0026#34; Keyword[2]=\u0026#34;tc\u0026#34; Searched[2]=\u0026#34;编程经典\u0026#34; AboutHtm[2]=\u0026#34;http://chinahacker2000.home.chinaren.com/prog/tc/tcprog.htm\u0026#34; Keyword[3]=\u0026#34;dhtml\u0026#34; Searched[3]=\u0026#34;动态HTML技术精彩实例\u0026#34; AboutHtm[3]=\u0026#34;http://chinahacker2000.home.chinaren.com/myarticle/yesky.htm\u0026#34; Keyword[4]=\u0026#34;status\u0026#34; Searched[4]=\u0026#34;状态栏上的动态HTML技术\u0026#34; AboutHtm[4]=\u0026#34;http://chinahacker2000.home.chinaren.com/myarticle/dhtml.htm\u0026#34; Keyword[5]=\u0026#34;webcolor\u0026#34; Searched[5]=\u0026#34;网页颜色不再单调\u0026#34; AboutHtm[5]=\u0026#34;http://chinahacker2000.home.chinaren.com/myarticle/webcolor.htm\u0026#34; function SearchedHtm() { var Found=false var Item=document.forms[0].searchfor.value.toLowerCase(); stats=\u0026#39;toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,\u0026#39; stats+=\u0026#39;scrollbars=yes,resizable=yes\u0026#39; MsgBox=window.open(\u0026#34;\u0026#34;,\u0026#34;msgWindow\u0026#34;,stats) MsgBox.document.write(\u0026#34;\u0026lt;html\u0026gt;\u0026lt;head\u0026gt;\u0026lt;title\u0026gt;检索结果\u0026lt;/title\u0026gt;\u0026lt;/head\u0026gt;\u0026#34;); MsgBox.document.write(\u0026#34;\u0026lt;body bgcolor=#ffffff\u0026gt;\u0026lt;center\u0026gt;检索结果\u0026lt;/center\u0026gt;\u0026#34;); MsgBox.document.write(\u0026#34;您输入的关键词是：\u0026#34;+Item+\u0026#34;\u0026lt;hr\u0026gt;\u0026#34;); for(var i=1;i\u0026lt;=Keyword[0];i++) { if(Item==Keyword[i]) { Found=true; MsgBox.document.write(\u0026#34;\u0026lt;br\u0026gt;\u0026lt;a href=\u0026#34;+AboutHtm[i]+\u0026#34;\u0026gt;\u0026#34;+Searched[i]+\u0026#34;\u0026lt;/a\u0026gt;\u0026lt;br\u0026gt;\u0026#34;) } } if(!Found) MsgBox.document.write(\u0026#34;对不起，没有找到与该关键词相关的条目。\u0026#34;) MsgBox.document.write(\u0026#34;\u0026lt;/body\u0026gt;\u0026lt;/html\u0026gt;\u0026#34;) } --\u0026gt; \u0026lt;/script\u0026gt; 再将下面代码粘贴于\u0026lt;body\u0026gt;和\u0026lt;/body\u0026gt;中，即可实现检索功能。\n1 2 3 4 \u0026lt;form name=\u0026#34;search\u0026#34;\u0026gt; \u0026lt;input type=\u0026#34;text\u0026#34; name=\u0026#34;searchfor\u0026#34; size=\u0026#34;15\u0026#34; value=\u0026#34;本站搜索\u0026#34; onMouseOver=\u0026#34;this.focus()\u0026#34; onFocus=\u0026#34;this.select()\u0026#34; \u0026gt; \u0026lt;input type=\u0026#34;button\u0026#34; value=\u0026#34;Go\u0026#34; onClick=\u0026#34;SearchedHtm()\u0026#34; size=\u0026#34;3\u0026#34; name=\u0026#34;button\u0026#34;\u0026gt; \u0026lt;/form\u0026gt; 本文仅为抛砖引玉，本例的检索功能有限，但若能设置好关键词，其结果还是令人满意的。比如，对于某个Searched数组元素，应有几个Keyword数组元素与之对应，增强检索容错性。更多更强的检索例子，请见于本人主页：http://chinahacker2000.home.chinaren.com。\n扫描版请详见如下：\n","date":"2019-07-09T08:07:00+08:00","image":"https://xmyy.com/article/Simple-implementation-of-web-search-function/web-search_hu3f1e1c3aa1df42f4de9d7a93aee18d3a_63159_120x120_fill_q75_box_smart1.jpg","permalink":"https://xmyy.com/article/Simple-implementation-of-web-search-function/","title":"网页检索功能的简单实现"},{"content":"💁🏻‍♂️《电脑知识与技术》2000年第11期 《组建对等网DIY》 福建农林大学 童建平\n以下为文字版，扫描版请详见文末图片：\n\u0026ldquo;网络就是计算机\u0026rdquo;。朋友，你是否想过在自己的\u0026quot;爱姬\u0026quot;上演绎这句至理名言？Now,Let\u0026rsquo;s go\u0026hellip;\u0026hellip; 组建对等网并不是专业性的、复杂的事情。你只要拥有网卡、集线器、网线，稍为动手，就可以体味网络的神奇。当然，首先你要了解一些组网常识，免得奸商敲你一笔。 对等网，又称点对点网络（Peer To Peer)，指不使用专门的服务器，各终端机既是服务提供者（服务器），又是网络服务申请者。组建对等网的重要元件之一是网卡，各联网机均需配置一块网卡。网卡按总线分为ISA、PCI网卡。ISA网卡虽然价格便宜，但因其易与计算机其它设备如声卡、显卡的中断、I/O地址发生冲突，已属淘汰之列。理想的网卡应是PCI网卡，其优越性勿庸讳言。网卡从速度上可分为10M网卡、100M网卡、10/100M自适应网卡。100M的网卡速度快但价格贵，而且得配较贵的100M的集线器，建议使用10/100M自适应网卡。网卡按接口分BNC接口和RJ-45接口，部分网卡二者兼而有之，但目前普遍使用RJ-45接口的网卡。BNC接口组成总线型网络，RJ-45接口组成星型网，后者稳定性更佳。网卡工作分单工和双工方式。单工即通信时在某一时刻只能接收（或发送）数据，二者不能同时进行，双工则相反。使用同轴电缆和BNC插头的网卡其双工方式无效，即为单工；使用双绞线和FJ-45插头的网卡才能使用双工方式。显然BNC插头的网卡已不能满足如今网络通信需要。 每一块网卡都有一个编号（Ethernet Address），该编号（Node ID）在世界范围内是唯一的，在网络应用中非常有用，应记录下来备用。集线器（HUB）普遍使用的有8口和16口两种，8口最多可连8台机器，16口可连16台。每级连一个HUB，需增加一根双绞线。如果只有两台机器相连，大可不必购买价格不菲的HUB，双绞线按1-3、2-6、5-7、4-8相对应的方法相连即可。但两台计算机距离若超过150米\u0026ndash;双绞线通讯极限长度，则应使用HUB或其它方法。双绞线即网线，分3类线、4类线、5类线，也有分为3类线、5类线、超5类线的。建议选购传输性能较优的5类线，而且应是非屏蔽的，如AMP牌1米才1.5元左右。购买网线前要先量好联网计算机之间距离，注意不是直线距离，多台联网的话，该距离指的是计算机到HUB的距离。 组网关键一步是制作网线。制作比较困难，而且需要专门工具，一般可以要求商家免费做好，但这就违背了DIY原则：Do It Yourself!多买几个RJ-45接头，向商家借来工具，开始自己动手吧：首先，用压线钳上的剥线刀在距双绞线顶部约2厘米处绕线割一圈，将绝缘线剥下，露出四对双绞线。四对双绞线中的每条芯线都标有特别的颜色，而且这些颜色有公认的规定。对调第3、5两根线后，RJ-45头带卡子的一面向下，双绞线从左到右依次为\u0026quot;白橙\u0026quot;、\u0026ldquo;橙\u0026rdquo;、\u0026ldquo;白绿\u0026rdquo;、\u0026ldquo;蓝\u0026rdquo;、\u0026ldquo;白蓝\u0026rdquo;、\u0026ldquo;绿\u0026rdquo;、\u0026ldquo;白棕\u0026rdquo;、\u0026ldquo;棕\u0026rdquo;。然后将网线剪齐并插入到RJ-45接头中，注意要插到底。接着将RJ-45接头插入压线钳中的压接槽中，把压线钳使劲压一下即可。双绞线另一头可依法炮制。网线做好后，将网线一头插入自己电脑网卡RJ-45接头中，一头插入HUB中，即可开机测试，若确信软件设置无误而无法联网，则应重做网线试试看。 物理连接后，若事先未做软件设置，则现在进入\u0026quot;瘟酒吧\u0026quot;，一般PCI网卡无需用到随卡所带的驱动盘，win9X会自动检测到新硬件，并可从win9X安装盘中找到网卡的驱动程序。安装完驱动程序按提示重启后，右击桌面\u0026quot;网上邻居\u0026quot;图标，点击\u0026quot;属性\u0026quot;，或打开\u0026quot;控制面板\u0026quot;的\u0026quot;网络\u0026quot;项，均可进入\u0026quot;网络\u0026quot;对话框进行设置(如图1)。\u0026ldquo;Microsoft网络客户\u0026rdquo;、\u0026ldquo;TCP/IP协议\u0026rdquo;、\u0026ldquo;Microsoft网络上的文件与打印机共享\u0026quot;是联网必须的，如果有缺，可以点\u0026quot;添加\u0026quot;按钮来加入。注意若要打联网游戏，还应加入Microsoft的\u0026quot;IPX/SPX兼容协议\u0026rdquo;。在该\u0026quot;配置\u0026quot;选项卡中，\u0026ldquo;主网络登录\u0026quot;可选为\u0026quot;Windows登录\u0026rdquo;，可节省一点启动时间，而不影响联网。在\u0026quot;标识\u0026quot;选项卡中，各台计算机\u0026quot;工作组\u0026quot;名称要一致，否则查找联网计算机会很不方便。\n图1\n为方便联网，在\u0026quot;网络\u0026quot;对话框\u0026quot;网络列表\u0026quot;中，双击与网络适配器相关联的\u0026quot;TCP/IP协议\u0026quot;，弹出\u0026quot;TCP/IP属性\u0026quot;对话框(如图2)。\n图2\n在\u0026quot;IP地址\u0026quot;选项卡中，选中\u0026quot;指定IP地址\u0026quot;复选框，填入IP地址\u0026quot;192.168.0.x\u0026quot;(x取整数1~254)，不同计算机x值应不同，再填入子网掩码\u0026quot;255.255.255.0\u0026quot;。其它如\u0026quot;WINS配置\u0026quot;、\u0026ldquo;网关\u0026rdquo;、\u0026ldquo;DNS配置\u0026quot;等选项卡采用默认设置即可。当一切设置完毕、重启后，按\u0026quot;WIN+E\u0026quot;打开资源管理器，右击欲共享驱动器，菜单中多了\u0026quot;共享\u0026quot;项，点击之，可设为\u0026quot;只读\u0026rdquo;、\u0026ldquo;完全\u0026rdquo;、\u0026ldquo;根据密码访问\u0026quot;共享方式，注意若设为\u0026quot;根据密码访问\u0026rdquo;，则只读密码、完全访问密码应该不同。也可以右击欲共享资源，选择\u0026quot;映射网络驱动器\u0026quot;，映射为某个盘，则在\u0026quot;我的电脑\u0026quot;中会多出一个盘。使用这个盘的条件是这个盘的\u0026quot;宿主\u0026quot;必须开机且已联网。如果在共享驱动器盘符前出现一双\u0026quot;奉献之手\u0026quot;，说明共享成功。这样，至多再一次重启，你就可以点击\u0026quot;网上邻居\u0026quot;浏览联网电脑的资源了。要共享打印机，则需在\u0026quot;我的电脑\u0026quot;中打开\u0026quot;打印机\u0026quot;，选择\u0026quot;添加打印机\u0026quot;，按\u0026quot;下一步\u0026quot;，选择\u0026quot;网络打印机\u0026quot;，再按\u0026quot;下一步\u0026quot;，在\u0026quot;网络路径或队列名\u0026quot;编辑框中填入相应内容，如\u0026quot;\\game\\hp\u0026quot;,\u0026ldquo;game\u0026quot;为共享打印机的计算机名，“hp”为打印机名，然后正确安装驱动程序即可。 联网成功后，各计算机可共享软驱、光驱等，可以实现网上广播等。在一台计算机上打开超级解霸2000，点击\u0026quot;控制\u0026quot;菜单下的\u0026quot;控制设置\u0026rdquo;，在DVB数字视频广播中选择允许DVB功能，然后点击配置DVB广播，在弹出的对话框中选择进行网络DVB广播，确定后开始播放VCD。接收方打开超级解霸2000，点击\u0026quot;文件\u0026quot;菜单中\u0026quot;接收 网络DVB广播\u0026quot;，弹出如图3的对话框，点确定后即可同时看VCD。\n图3\n不过，若播放方内存小于接收方内存，则接收方的声音会断断续续。也许联网打游戏是许多人的至爱，但你可想过在对等网上过把黑客瘾？当你用冰河软件成功控制对方计算机后，最好卸掉对方的杀毒软件，否则当对方杀毒软件弹出如图4的警告框时，你的阴谋就流产了。怎么样，还不快去感受网络的神奇？\n图4\n扫描版请详见如下：\n","date":"2019-07-09T08:06:00+08:00","image":"https://xmyy.com/article/DIY-Peer-to-Peer-Network-Setup/Peer-to-Peer_hu9f2cfd64ccbb2020d5398e8648a6868d_1294041_120x120_fill_q75_box_smart1.jpg","permalink":"https://xmyy.com/article/DIY-Peer-to-Peer-Network-Setup/","title":"组建对等网DIY"},{"content":"💁🏻‍♂️《上海微型计算机周刊》2000年10月30日第44期 《主页制作经验拾遗》 福建农林大学 童建平\n以下为文字版，扫描版请详见文末图片：\n现在人人在做主页，关键是如何推陈出新、吸引匆匆过客，提高访问量。小弟不才，点滴经验愿与各位分享。 首先您选择的免费主页空间很关键，要求访问速度快，不至于使访问者失去耐心；而且容量要适当大，方便日后主页扩容，免得换空间影响访问量。要切合实际、高瞻远瞩地规划主页总体结构，避免日后因维护困难而夭折。设计主页时，java程序固然可以使您的主页增色不少，但java会使浏览速度减慢至少50% ，故每个页面最好不要使用超过2个的java程序，首页尽量不要使用java程序。没有图片的主页是不可思议的，但单张图片不要超过30k,动画图片控制在15K左右为宜，每页图片总量不要超过60k，其下载速度才是可以让人接受的。若切实需要使用大图片，应使用分割技术。应该尽量给每张图片加上注解，使包括设置了禁显图片在内的访问者在图片下载前能知道网页的结构。 我们崇尚学习、借鉴著名网站的设计，但不提倡抄袭，要体现您的个性与风格。很多网站都有\u0026quot;设为主页\u0026quot;、\u0026ldquo;添加收藏夹\u0026quot;的链接，不过多是介绍如何手工操作，下面的代码则将使您的主页呈现新意：\n1 2 3 4 5 6 7 8 9 \u0026lt;a style=\u0026#34;cursor:hand;color:blue\u0026#34; href onClick=\u0026#34;this.style.behavior=\u0026#39;url(#default#homepage)\u0026#39;;this.setHomePage(\u0026#39;http://chinahacker2000.home.chinaren.com\u0026#39;);\u0026#34;\u0026gt;设为主页\u0026lt;/a\u0026gt; \u0026lt;script language=\u0026#34;JavaScript\u0026#34;\u0026gt; function bookmarkit() { window.external.addFavorite(\u0026#39;http://chinahacker2000.home.chinaren.com\u0026#39;,\u0026#39;童建平主页\u0026#39;) } if (document.all) //判断是否IE，只有IE支持。 document.write(\u0026#39;\u0026lt;a href=\u0026#34;#\u0026#34; onClick=\u0026#34;bookmarkit()\u0026#34;\u0026gt;加入收藏夹\u0026lt;/a\u0026gt;\u0026#39;) \u0026lt;/script\u0026gt; 您也应该有个\u0026quot;what\u0026rsquo;s new\u0026quot;页面，及时提供主页最近更新信息，若能配上滚动字幕显示，将更加醒目：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 \u0026lt;HTML\u0026gt; \u0026lt;HEAD\u0026gt; \u0026lt;TITLE\u0026gt;new message\u0026lt;/TITLE\u0026gt; \u0026lt;script language=\u0026#34;JavaScript\u0026#34;\u0026gt; \u0026lt;!-- lstart=50 loop=true speed=200 pr_step=5 function makeObj(obj,nest){ nest=(!nest)?\u0026#39;\u0026#39;:\u0026#39;document.\u0026#39;+nest+\u0026#39;.\u0026#39; this.css=(document.layers)? eval(nest+\u0026#39;document.\u0026#39;+obj):eval(obj+\u0026#39;.style\u0026#39;) this.scrollHeight=document.layers?this.css.document.height:eval(obj+\u0026#39;.offsetHeight\u0026#39;) this.up=goUp this.obj=obj+\u0026#34;Object\u0026#34; eval(this.obj+\u0026#34;=this\u0026#34;) return this } function goUp(speed){ if(parseInt(this.css.top)\u0026gt;-this.scrollHeight){ this.css.top=parseInt(this.css.top)-pr_step setTimeout(this.obj+\u0026#34;.up(\u0026#34;+speed+\u0026#34;)\u0026#34;,speed) }else if(loop){ this.css.top=lstart eval(this.obj+\u0026#34;.up(\u0026#34;+speed+\u0026#34;)\u0026#34;) } } function slideInit(){ oSlide=makeObj(\u0026#39;divNews\u0026#39;,\u0026#39;divCont\u0026#39;) oSlide.css.top=lstart oSlide.up(speed) } //--\u0026gt; \u0026lt;/script\u0026gt; \u0026lt;/HEAD\u0026gt; \u0026lt;BODY bgcolor=\u0026#34;#e6e6fa\u0026#34; OnLoad=\u0026#34;slideInit()\u0026#34;\u0026gt; \u0026lt;div id=\u0026#34;divCont\u0026#34; style=\u0026#34;position:absolute;width:300;height:100;top:60;left:0;clip:rect(0,250,150,0)\u0026#34;\u0026gt; \u0026lt;div id=\u0026#34;divNews\u0026#34;style=\u0026#34;position:absolute;top:0;left:0\u0026#34;\u0026gt; \u0026lt;font face=\u0026#34;Arial\u0026#34; color=\u0026#34;#408080\u0026#34;\u0026gt; 更新信息：\u0026lt;br\u0026gt; 改版主页全部上传完毕\u0026lt;br\u0026gt; http://chinahacker2000.home.chinaren.com\u0026lt;br\u0026gt; Your Message......\u0026lt;br\u0026gt; Your Message......\u0026lt;br\u0026gt; Your Message......\u0026lt;br\u0026gt; Your Message......\u0026lt;br\u0026gt; Your Message......\u0026lt;br\u0026gt; Your Message......\u0026lt;br\u0026gt; \u0026lt;/font\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/BODY\u0026gt; \u0026lt;/HTML\u0026gt; 现在制作网页的软件俯拾皆是(有点夸张^_^),但小弟认为还是应该自己动手用HTML、DHTML等设计主页，才能创造出有特色的主页。这样有个好处，一些文字特效大可不必动用Photoshop等制图，用DHTML就可实现，同时省去了图片下载时间：\n1 2 3 4 5 6 7 \u0026lt;font color=\u0026#34;blue\u0026#34; style=\u0026#34;width:50;height:0;filter:wave(Add=0,Phase=4,Freq=5,LightStrength=5,Strength=2)\u0026#34;\u0026gt;水波\u0026lt;/font\u0026gt; \u0026lt;font color=\u0026#34;red\u0026#34; style=\u0026#34;width:50;height:0;filter:Blur(Add=1,Direction=45,Strength=8)\u0026#34;\u0026gt;模糊化\u0026lt;/font\u0026gt; \u0026lt;font color=\u0026#34;purple\u0026#34; style=\u0026#34;width:50;height:0;filter:Glow(Color=#9966cc,Stength=8)\u0026#34;\u0026gt;光照\u0026lt;/font\u0026gt; \u0026lt;font color=\u0026#34;black\u0026#34; style=\u0026#34;width:90;height:0;filter:DropShadow(Color=black,OffX=6,OffY=6,Positive=1)\u0026#34;\u0026gt;阴影\u0026lt;/font\u0026gt; \u0026lt;font color=\u0026#34;black\u0026#34; style=\u0026#34;width:50;height:0;filter:Alpha(Opacity=0,FinishOpacity=75,Style=2)\u0026#34;\u0026gt;透明化\u0026lt;/font\u0026gt; \u0026lt;font color=\u0026#34;black\u0026#34; style=\u0026#34;width:50;height:0;filter:Mask(Color=fuchsia)\u0026#34;\u0026gt;反显\u0026lt;/font\u0026gt; \u0026lt;font color=\u0026#34;maroon\u0026#34; style=\u0026#34;width:80;height:0;filter:FlipH\u0026#34;\u0026gt;水平倒影\u0026lt;/font\u0026gt; 有人用小图片代替\u0026lt;ul\u0026gt;做段落标记，您可想过字体也可以用来做标记：\n1 \u0026lt;FONT color=#ff0000 face=Wingdings\u0026gt;1\u0026lt;/FONT\u0026gt; 最后，如果您自认为自己的主页做得不错，为防止您的主页被置于别人网页页面中\u0026mdash;-作为其框架，可以在首页文件的中加入如下代码：\n1 2 3 4 5 6 \u0026lt;script language=\u0026#34;JavaScript\u0026#34;\u0026gt; \u0026lt;!-- if (window.top.location.href!=window.location.href) window.top.location.href=window.location.href; --\u0026gt; \u0026lt;/script\u0026gt; 扫描版请详见如下：\n","date":"2019-07-09T08:05:00+08:00","image":"https://xmyy.com/article/Gleanings-from-homepage-creation-experience/luca-bravo-alS7ewQ41M8-unsplash_hu0a3f1163de68d0b9471979ebf0ecf11e_32400_120x120_fill_q75_box_smart1.jpg","permalink":"https://xmyy.com/article/Gleanings-from-homepage-creation-experience/","title":"主页制作经验拾遗"},{"content":"💁🏻‍♂️《互联网世界》2000年第10期 《winimage--制作镜像文件的好工具》 福建林学院（今 福建农林大学） 童建平\n以下为文字版，扫描版请详见文末图片：\n菜鸟我一年来常用WinImage软件格式化软盘，可近日才发现其强大的功能\u0026mdash;-制作镜像文件，如获至宝，惭愧之余，特向各位虾兄虾姐推荐之。 WinImage是个小软件(如图1)，安装后仅500KB左右，却有强大的格式化软盘功能，支持标准及非标准格式化，提供多种格式化类型，可将1.44MB软盘格式化为1.72MB(而HD-COPY最多只能格式化至1.68MB),且能自动修复坏扇区;经笔者一年来使用比较，发现其修复功能强于HD-COPY。 图1 使用WinImage格式化软盘,只需点击其工具栏\u0026quot;New\u0026quot;(左边第一个）图标，选择格式化类型，再点击\u0026quot;Format and Write disk\u0026quot;(左边第九个)图标，即可。格式化时还可选择音乐伴奏,可点击菜单\u0026quot;Options\\Settings\\Notification\u0026quot;进行设置。 然而，WinImage更强大的功能在于其读写img镜像文件功能。它支持多种类型的镜像文件，如后缀为img、imz、ima、iso、dsk、cif、wil、wlz等文件。如同Winzip能任意对打开的zip文件进行增减一样(顺便提一下Winzip7.0和Winzip8.0的注册方法一样：注册名：nianqing，注册码：434F0BAB)，在WinImage工具栏里点击\u0026quot;Open\u0026quot;(左边第二个)图标，打开一个img镜像文件，便在窗口中列出其所含文件，可在窗口中任意增减文件，如右击欲删除的文件，在弹出的菜单中选\u0026quot;Delete file\u0026quot;,即可将其从img文件中删掉;又如点击工具栏\u0026quot;Inject\u0026quot;(左边第五个)图标，从目录中选择某个文件，便可将其加入img文件;最后按\u0026quot;Save\u0026quot;(左边第三个)图标保存即可。值得一提的是，对于窗口中显示的文件列表，WinImage提供了保存功能，可点击菜单\u0026quot;File\\Save as Text/HTML\u0026quot;,再选择保存为文本或网页htm文件方式，便于直观查看img文件所含文件。不过，保存为htm文件时会产生部分乱码，不能显示汉字。究其原因，是WinImage软件设计者在转换后的htm文件中设置成\u0026quot;\u0026quot;,只须将\u0026quot;windows-1252\u0026quot;改成\u0026quot;gb2312\u0026quot;即可正常显示汉字，可在注册表中进行修改，这可说是WinImage的小瑕疵，也许下一版本会改正过来。 要建立新的img文件，若欲制作的文件为\u0026quot;c:\\create\u0026quot;中所有文件，则点击菜单\u0026quot;File\\Batch Assistant\u0026quot;( 也可点击\u0026quot;File\\Batch Assistant wizard\u0026quot;,根据制作精灵向导提示操作),弹出\u0026quot;Batch Assistant\u0026quot;对话框(如图2)，在左边\u0026quot;Source\u0026quot;框中选\u0026quot;Directory injecting\u0026quot;,再在\u0026quot;Directory injecting\u0026quot;框中选择目录\u0026quot;c:\\create\u0026quot;;然后在右边的\u0026quot;Destination\u0026quot;中选择\u0026quot;Set of image files\u0026quot;,在\u0026quot;Set of image files\u0026quot;框中点击\u0026quot;Browse\u0026quot;按钮，弹出\u0026quot;另存为\u0026quot;对话框，选择img文件保存目录如\u0026quot;c:\\img\u0026quot;，需要指出的是，WinImage默认文件保存格式为imz，为使其生成的文件能被HD-COPY等软件读写，可在保存时在\u0026quot;保存类型\u0026quot;选框中选择\u0026quot;All files\u0026quot;,再取名为\u0026quot;filename.img\u0026quot;即可。 图2 img文件必须经解压才可使用，我们可以用WinImage制成自解压文件，点击菜单\u0026quot;File\\Create Self-Extracting file\u0026quot;,根据向导提示即可完成，但未注册版对此功能有限制。 最后，谈一下解压img文件的小技巧。有些程序的编译器如Turbo C的安装文件(img文件)多达几张软盘，若一一解压至软盘，再分盘安装，实在太麻烦了。我们无须用软盘，只须用WinImage和subst命令即可完成安装。DOS路径替换命令subst可以建立虚拟驱动器，即可用一个驱动器字母代替完整的路径名来访问目录，格式为：subst d: d:path。现在我们先建立\u0026quot;c:\\setup\u0026quot;目录来存放解压img文件后生成的安装文件;再用WinImage打开文件\u0026quot;e:\\turboc30.dos\\disk1.img\u0026quot;,点击工具栏\u0026quot;Extract\u0026quot;(左边第四个)图标，选择解压目录,解压到\u0026quot;c:\\setup\u0026quot;;然后点击\u0026quot;开始\\程序\\MS-DOS方式\u0026quot;，在DOS提示符下键入\u0026quot;subst a: c:\\setup\u0026quot;,需要注意的是被替换的驱动器不能为当前缺省驱;再键入\u0026quot;a:\u0026quot;，执行install.exe开始安装;之后会有提示插入第二张安装盘，这时用Alt+Tab切换回Windows，删掉\u0026quot;c:\\setup\u0026quot;所有文件，解压\u0026quot;e:\\turbo30.dos\\disk2.img\u0026quot;到\u0026quot;c:\\setup\u0026quot;,又用Alt+Tab切换回Dos，按任意键继续安装;如此反复，直至安装完毕。有些安装程序允许我们简化操作，不难发现，大部分安装程序无非是依次分盘自解压各安装盘上的文件。因此，我们可以用WinImage将所有的镜像文件都解压到目录\u0026quot;c:\\setup\u0026quot;(这时点击菜单\u0026quot;File\\Batch Assistant\u0026quot;进行解压更方便，方法类同于前述建立新img文件),使用subst后再执行install.exe,安装程序会自行解压所有的安装文件，待其提示插入第二张安装盘时，只须一直按任意键忽略过去，即可完成安装！安装完要记住在DOS下键入\u0026quot;subst a: /d\u0026quot;,其中\u0026quot;/d\u0026quot;表示删除一个替换。用这种方法安装，省去频繁读写软盘的烦琐，也可避免因软盘可能存在坏扇区而影响安装进程，而此法安装所需时间大大低于常法，何乐而不用之呢？ WinImage还有诸多功能，有兴趣的朋友不妨自己加以研究，这里就不赘述了。可以在http://www.winimage.com/winimage.htm 下载得到30天试用版的WinImage，不过过了期其功能仍无限制，本人主页http://loveme1999.163.net也提供下载，并将尽快推出其解密注册汉化版。\n扫描版请详见如下：\n","date":"2019-07-09T08:04:00+08:00","image":"https://xmyy.com/article/WinImage-good-tool-for-making-images/WinImage_hu87f2147e8f5d493d897411a4e2c3085e_22037_120x120_fill_q75_box_smart1.jpg","permalink":"https://xmyy.com/article/WinImage-good-tool-for-making-images/","title":"winimage--制作镜像文件的好工具"},{"content":"💁🏻‍♂️《上海微型计算机周刊》2000年7月10日第28期 《网页颜色不再单调》 福建农林大学 童建平\n以下为文字版，扫描版请详见文末图片：\n个人主页如今是因特网上一道独特的风景，对因特网的发展是不可或缺的，这从很多个人站点加盟商业网站就可见一斑。为使主页更富有独特性，很多人情笃于网页编程，可是却苦于网页颜色的选择，毕竟在整个32bit的颜色里，相信是没有人可以完全记得住其色码的。小弟近日觅得web.colors和HTML Coloring Guide两款网页颜色编辑软件，如遇佳音，特介绍给各位共享。 web.colors（如图1）提供了几个预设的颜色搭配模板，在\u0026quot;HTML Colors\u0026quot;框中选择要设置的对象如背景色，然后在\u0026quot;Color Presets\u0026quot;框的\u0026quot;Themes\u0026quot;栏中选择内建好的搭配色系，其对应的RGB、HEX、VB编码就会即时出现在下面的\u0026quot;Color Settings\u0026quot;和\u0026quot;HTML Code\u0026quot;框中，并在\u0026quot;HTML Sample\u0026quot;框中给出其预览效果。如果不满意，可以直接点击\u0026quot;HTML Colors\u0026quot;框中的颜色条框，对其自定义。\n图1\n我们可以在\u0026quot;Color Presets\u0026quot;框中移动滑块进行调整，或者点击\u0026quot;Decimal（十进制）\u0026ldquo;和\u0026quot;HEX（十六进制）\u0026ldquo;按钮手工修改，以达到满意效果。web.colors提供了复制按钮，方便我们把满意的颜色编码粘贴于网页中，如何操作，看了图1就一目了然了，这里就不赘述了。我们也可以从中取色码用于字元的颜色设定。我们还可以点击下方的\u0026quot;Color Manager\u0026quot;和\u0026quot;Theme Manager\u0026quot;按钮，把编辑满意的搭配方案存盘,以便日后的使用。web.colors可以到http://www.columbusc.com/products/web.colors.htm 下载,大小为2MB。文件下载后在安装上需要注意，你可能会见到一个提示讯息告诉你你的系统中有些文件需要被更改，你必须先覆盖这些文件，重启后才能继续安装。 HTML Coloring Guide（如图2）是网页字元配色的好帮手，是一个简单好用的色码产生器，特别适合用来辅助惯用文字型编辑器撰写网页的人。使用者可以通过RGB三色调整轴或是直接由色盘挑选（点击右边的\u0026quot;PICK\u0026quot;按钮）的方式，轻松指定网页中BGCOLOR、TEXT、LINK、VLINK、ALINK等参数元的颜色，同样可在下面的框中即时看到配出的效果,同样可以对色码直接进行复制、剪贴。HTML Coloring Guide还有一个独特的功能就是可以从图片中吸取色素：点击\u0026quot;File\u0026quot;菜单的\u0026quot;Get Color from Picture\u0026rdquo;,即可用鼠标随意从图片中选取颜色。还可以点击\u0026quot;file\u0026quot;菜单中的\u0026quot;Get Background Picture\u0026quot;选择背景图片，下面自动产生的HTML标签语句会给出背景图的路径，如不满意，可点击\u0026quot;File\u0026quot;菜单的\u0026quot;Cancel Picture\u0026quot;取消选择。类似于web.colors内建的搭配色系，HTML Coloring Guide有一个可供使用者自订的常用配色列表（见于菜单\u0026quot;Presettings\u0026quot;中），方便使用者随时调用。HTML Coloring Guide是共享软件，可到http://usama.gjb.net或http://www.hoccer.com/adpipe 下载，大小为1.7MB。\n图2\n扫描版请详见如下：\n","date":"2019-07-09T08:03:00+08:00","image":"https://xmyy.com/article/Web-color-is-no-longer-monotonous/helena-hertz-wWZzXlDpMog-unsplash_hu45a5e3ad5e058da6a00650ed8fd40bea_15530_120x120_fill_q75_box_smart1.jpg","permalink":"https://xmyy.com/article/Web-color-is-no-longer-monotonous/","title":"网页颜色不再单调"},{"content":"💁🏻‍♂️《软件世界》 2000年第9期 《状态栏上的动态HTML技术》 福建农林大学 童建平\n以下为文字版，扫描版请详见文末图片：\n动态HTML（DHTML，Dynamic Hyper Text Markup Language）作为浏览器自带的功能，实际上只是一种概念，并不属于一种专门的技术，不过我们更热衷于将其看作一种网页创作技巧。且看DHTML如何在小小状态栏上尽展身手，从中DHTML之精彩可窥一斑。 一、跑马灯效果 在状态栏可实现多种跑马灯效果，但一般均为比较单调的从左往右或从右往左等滚动效果。而只须将下面代码粘贴于\u0026lt;head\u0026gt;和\u0026lt;/head\u0026gt;之间，既能实现字母（或文字）一个接一个地从右边飞向左边的动态效果。可以任意替换代码中的msgBan5中的字符串。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 \u0026lt;script Language=\u0026#34;JavaScript\u0026#34;\u0026gt; \u0026lt;!-- var msgBan5, msgBan5b, chaine5 = \u0026#34;\u0026#34;, chainePart5, delaiBan5, ban5; msgBan5=\u0026#39;http://loveme99.yeah.net\u0026#39;; banniere5(20); function banniere5(delai) { delaiBan5 = delai; if (chaine5.length == 0) { chaine5 = \u0026#34; \u0026#34;; msgBan5b = msgBan5; chainePart5 = \u0026#34;\u0026#34;; } else if (chaine5.length == 1) { while (msgBan5b.substring(0, 1) == \u0026#34; \u0026#34;) { chainePart5 = chainePart5 + chaine5; chaine5 = msgBan5b.substring(0, 1); msgBan5b = msgBan5b.substring(1, msgBan5b.length); } chainePart5 = chainePart5 + chaine5; chaine5 = msgBan5b.substring(0, 1); msgBan5b = msgBan5b.substring(1, msgBan5b.length); for (var i = 0; i \u0026lt; 120; i=i+2) chaine5 = \u0026#34; \u0026#34; + chaine5; } else chaine5 = chaine5.substring(10, chaine5.length); window.status = chainePart5 + chaine5; ban5 = window.setTimeout(\u0026#39;banniere5(delaiBan5)\u0026#39;,delai); } --\u0026gt; \u0026lt;/script\u0026gt; 二、实时时间 实时时间（包括具体日期）可以以文本框方式出现在网页中，也可以出现在状态栏上，但出现在状态栏上一般只能为难懂的英文格式，如下面的代码一显示格式为\u0026quot;Web Jun 9 13:47:43 UTC+0800 1999\u0026quot;。本人经过探索，可实现中文显示，只须将下面的代码二粘贴于\u0026lt;head\u0026gt;和\u0026lt;/head\u0026gt;之间，然后将\u0026lt;body\u0026gt;改为\u0026lt;BODY onLoad=\u0026quot;startclock()\u0026quot;\u0026gt;即可。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 \u0026lt;!--Begin代码一--\u0026gt; \u0026lt;HTML\u0026gt;\u0026lt;HEAD\u0026gt;\u0026lt;TITLE\u0026gt;\u0026lt;/TITLE\u0026gt; \u0026lt;script language=\u0026#34;JavaScript\u0026#34;\u0026gt; \u0026lt;!-- function doClock() { window.setTimeout(\u0026#34;doClock()\u0026#34;,1000); today=new Date(); self.status=today.toString(); } --\u0026gt; \u0026lt;/script\u0026gt; \u0026lt;/HEAD\u0026gt; \u0026lt;BODY onload=\u0026#34;doClock()\u0026#34;\u0026gt;\u0026lt;/BODY\u0026gt;\u0026lt;/HTML\u0026gt; \u0026lt;!--End代码一--\u0026gt; \u0026lt;!--Begin代码二--\u0026gt; \u0026lt;SCRIPT LANGUAGE=JAVASCRIPT\u0026gt; \u0026lt;!-- var timerID = null; var timerRunning = false; chin=new Array(\u0026#34;日\u0026#34;,\u0026#34;一\u0026#34;,\u0026#34;二\u0026#34;,\u0026#34;三\u0026#34;,\u0026#34;四\u0026#34;,\u0026#34;五\u0026#34;,\u0026#34;六\u0026#34;) function stopclock (){ if(timerRunning) clearTimeout(timerID); timerRunning = false; } function showtime () { var now = new Date(); var hours = now.getHours(); var minutes = now.getMinutes(); var seconds = now.getSeconds() var day=now.getDay() var date=now.getDate() var month=now.getMonth() var year=now.getYear() var second=now.getSeconds() var riqi=(month+1)+\u0026#34;月\u0026#34;+date+\u0026#34;日\u0026#34; var xingqi=\u0026#34;星期\u0026#34;+chin[day] var nian=(year)+\u0026#34;年\u0026#34; var timeValue = \u0026#34;\u0026#34; timeValue +=\u0026#34;现在时间是：\u0026#34; timeValue +=nian timeValue +=\u0026#34; \u0026#34; timeValue +=riqi+\u0026#34; \u0026#34; timeValue +=\u0026#34; \u0026#34; timeValue += (hours \u0026gt;= 12) ? \u0026#34;下午\u0026#34; : \u0026#34;上午\u0026#34; timeValue +=\u0026#34; \u0026#34; timeValue +=((hours \u0026gt;12) ? hours -12 :hours) timeValue += ((minutes \u0026lt; 10) ? \u0026#34;:0\u0026#34; : \u0026#34;:\u0026#34;) + minutes timeValue += ((seconds \u0026lt; 10) ? \u0026#34;:0\u0026#34; : \u0026#34;:\u0026#34;) + seconds timeValue +=\u0026#34; \u0026#34; timeValue +=xingqi+\u0026#34; \u0026#34; window.status = timeValue; timerID = setTimeout(\u0026#34;showtime()\u0026#34;,1000); timerRunning = true; } function startclock () { stopclock(); showtime(); } --\u0026gt; \u0026lt;/SCRIPT\u0026gt; \u0026lt;!--End代码二--\u0026gt; 三、来访次数统计 将以下代码粘贴于\u0026lt;head\u0026gt;和\u0026lt;/head\u0026gt;之间，用于在状态栏显示来访者是第几次来访。如果将以下代码与上面的“跑马灯效果”代码结合起来，使之动态化，是不是可以带给来访者一些惊喜呢？将下面代码最后一句\u0026quot;window.status=string;\u0026quot;删掉，其后粘贴“跑马灯效果”代码的主体部分（即\u0026quot;\u0026lt;!--\u0026quot;和\u0026quot;--\u0026gt;\u0026quot;之间的代码），再将msgBan5字符串内容换成string，即将“msgBan5='http://loveme99.yeah.net';”换成“msgBan5=string;”，即可。\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 \u0026lt;script language=\u0026#34;JavaScript\u0026#34;\u0026gt; \u0026lt;!-- var caution=false var string=\u0026#34;\u0026#34; function setCookie(name,value,expires,path,domain,secure) { var curCookie=name+\u0026#34;=\u0026#34;+escape(value)+((expires)?\u0026#34;;expires=\u0026#34;+expires.toGMTString():\u0026#34;\u0026#34;)+((path)?\u0026#34;;domain=\u0026#34;+domain:\u0026#34;\u0026#34;)+((secure)?\u0026#34;;secure\u0026#34;:\u0026#34;\u0026#34;) if(!caution||(name+\u0026#34;=\u0026#34;+escape(value)).length\u0026lt;=4000) document.cookie=curCookie else if(confirm(\u0026#34;小甜饼文件过大，删除？\u0026#34;)) document.cookie=curCookie } function getCookie(name) { var prefix=name+\u0026#34;=\u0026#34; var cookieStartIndex=document.cookie.indexOf(prefix) if(cookieStartIndex==-1) return null var cookieEndIndex=document.cookie.indexOf(\u0026#34;;\u0026#34;,cookieStartIndex+prefix.length) if(cookieEndIndex==-1) cookieEndIndex=document.cookie.length return unescape(document.cookie.substring(cookieStartIndex+prefix.length,cookieEndIndex)) } function deleteCookie(name,path,domain) { if(getCookie(name)) { document.cookie=name+\u0026#34;=\u0026#34;+((path)?\u0026#34;;path=\u0026#34;+path:\u0026#34;\u0026#34;)+((domain)?\u0026#34;;domain=\u0026#34;+domain:\u0026#34;\u0026#34;)+\u0026#34;;expires=Thu,01-Jan-70 00:00:01 GMT\u0026#34; } } function fixDate(date) { var base=new Date(0) var skew=base.getTime() if(skew\u0026gt;0) date.setTime(date.getTime()-skew) } var now=new Date() fixDate(now) now.setTime(now.getTime()+365*24*60*60*1000) var visits=getCookie(\u0026#34;counter\u0026#34;) if(!visits) visits=1 else visits=parseInt(visits)+1 setCookie(\u0026#34;counter\u0026#34;,visits,now) string+=\u0026#34;欢迎您第\u0026#34;+visits+\u0026#34;次访问本主页。\u0026#34; window.status=string; //--\u0026gt; \u0026lt;/script\u0026gt; 如今在因特网上炙手可热的DHTML，越来越亲近我们。只要我们不懈努力，必能尽情领略其壮丽风景。\n扫描版请详见如下：\n","date":"2019-07-09T08:02:00+08:00","image":"https://xmyy.com/article/Dynamic-HTML-technology-on-the-status-bar/the-creative-exchange-d2zvqp3fpro-unsplash_huf941de4769045cdfa8c9ee7036519a2a_35369_120x120_fill_q75_box_smart1.jpg","permalink":"https://xmyy.com/article/Dynamic-HTML-technology-on-the-status-bar/","title":"状态栏上的动态HTML技术"},{"content":"💁🏻‍♂️《上海微型计算机周刊》2000年6月5日第23期 《动态HTML技术精彩实例》 福建农林大学 童建平\n以下为文字版，扫描版请详见文末图片：\n要想提高自己主页的知名度，就是要有可观的回头客，这就要求主页能给人良好的印象，而动态HTML(DHTML)技术制作的动态网页，能产生令人震撼的视觉冲击效果，使你的主页令人流连忘返。 下面介绍几个精彩实例，以飨读者。 一、飞行的图片 在\u0026lt;head\u0026gt;中适当位置加入如下代码：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 \u0026lt;script language=\u0026#34;JavaScript\u0026#34;\u0026gt; \u0026lt;!-- var left=0; var top=200; var stepx=2; function jump() { left=left+stepx; if(left\u0026gt;710) stepx=-2; if(-left\u0026gt;0) stepx=2; sign.style.left=left; sign.style.top=top; timeID=setTimeout(\u0026#34;jump()\u0026#34;,100); } --\u0026gt; \u0026lt;/script\u0026gt; \u0026lt;body\u0026gt;改为\u0026lt;body onload=\u0026quot;t=setTimeout('jump()',20)\u0026quot;\u0026gt;,然后在body后适当位置加入如下代码：\n1 2 3 4 5 \u0026lt;div id=\u0026#34;sign\u0026#34; style=\u0026#34;position:absolute;left:0;top:200;width:135;\u0026#34;\u0026gt; \u0026lt;img src=\u0026#34;myphoto.jpg\u0026#34; width=\u0026#34;56\u0026#34; height=\u0026#34;44\u0026#34; \u0026gt; \u0026lt;/div\u0026gt; 这样，选定的图片就会在窗口中上部从左往右飞行，碰到右边界向左飞行，不断循环。 二、弹簧文字 在\u0026lt;head\u0026gt;中适当位置加入如下代码：\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 \u0026lt;script language=\u0026#34;JavaScript\u0026#34;\u0026gt; \u0026lt;!-- var sizes=new Array(\u0026#34;-2px\u0026#34;,\u0026#34;-1px\u0026#34;,\u0026#34;0px\u0026#34;,\u0026#34;1px\u0026#34;,\u0026#34;2px\u0026#34;,\u0026#34;3px\u0026#34;,\u0026#34;4px\u0026#34;,\u0026#34;5px\u0026#34;,\u0026#34;6px\u0026#34;,\u0026#34;7px\u0026#34;,\u0026#34;8px\u0026#34;,\u0026#34;9px\u0026#34;,\u0026#34;10px\u0026#34;,\u0026#34;11px\u0026#34;,\u0026#34;12px\u0026#34;,\u0026#34;13px\u0026#34;); sizes.pos=0; function rubberBand() { var el=document.all.elastic; if(null==el.direction) el.direction=1; else if((sizes.pos\u0026gt;sizes.length-2)||(0==sizes.pos)) el.direction*=-1; el.style.letterSpacing=sizes[sizes.pos+=el.direction]; } --\u0026gt; \u0026lt;/script\u0026gt; \u0026lt;body\u0026gt;改为\u0026lt;body onload=\u0026quot;setInterval('rubberBand()',150)\u0026quot;\u0026gt;，然后在body后适当位置加入如下代码：\n1 2 3 4 5 \u0026lt;center\u0026gt; \u0026lt;h2 id=\u0026#34;elastic\u0026#34;\u0026gt;弹簧文字\u0026lt;/h2\u0026gt; \u0026lt;/center\u0026gt; 当然可在上述代码中加入文字的大小和颜色等，文字就会像弹簧一样左右伸缩。 三、强制浏览者点击某链接 现今很多个人主页都在做广告，可苦于游览者往往不会主动点击广告链接。如果你的主页有个项目做得不错，如“软件下载”一栏提供不少好的软件，可浏览者尽下载软件，没有给你一个好处。你现在可以通过下面方法强制浏览者先点击广告，再进入下载页面下载软件。 在body后加入如下代码:\n1 2 3 4 5 6 7 8 9 \u0026lt;script language=\u0026#34;JavaScript\u0026#34;\u0026gt; \u0026lt;!-- var Flag=0 --\u0026gt; \u0026lt;/script\u0026gt; 假如你的广告链接图为\u0026quot;1.jpg\u0026quot;,链接网址为\u0026quot;http://www.1.com\u0026quot;,则应采用如下代码：\n1 \u0026lt;a href=\u0026#34;http://www.1.com\u0026#34; target=\u0026#34;_blank\u0026#34; onclick=\u0026#34;Flag=1;return true\u0026#34;\u0026gt;\u0026lt;img src=\u0026#34;1.jpg\u0026#34; border=\u0026#34;0\u0026#34; height=\u0026#34;\u0026#34; width=\u0026#34;\u0026#34;\u0026gt;\u0026lt;/a\u0026gt; 然后你才想让浏览者进入你的网页\u0026quot;download.htm\u0026quot;,则加入如下代码：\n1 \u0026lt;a href=\u0026#34;download.htm\u0026#34; target=\u0026#34;_blank\u0026#34; ；onclick=\u0026#34;if(Flag==1) return true; else {alert(\u0026#39;如果您想从本站下载软件，请先点击上面的广告，再把它最小化，这不会影响您的浏览，多谢！\u0026#39;); return false}\u0026#34; onmouseover=\u0026#34;return true\u0026#34;\u0026gt;软件下载\u0026lt;/a\u0026gt; 注意：上面alert后的内容在编写时不能断行，否则会出错。 由于篇幅关系,仅提供上述三例，想得到更多实例的朋友，请访问本人即将开通的主页：http://loveme1999.163.net,近期也欢迎光临本人原主页：http://loveme99.yeah.net，顺便提一下，本人主页即将上传解密后的正版KV300和瑞星千禧版，欢迎届时下载。\n扫描版请详见如下：\n","date":"2019-07-09T08:01:00+08:00","image":"https://xmyy.com/article/Dynamic-HTML-technology-wonderful-examples/florian-klauer-nptLmg6jqDo-unsplash_hudd55eb551148c9c9bd71838523f83577_791591_120x120_fill_box_smart1_3.png","permalink":"https://xmyy.com/article/Dynamic-HTML-technology-wonderful-examples/","title":"动态HTML技术精彩实例"},{"content":"💁🏻‍♂️《数理天地(高中版》 1997年第5期 《一道不等式题的简证》 福建省华安一中高三(1)班 童建平\n加拿大某中等数学杂志曾于1987年刊出一习题：\n\u0026hellip;\u0026hellip;\n文字版待补充完整\n扫描版请详见如下：\n","date":"2019-07-08T08:06:00+08:00","image":"https://xmyy.com/article/A-short-proof-of-an-inequality-question/hudai-gayiran-3Od_VKcDEAA-unsplash_hu7585106072455131bbf9a3d2ab17abe8_287186_120x120_fill_box_smart1_3.png","permalink":"https://xmyy.com/article/A-short-proof-of-an-inequality-question/","title":"一道不等式题的简证"},{"content":"💁🏻‍♂️《数理天地》高中版 1997年第1期 《求知贵探索》 福建省华安一中高三(1)班 童建平\n以下为文字版，扫描版请详见文末图片：\n入高一年以来，我一直疑惑于这样一个生活现象： 每逢夏秋季节的炎日中午，当有人用湿手碰及我家某个水龙头的顶部中间金属块时，总会如遭电击，不由得迅速缩回手去。 这种现象该如何解释呢？我曾求教于别人，但没有得到满意的答复。 8月19日，阅读了才收到的96年第4期《数理天地》，上面有一位低我一届的同学的文章————《盆底的沙丘是怎样形成的》，深为他的探索精神感动，在这位同学精神的鼓舞之下，遂萌发自己去解决生活疑问的想法。当晚入睡前，我躺在床上思考这个疑问。不久，想到去年冬天家里那个水龙头坏了，换了个新的。接着又想：该现象是有如触电，就是说有电流，那么电流怎么产生的呢？现在又为什么对这现象难觅芳踪呢？这么说来，换下的坏水龙头可能是解疑的关键了。这时，我遽然想到换下水龙头时，看见其接口处有红黄色的“锈水”。一个“锈”字使我茅塞顿开，使我马上想到前几天刚学习的“金属（铁）的腐蚀”，使我恍然大悟：这个现象不正是“原电池”的一个活生生的例子吗？ 然而，这现象与化学教材里所讲的不尽相同。教材里讲述的的是暴露在空气中的铁的腐蚀(主要是吸氧腐蚀)，而该现象针对的则是自来水管中主要成分铁（表面有防护层〉的腐蚀。该现象中，水龙头接口处的防护层受损，使铁与自来水接触，而自来水公司水库里，溶有CO2的水经加压(可使CO2溶解得更多些)后流往千管。从我家附近到我家之间长长的自来水管暴露于烈日之下，使水温升高，促进H2O和H2CO3电离出H+，使H+增多。这样，在保护层受损的铁的表面形成了一层电解质溶液的薄膜，与铁(负极)及其里面少量的碳(正极)构成了原电池。发生原电池反应后，强度不一，手是并不算小的电流就能通过水龙头的金属块为湿手的人体所感知。 该现象中，02较难溶于水，所以吸氧腐蚀少有发生。自来水中虽然存在一些金属离子，但引起的铁的化学腐蚀也微不足道。一言以蔽之，该现象主要属铁的析氢腐蚀。 我以上的分析不知是否正确，现写出来，请老师、同学们指正。我认为《数理天地》确实是份好刊物，她鼓励我们思考、探素生活中的科学现象，活用我们学到的知识，发展我们的思维。\n扫描版请详见如下：\n","date":"2019-07-08T08:05:00+08:00","image":"https://xmyy.com/article/knowing-in-exploration/pawel-czerwinski-8uZPynIu-rQ-unsplash_huc410a17581f217c41fcddfff0a7b3d3d_91554_120x120_fill_q75_box_smart1.jpg","permalink":"https://xmyy.com/article/knowing-in-exploration/","title":"求知贵探索"},{"content":"💁🏻‍♂️《中学生知识报》高中版 1996年12月11日 《学一点“行列式”知识》 福建省华安一中高三(1)班 童建平\n“行列式”系高中选修内容,但自学并不难。作为21世纪的人才，不能只为高考而学习。学一点“行列式” , 受益匪浅。有些三角恒等式,其常规证法较繁,若能和用行列式知识证之,很是简便。例如： \u0026hellip;\u0026hellip; 文字版待补充完整\n扫描版请详见如下：\n","date":"2019-07-08T08:04:00+08:00","image":"https://xmyy.com/article/Learn-a-little-about-determinants/matt-le-SJSpo9hQf7s-unsplash_hu6739a3bd666f22513174622a86ed38a1_745517_120x120_fill_box_smart1_3.png","permalink":"https://xmyy.com/article/Learn-a-little-about-determinants/","title":"学一点“行列式”知识"},{"content":"💁🏻‍♂️《青少年日记》 1996年第7期 《轸念陈景润》 福建省华安一中高二(1)班 童建平\n以下为文字版，扫描版请详见文末图片：\n1996年3月27日 星期三 每晚七点至七点半，我总习惯一边看书,一边收听新闻，我自知没有周总理那样一脑两用的本领，但通过这种方式却也收获颇丰。然而今天，我的如此做法受到了巨大的挑战，因为早在一星期前无线电波就载着\u0026quot;陈景润同志逝世\u0026quot;的噩耗，传遍了中华大地，而我今天才在历史课上不经意地从老师那里\u0026quot;收听\u0026quot;到这个消息。 对此，作为一名立志于数学研究的高中生，我吃惊自己没有为这位哥德巴赫猜想研究之大纛的溘逝奉献太多的悲哀，但更吃惊自己一向标榜稔知众多科学家而却迟至今日才获知这个不幸的消息。此情此景，莫不是对我的最大讽刺?我不得不对自己的\u0026quot;多知\u0026quot;洒下揶揄，为自己的\u0026quot;无知\u0026quot;演习擗踊。 下午放学，我急忙跑到县图书馆，在阅览室的《人民日报》上找到了《陈景润同志逝世》及《陈景润，精神魅力永存》两篇文章。于是，我恳求管理员借给我复印，允诺翌日还报，我终如愿。 3月28日 星期四 下午放学，我到县图书馆还了昨日所借的报后，又借了近期的《爱我中华》，接着骑车去复印该杂志中《不忍追踪陈景润》一文。 4月1日 星期一 今早第三节体育课时，天公仍在为数学巨星的陨落而潸潸落泪。教室里，我在细读《福建日报》专版介绍陈景润的文章。阅后，凝望窗外，天地间氤氲着悲戚的气息，我心头隐隐升起莫名的哀伤。我在遐想：今年2月底，我刚从县图书馆抄完《韶山的节日》一书所转载的1978年徐迟之作\u0026mdash;\u0026mdash;《哥德巴赫猜想》，刚从中亲近陈景润，孰料这才不过一个月，陈景润就去世了！这怎能不使我轸念他？！ 第四节课上，物理老师津津有味地讲着，而我却无心听讲，坐在教室最后面的座位上，给远在湖北的\u0026quot;笔友\u0026quot;去信，描述了我的心迹。此番陈述，想她定能分担我的哀思。 下午又去复印从县图书馆借的1996年3月27日《文汇报》中徐迟之作\u0026mdash;\u0026mdash;《悼念陈景润》。 买一本16开日记本，专门粘贴有关陈景润的文章。 4月3日 星期三 分别汇款5元、10元给《人民日报》、《福建日报》的两位记者，简短附信，希望得到陈景润照片。 剪下4月2日《每周文摘》中《陈景润魂归哥德巴赫》一文。 4月4日 星期四 复印从县图书馆借的1996年3月30日《中国青年报》中《哀乐低回送巨星》一文。 剪下1996年3月30日《周末》中著名数学教授单墫所撰《捧得一颗心来，不带半根草去\u0026mdash;\u0026mdash;怀念陈景润先生》一文。 还发现1996年3月30日《农民日报》也刊有《告别陈景润》一文。连日来，众多报刊纷纷发表文章纪念陈景润，这就折射出陈景润的深远影响。而我在整理、粘贴这些文章时悲伤的心潮总会莫明地涌动，这能说明什么呢？\n扫描版请详见如下：\n","date":"2019-07-08T08:03:00+08:00","image":"https://xmyy.com/article/Tribute-to-ChenJingrun/luca-bravo-alS7ewQ41M8-unsplash_hu377bba92e8cbf6b976d2f63b9c040363_114214_120x120_fill_q75_box_smart1.jpg","permalink":"https://xmyy.com/article/Tribute-to-ChenJingrun/","title":"轸念陈景润"},{"content":"💁🏻‍♂️《数理天地》高中版 1996年第4期 《一道化学题的数学解法》 福建省华安一中高二(1)班 童建平\n文字版待补充完整\n扫描版请详见如下：\n","date":"2019-07-08T08:02:00+08:00","image":"https://xmyy.com/article/Mathematical-solution-to-a-chemistry-problem/helena-hertz-wWZzXlDpMog-unsplash_hu007f4fd1d182b9f2ee312f4624891418_23176_120x120_fill_box_smart1_3.png","permalink":"https://xmyy.com/article/Mathematical-solution-to-a-chemistry-problem/","title":"一道化学题的数学解法"},{"content":"💁🏻‍♂️《数理天地》高中版 1995年第5期 《一道数学赛题的别证》 福建省华安一中高二(1)班 童建平\n下面是94年全国高中数学联赛第二试第三大题：\n\u0026hellip;\u0026hellip;\n文字版待补充完整\n扫描版请详见如下：\n","date":"2019-07-08T08:01:00+08:00","image":"https://xmyy.com/article/An-alternative-proof-of-a-math-competition-problem/the-creative-exchange-d2zvqp3fpro-unsplash_hu4d296d84601fafff32d8b6d6ebd9c76e_233813_120x120_fill_q75_box_smart1.jpg","permalink":"https://xmyy.com/article/An-alternative-proof-of-a-math-competition-problem/","title":"一道数学赛题的别证"}]