宝塔面板安全配置避坑指南:5个新手常犯的错误及修复方法

解决宝塔SSH安全风险问题 解决方案:【/etc/security/pwquality.conf】 把minclass(至少包含小写字母、大写字母、数字、特殊字符等4类字符中等3类或4类)设置为3或4。1、在【/etc/ssh/sshd_config】文件中设置【ClientAliveInterval】设置为600到900之间。风险描述:【/etc/login.defs】文件中把PASS_MAX_DAYS设置为90-180之间。风险描述:【/etc/login.defs】文件中把PASS_MIN_DAYS大于等于7。 阅读详情

宝塔面板安全配置避坑指南:5个新手常犯的错误及修复方法

刚接触服务器管理,用上宝塔面板,那种图形化点几下就能建站、配环境的畅快感,确实让人着迷。但很多朋友,尤其是个人开发者和小团队运维,常常在享受便利的同时,忽略了面板背后那扇通往服务器的“大门”也需要上好几道锁。安全配置不是一劳永逸的开关,而是一个持续的过程,很多隐患恰恰就藏在那些看似“默认”或“方便”的设置里。今天,我们不谈那些高深莫测的理论,就聚焦在几个新手最容易踩进去的坑,看看它们具体是怎么发生的,以及如何用最直接有效的方法填平它。无论你是刚部署好第一个WordPress博客,还是在为公司的测试环境保驾护航,避开这些常见错误,都能让你的服务器安全基线提升一个显著的档次。

1. 门户大开:默认端口与弱密码的双重陷阱

新手拿到服务器,安装完宝塔,第一件事往往是赶紧用默认的8888端口和安装完成后提示的初始密码登录进去。这个操作流程本身没问题,但问题在于,很多人登录之后,就忙着去部署网站、安装MySQL,完全忘了修改这两项最基础的配置。这相当于把你家金库的大门,装在了人来人往的大街上,并且锁还是出厂设置的通用密码。

错误表现:长期使用宝塔面板的默认访问端口(8888)和安装时生成的随机密码,甚至为了方便记忆,将密码改为123456、admin等简单组合。

风险分析:互联网上存在大量自动化扫描工具,它们7x24小时不间断地扫描公网IP的常见端口。8888端口是宝塔的显著特征,一旦被扫到,攻击者就会尝试用弱密码字典进行暴力破解。你的初始随机密码如果强度不够,或者你后来改成了一个简单密码,被攻破只是时间问题。

注意:不要以为自己的服务器“没人知道”,基于IP段的批量扫描是无差别的。我曾帮一位朋友排查问题,发现他的面板在三天内被来自不同国家的IP尝试登录了上万次,仅仅因为他忘了改端口。

修复与加固方法:

  1. 立即修改面板端口:

    • 登录宝塔面板,进入 面板设置 > 基本设置。
    • 找到 面板端口,将其修改为一个在 1024 到 65535 之间、不常见的数字,例如 35478。避免使用 8080、8443 等同样常见的替代端口。
    • 点击保存,面板会自动重启。务必提前在服务器的防火墙(如宝塔的“安全”页面)和云服务商的安全组规则中,放行这个新端口,否则会导致无法访问。
  2. 强制使用高强度密码并启用二次验证:

    • 密码策略:在 面板设置 > 安全 中,可以修改面板密码。一个强密码应至少包含12位,混合大小写字母、数字和特殊符号。你可以使用密码管理器生成并保存。
    • 开启双因素认证(2FA):这是比单纯强密码更有效的一步。在同一安全设置页面,启用 双因素认证。使用手机应用如Google Authenticator或宝塔官方APP扫描二维码绑定。此后登录,除了密码,还需输入APP生成的、每分钟变化一次的6位动态验证码。即使密码意外泄露,攻击者也无法登录。
    # 一个检查服务器上当前开放端口的快速命令(在宝塔终端或SSH中执行)
    # 这可以帮助你确认除了必要的服务(如SSH的22,Web的80/443,和你新设的面板端口)外,没有其他不必要的端口开放
    sudo netstat -tulpn | grep LISTEN
    

    执行后,你会看到类似下面的输出,请逐一核对每个监听端口是否都是你明确需要的服务:

    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1234/sshd
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      5678/nginx: master
    tcp        0      0 0.0.0.0:35478           0.0.0.0:*               LISTEN      9101/python
    tcp6       0      0 :::3306                 :::*                    LISTEN      1122/mysqld
    

    上例中,35478是修改后的宝塔面板端口,3306是MySQL数据库的默认端口——这引出了我们下一个要讲的坑。

2. 数据库的“隐形门”:默认端口与远程访问

很多新手在使用宝塔一键部署WordPress、Discuz等应用时,数据库(通常是MySQL或MariaDB)会被自动安装并配置好。方便是方便,但默认设置下,数据库服务往往监听在所有网络接口(0.0.0.0)的默认端口3306上,并且可能允许远程连接。这意味着,如果服务器防火墙(或安全组)不小心对公网放行了3306端口,你的数据库就直接暴露在了互联网上。

错误表现:数据库服务使用默认端口3306,且未限制访问来源(绑定地址为0.0.0.0),同时设置了弱密码。在云服务器安全组中,错误地添加了0.0.0.0/0(全网段)对3306端口的放行规则。

风险分析:暴露的3306端口是攻击者的重点目标。他们会使用自动化工具尝试暴力破解数据库的root密码。一旦成功,攻击者可以窃取、篡改或删除所有网站数据,甚至通过数据库提权获取整个服务器的控制权。

修复与加固方法:

  1. 修改数据库默认端口:

    • 这不是必须的,但结合IP白名单是很好的纵深防御措施。在宝塔面板的 数据库 页面,找到对应的数据库实例(如MySQL)。
    • 停止数据库服务。然后通过面板的文件管理器,编辑数据库的配置文件(如MySQL通常为/etc/my.cnf或/etc/my.cnf.d/server.cnf)。
    • 在 [mysqld] 段落下,添加或修改一行:port = 新端口号(例如 33060)。
    • 保存文件,重启数据库服务。同样,记得在防火墙规则中更新这个新端口(如果允许远程访问的话,但通常不建议)。
  2. 禁用数据库的远程访问(最推荐):

    • 对于绝大多数单服务器架构,Web应用(如PHP)和数据库在同一台机器上,完全不需要开启数据库的远程访问。
    • 在数据库配置文件中,找到 bind-address 参数,将其设置为 127.0.0.1(本地回环地址)。这样数据库只接受来自本机的连接。
    • 在宝塔面板的 数据库 页面,将每个数据库的 访问权限 设置为 本地服务器。
  3. 如果必须远程管理数据库:

    • 绝不直接暴露:不要将数据库端口直接映射到公网。正确做法是通过 SSH隧道 进行连接。
    • 使用堡垒机或跳板:先通过SSH登录到服务器,再从本地连接服务器的127.0.0.1:3306。
    • 严格IP白名单:如果业务必须允许特定IP远程访问,在数据库配置中设置bind-address为服务器内网IP,并在防火墙/安全组中精确地只放行特定来源IP对数据库端口的访问,禁止0.0.0.0/0。

    下表对比了数据库连接的不同配置方式及其安全等级:

配置方式访问方式暴露程度安全等级适用场景
默认配置允许所有IP远程连接直接暴露在公网极低无任何安全要求的测试环境(不推荐)
仅修改端口允许所有IP远程连接直接暴露在公网(非默认端口)低安全性无实质提升,仅防初级扫描
绑定127.0.0.1仅允许本机连接完全不暴露高最推荐,Web与DB同机部署
绑定内网IP+防火墙白名单允许特定IP通过内网/专线连接有限暴露中高多服务器内网通信,或通过VPN访问

3. 文件权限的“宽松主义”:网站目录与敏感文件

为了方便调试和文件上传,新手常常会给网站目录设置过于宽松的权限,比如777(所有者、组、其他人均可读、可写、可执行)。在宝塔面板中,虽然默认创建的网站目录权限相对合理(如755),但在处理某些插件、主题更新或缓存目录时,手动执行chmod -R 777成了“万能解药”。

错误表现:将整个网站根目录(如/www/wwwroot/yoursite)及其子文件的权限递归设置为777。或者,将Web服务器(如Nginx/Apache)的运行用户设置为root。

风险分析:777权限意味着任何能访问到服务器的进程(包括被入侵的Web应用)都可以任意修改、删除你的网站文件,甚至上传可执行脚本(如Webshell)。如果Web服务器以root权限运行,一旦其存在漏洞被利用,攻击者将直接获得服务器的最高控制权。

修复与加固方法:

  1. 遵循最小权限原则设置文件权限:

    • 目录:通常设置为 755 (所有者可读可写可执行,组和其他人可读可执行)。
    • 文件:通常设置为 644 (所有者可读可写,组和其他人只读)。
    • 对于需要Web服务器写入的特定目录(如WordPress的wp-content/uploads),可以只给该目录放宽权限为755,或更精细地设置所属用户组。
    # 一个修复网站目录权限的示例命令集(请根据你的实际路径调整)
    # 假设网站根目录为 /www/wwwroot/mysite
    cd /www/wwwroot/mysite
    # 1. 将所有目录权限设置为755
    find . -type d -exec chmod 755 {} \;
    # 2. 将所有文件权限设置为644
    find . -type f -exec chmod 644 {} \;
    # 3. 对特定的上传目录单独设置(例如uploads目录需要写权限)
    chmod -R 755 wp-content/uploads # WordPress示例
    # 或者,更好的方式是更改目录的所有者/组为Web服务器用户(如www)
    chown -R www:www wp-content/uploads
    
  2. 确保Web服务以非root用户运行:

    • 宝塔面板默认创建的Nginx或Apache服务,其工作进程通常以www或nginx等非特权用户运行,这是正确的。你可以在宝塔的 网站 设置中,查看和确认站点的 运行用户。
    • 绝对不要为了“解决权限问题”而将Web服务配置为以root身份运行。
  3. 在PHP中禁用危险函数:

    • 很多Web攻击利用PHP执行系统命令。在宝塔面板的 网站 -> PHP设置 -> 禁用函数 一栏中,确保添加了诸如 exec, system, shell_exec, passthru, proc_open, popen 等函数。这能有效阻止很多通过Web上传的恶意脚本执行系统命令。

提示:修改文件权限前,最好先备份。如果修改后网站出现“无法写入”等错误,应检查具体是哪个文件或目录需要写权限,进行针对性调整,而不是粗暴地恢复为777。

4. “设而不用”的安全功能:防火墙、Fail2Ban与日志监控

宝塔面板集成了很多强大的安全工具,比如系统防火墙、Fail2Ban入侵防御、以及各种日志监控。新手常见的错误是:虽然开启了这些功能,但从未进行过任何自定义配置,也没有定期查看日志。让安全工具保持默认配置,其防护效果会大打折扣。

错误表现:

  • 开启了宝塔的“系统防火墙”,但规则里只有安装时默认的几条(如放行22,80,443,8888),没有根据自身服务调整。
  • 安装了Fail2Ban但未启用任何监控监狱(jail),或者启用后从未检查过封禁记录。
  • 从未查看过面板的操作日志、网站的访问日志或系统的安全日志。

风险分析:默认防火墙可能放行了不必要的端口。未配置的Fail2Ban形同虚设,无法自动拦截暴力破解。不查看日志意味着你无法发现早期的攻击试探、扫描行为或成功入侵的痕迹,错过了最佳的应急响应时机。

修复与加固方法:

  1. 精细化配置系统防火墙:

    • 进入宝塔 安全 页面,查看 防火墙 规则。
    • 只放行必要的端口:除了SSH(22)、HTTP(80)、HTTPS(443)、宝塔面板端口,以及你的业务必需端口(如FTP的21,或特定的API端口),关闭其他所有端口。对于云服务器,务必在云服务商的安全组控制台进行同步配置。
    • 考虑使用端口敲门(Port Knocking):对于SSH等管理端口,可以使用更高级的隐藏技术,只有按特定顺序“敲击”一组关闭的端口,才会临时打开SSH端口。这能极大减少暴露面。
  2. 激活并配置Fail2Ban:

    • 在宝塔 软件商店 安装 Fail2Ban。
    • 配置是关键。你需要告诉Fail2Ban监控哪些服务的日志。例如,监控SSH登录失败:
      • 在Fail2Ban配置界面,添加一个监控“ssh”的规则。
      • 指定日志路径(通常为/var/log/secure或/var/log/auth.log)。
      • 设置过滤规则(匹配登录失败的日志行)。
      • 设置行动(如iptables或firewalld封禁IP)。
      • 设置参数:maxretry=5(5次失败后封禁),bantime=3600(封禁1小时)。
    • 同样,可以为宝塔面板、Nginx的访问日志等配置Fail2Ban规则。
    # 查看Fail2Ban是否正在运行以及封禁了哪些IP
    sudo fail2ban-client status
    # 查看某个特定监狱(如sshd)的状态
    sudo fail2ban-client status sshd
    
  3. 养成查看日志的习惯:

    • 宝塔操作日志:面板日志记录了所有面板内的操作,谁在什么时候做了什么,一目了然。定期检查可疑操作。
    • 网站访问日志:在 网站 -> 对应站点 -> 日志 中,查看访问日志。关注异常的访问模式,如大量404错误(可能是扫描器)、针对wp-admin或/admin路径的暴力请求等。
    • 系统安全日志:通过SSH终端查看/var/log/secure(CentOS/RHEL)或/var/log/auth.log(Debian/Ubuntu),关注失败的登录尝试。

5. 备份的幻觉:策略缺失与从不验证

“我已经设置了每周备份”,这可能是最危险的安全错觉之一。新手常犯的错误是:配置了备份任务,但从未验证备份文件是否完整、可用,并且将所有备份存放在同一台服务器上。

错误表现:

  • 使用宝塔的“计划任务”备份网站和数据库到服务器的/www/backup目录。
  • 从未手动下载过备份文件进行验证。
  • 服务器磁盘空间不足导致备份任务失败,但未设置告警。
  • 没有异地备份策略。

风险分析:如果服务器因硬件故障、遭受勒索病毒攻击(加密所有文件)或运维误操作(如rm -rf /)导致数据丢失,存放在本地的备份会一并丢失。无法恢复的备份等于没有备份。

修复与加固方法:

  1. 实施3-2-1备份原则:

    • 3份数据:总共有3份数据副本。
    • 2种介质:备份保存在至少两种不同的存储介质上(例如,服务器本地硬盘 + 云对象存储)。
    • 1份异地:至少有1份备份存放在异地(Off-site)。
  2. 配置宝塔的异地备份:

    • 宝塔的“计划任务”功能支持将备份文件上传到多种云存储。务必启用此功能。
    • 进入 计划任务,创建备份任务(备份网站、数据库或目录)。
    • 在任务设置中,配置 备份到云存储。宝塔支持阿里云OSS、腾讯云COS、FTP、SFTP等多种方式。
    • 设置一个合理的备份保留周期(如保留最近7天的每日备份和最近4周的每周备份)。
  3. 定期进行恢复演练:

    • 这是最关键也最容易被忽略的一步。至少每季度一次,从云存储下载一份最近的备份文件。
    • 在一个干净的测试环境(可以是另一台服务器,甚至是本地虚拟机)中,尝试恢复网站和数据库。
    • 验证恢复后的网站是否能正常访问,数据是否完整。只有经过成功恢复验证的备份,才是可信的备份。
  4. 监控备份任务状态:

    • 在宝塔的“计划任务”日志中,定期检查备份任务是否成功执行。
    • 可以为任务设置执行通知,无论成功或失败,都通过邮件或微信推送给你。

安全配置不是一次性的任务清单,而是一种需要融入日常运维习惯的思维方式。从修改默认端口和强密码开始,收紧文件权限,激活并理解你使用的每一个安全工具(防火墙、Fail2Ban),最后用可靠的备份策略兜底。每当你对服务器进行一项新操作时——比如安装一个新插件,开放一个新端口——都下意识地问自己一句:“这会引入新的风险吗?我该如何控制它?” 多花这十分钟的思考,可能会在未来避免十个小时的故障排查和数据恢复的噩梦。真正的安全,就藏在这些看似琐碎、却坚持执行的细节里。

CentOS 7.6下零基础搭建传奇手游服务端(含宝塔面板配置避坑指南) 本文详细指导如何在CentOS 7.6服务器上从零开始搭建传奇手游服务端,特别针对新手提供了完整的避坑指南。教程涵盖服务器初始化、宝塔面板安装与配置、服务端部署、数据库设置及客户端连接等关键步骤,重点解决了端口配置、文件权限和IP修改等常见问题,帮助开发者顺利搭建可运行的游戏环境。 阅读详情

相关推荐

宝塔面板与aaPanel安装原理及安全配置指南

Linux服务器图形化管理面板是降低运维门槛、提升部署效率的关键工具,其核心在于将复杂的命令行操作封装为可视化界面,同时保持底层系统可控性。这类面板通常基于Shell脚本实现跨发行版兼容,依赖动态环境探测与权限精细化控制,兼顾可审计性与安全性。技术价值体现在显著缩短Web环境搭建周期(如三分钟建站)、规避手动配置错误、提供标准化应用模板(WordPress、Node.js等),并支持HTTPS自动签发、反向代理、API集成等工程化能力。典型应用场景包括新手入门教学、个人博客部署、中小企业官网运维,以及与Fi

转些好文章,促进分享。 344

怎样导出用于负载测试的样本数据_LIMIT限制数据量提取

注意以下几点:新端口不能是常用服务端口(如 21、22、80、443、3306),避免冲突或被误判为攻击行为必须选高位端口(建议 10000–65535 范围内),避开 Linux 保留端口(1–1023)修改后浏览器地址栏需手动更新为 http://你的IP:新端口,否则打不开如果保存后无法访问,大概率是防火墙未放行——别急着回滚,先看下一步CentOS/Ubuntu 系统防火墙放行新端口宝塔不接管系统级防火墙,仅管理自身服务。端口修改后,必须显式放行新端口,否则请求根本到不了面板进程。

305

宝塔面板部署Redis与Node.js集成:从环境搭建到生产实践

缓存技术是提升Web应用性能的核心手段之一,通过在内存中存储热点数据,能够显著降低数据库负载并加快响应速度。Redis作为高性能的键值数据库,其基于内存的读写机制和丰富的数据结构,为缓存、会话存储、消息队列等场景提供了高效解决方案。在工程实践中,借助宝塔面板这类可视化运维工具,开发者可以快速完成Redis服务的安装、配置与管理,大幅降低环境部署门槛。本文聚焦于如何在Linux服务器上,通过宝塔面板高效部署Redis,并详细讲解其在Node.js项目中的连接配置、基础数据操作以及生产环境下的安全加固与性能优化

weixin_33857679的博客 408

宝塔 安全风险 修复

以下是为您整合的修复清单。

相逢的人会再相逢 679

用宝塔面板从零搭建网站:从服务器配置到HTTPS上线全指南

网站建设涉及域名解析、Web服务器、数据库、SSL证书等多个基础环节,其中域名解析负责将域名指向服务器IP,而Nginx作为高性能Web服务器,承担着处理HTTP请求的重任。对于缺乏运维经验的新手而言,手工配置这些组件往往门槛较高。宝塔面板通过可视化界面将服务器环境管理、站点创建、数据库配置、SSL证书部署等流程封装为图形化操作,大幅降低了建站门槛。无论是搭建静态站点还是部署WordPress动态程序,都能通过面板一键完成。本文从服务器选型、域名解析入手,详细讲解使用宝塔面板完成环境配置、创建站点、上传代码

weixin_34059951的博客 475

Typecho全流程部署指南:Linux+宝塔面板从零搭建个人博客

在个人博客与内容站点的建设中,选择一套轻量、高效且易于维护的CMS是很多站长关注的问题。相比功能臃肿的传统建站系统,Typecho凭借极简的代码结构和优秀的性能表现,逐渐成为技术写作群体的热门选择。它原生支持Markdown,对低配服务器十分友好,能够显著降低运行成本与维护门槛。与此同时,基于Linux服务器配合宝塔面板进行可视化环境部署,大大简化了Nginx、PHP、MySQL等核心组件的安装与配置流程,使新手也能快速完成从服务器初始化到站点上线的全过程。本文围绕Typecho的实战部署,梳理环境选型、站

weixin_32822843的博客 188

宝塔修改默认端口后面板打不开

可是修改成8898后,面板打不开了,可能的原因有如下 1、服务器没有设置对应的安全组,需要按照如下流程去设置 ...

sskk1118的博客 1万+

宝塔面板开心版风险解析与服务器安全运维实践指南

服务器运维是保障线上服务稳定运行的核心环节,其关键在于实现高效、安全的管理。图形化管理面板通过封装底层命令,为运维人员提供了可视化的操作界面,显著降低了操作门槛。这类工具的技术价值在于将复杂的配置流程标准化、自动化,从而提升部署效率并减少人为错误。在个人学习、项目测试及中小型业务部署等应用场景中,它们尤为受欢迎。然而,在追求功能与成本平衡时,用户需警惕第三方修改版本(常被称为“开心版”或“破解版”)带来的巨大安全隐患。这类版本常通过授权验证绕过、核心文件篡改等技术手段实现功能解锁,但极易植入后门与恶意代码,

weixin_30245867的博客 607

常见服务端口安全风险总结

前言 在日常安全测试工作中,至少有30%以上的定级为严重和高危的漏洞,都是基于服务端口配置不当所造成的。 因此,本篇文章主要针对服务端口安全问题展开简单总结,希望能尽量减少在日常开发工作中的严重高危漏洞。(由于篇幅有限,本文只探讨平时在安全测试中所发现的端口服务漏洞) 我们都知道,Web服务一般都是通过端口号来识别的,而端口与服务的关系,就好像端口是闸门钥匙,服...

weixin_30443075的博客 2754

79.ScottPlot的MVVM实现 C#例子 WPF例子

在你的 WPF 窗口的 XAML 文件中,定义一个,并将其Content属性绑定到 ViewModel 中的属性。这样可以将WpfPlot控件动态绑定到 ViewModel。

S13461120713的博客 2571

避坑指南:DeepSeek Function calling流式输出中的常见问题与解决方案

本文深入探讨了在DeepSeek Function Calling中实现流式输出时常见的参数拼接、函数依赖管理和错误处理等核心挑战。针对流式响应中参数碎片化的问题,提供了健壮的参数拼接方案与状态管理策略。同时,文章详细阐述了如何管理函数调用顺序、处理条件性执行,并构建了分阶段的错误处理与重试机制,旨在帮助开发者构建稳定、高效的流式AI应用。

weixin_29062671的博客 203

手把手教你,购买云服务器并且安装宝塔面板

本文详细介绍了从购买云服务器到安装宝塔面板的全过程。主要内容包括:1)选择并购买腾讯云轻量应用服务器;2)重置密码和重装系统;3)开放所有端口并通过SSH工具连接服务器;4)安装宝塔面板并配置LNMP环境;5)进行安全设置,包括修改默认端口、账号密码和配置告警通知。文章提供了详细的图文指引,帮助新手快速搭建服务器环境,同时强调了安全配置的重要性。通过本文,读者可以轻松完成云服务器的初始配置和管理。

星哥玩云 1562

【信创-k8s】银河麒麟V10国防版+鲲鹏/飞腾(arm64架构)在线/离线部署k8s1.30+kubesphere

银河麒麟作为国家核高基专项的重要成果,国防版凭借其卓越的安全性和可靠性,已成为军工领域的首选操作系统。之前我们在适配麒麟V4国防版的过程中已发现诸多安全性要求,而麒麟V10国防版在安全防护等级上又达到了更高的级别。本文将主要演示离线部署,因为军工项目基本不会出现联网场景。即使在线,也可以按离线方式部署,且离线部署由于有私有仓库,不会存在镜像获取不到和丢失情况。

2023年最新地推相关信息 542

宝塔面板使用流程及注意事项

简单”不等于“随意”。宝塔面板虽降低了技术门槛,但服务器管理的本质仍是严谨的系统工程。✅牢记三原则环境干净:只在新系统安装;安全优先:改密码、改端口、开防火墙;配置精准:目录、权限、SSL 一处都不能错。遵循以上指南,你不仅能快速上手宝塔面板,更能避免 90% 的新手事故,真正实现“高效又安全”的运维体验。

lpfasd123的博客 1174

从RADIUS服务器到AP:实战搭建一个小型WPA2-Enterprise测试环境(FreeRADIUS + 家用路由器)

本文详细介绍了如何从零搭建WPA2-Enterprise测试环境,使用FreeRADIUS服务器和家用路由器实现企业级WiFi认证。通过实战指南,包括证书生成、EAP-PEAP配置、OpenWrt路由器设置及故障排查,帮助网络工程师和爱好者掌握802.1X协议栈的实际应用。

weixin_28715953的博客 325

美团外卖 mtgsig 1.2 逆向工程与补环境实战指南

本文深入解析了美团外卖核心风控参数mtgsig 1.2的生成机制与逆向实战。通过拆解其复杂的JSON结构,揭示了设备指纹、环境信息加密等关键字段。重点阐述了在Node.js中模拟浏览器环境(补环境)的核心方法,包括DOM/BOM对象、本地存储及Canvas/WebGL等高级指纹的模拟技巧,为安全研究和合规自动化测试提供了一套完整的技术指南。

uber9的博客 410

宝塔面板部署SSL避坑指南:腾讯云证书下载到HTTPS强跳的7个关键步骤

本文详细介绍了在宝塔面板中部署腾讯云SSL证书的7个关键步骤,从证书下载到HTTPS强制跳转,帮助用户避开常见配置陷阱。内容涵盖证书格式确认、443端口配置、混合内容处理、证书链验证等核心环节,确保网站安全稳定运行。特别针对腾讯云证书与宝塔面板的兼容性问题提供了实用解决方案。

u8v9w0x1y的博客 248

2025年下半年网络规划设计师综合知识真题及答案解析

1983年,ARPANet完成技术转型,对此后的 Internet发展全关重要,这一转型是指( ) A.电路交换转向分组交换 B.商业化转型 C.民用化转型 D.从 NCP 协议转向 TCP/IP 答案:D 解析:ARPANet 最初使用 NCP (Network Control Protocol)协议进行主机问通信。1983年1月1日,ARPANet 正式切换到TCP/IP 协议族,为后续Internet的发展奠定了统一协议基础。

鹿鸣天涯 934

宝塔面板安装避坑指南:17个生产环境必检节点

宝塔面板作为面向中小团队的Linux服务器图形化运维工具,本质是一套封装了Web服务、数据库、防火墙等模块的标准化运维协议,其底层仍深度依赖Nginx、MySQL、systemd等原生组件。理解其‘配置决策树’逻辑,是规避安装失败、服务异常与安全风险的前提。本文聚焦真实生产场景中高频出现的兼容性冲突、SELinux策略限制、端口占用、时间同步偏差及Python版本错配等核心问题,结合CentOS/Ubuntu主流发行版实测经验,系统梳理安装前环境校验、安装中静默陷阱绕过、安装后服务调优三大阶段的关键动作,尤

weixin_34277853的博客 309

倍福CX9020(WINCE 7)控制器使用方法和操作

CX9020系列是倍福控制器中较为经济的,操作系统为Windows Embedded Compact 7(简称WINCE7或WINEC7),相对高端控制器(WINES7以上系统),操作系统古老而简洁,上位机软件的编写困难很多,本文是笔者在使用过程中摸索的流程,旨在为CX9020系列的新用户提供参考,也可供其他CE系统的控制器参考。本文中大部分截图采用倍福中国的培训文档,这是由于笔者是在流程走通后再写这篇文章,不想再恢复出厂设置走一遍截图。因笔者在写这篇文章时使用倍福控制器经验并不丰富,难免有纰漏,请读者批评

weixin_41883890的博客 4287

手把手教你RK3588 NPU驱动与RKNN Toolkit,AI开发不迷路!

本文详细介绍了RK3588 NPU驱动安装与RKNNToolkit使用方法。首先阐述了RK3588芯片在嵌入式AI领域的优势,包括6TOPS算力和混合量化支持。随后分步骤讲解了NPU驱动安装流程,包括准备工作、编译安装、验证调试及常见问题解决。接着全面介绍了RKNNToolkit的环境搭建、基本使用流程和图像分类实战案例,涵盖模型转换、推理优化等关键环节。最后展望了RK3588在智能安防、工业自动化等领域的应用前景,为开发者提供了完整的嵌入式AI开发指南。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 434

宝塔Linux面板完全指南:10分钟快速搭建你的第一个网站

宝塔Linux面板是一款简单好用的服务器运维面板,让新手用户也能轻松管理Linux服务器。无论你是个人站长还是企业运维,这款免费工具都能大幅提升服务器管理效率。💻 ## 🚀 为什么选择宝塔面板? 宝塔Linux面板通过可视化界面简化了复杂的服务器运维操作,支持一键部署网站、数据库、SSL证书等常用功能。其核心优势包括: - **零基础友好**:无需Linux命令基础 - **功能全面**

gitblog_00091的博客 507

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

宝塔面板安全指南:从开心版风险到官方最佳实践

服务器运维管理面板作为简化Linux服务器配置的重要工具,通过可视化界面降低了网站部署、数据库管理和安全设置的复杂度。其工作原理是通过封装底层命令行操作,提供统一的Web管理接口,让用户无需深入掌握系统命令即可高效管理服务器。这类工具的技术价值在于大幅提升运维效率,降低技术门槛,特别适合个人站长、开发者和中小企业快速搭建线上业务。在应用场景上,无论是Web应用部署、数据库管理还是服务器监控,运维面板都发挥着关键作用。然而,围绕宝塔面板等工具出现的“开心版”现象,却带来了严重的安全隐患和法律风险。这些非官方修

weixin_34279246的博客 397

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

宝塔面板vs手动配置:部署LAMP环境效率对比

通过这次对比测试,我得出了几个重要结论:时间成本方面,宝塔面板将部署时间从近1小时缩短到15分钟以内,效率提升300%以上。错误率方面,手动配置遇到了7次需要干预的问题,而宝塔面板全程零错误。适合人群:对于个人开发者和小团队,宝塔面板能极大提升效率;对于需要深度定制的大型项目,手动配置可能更灵活。如果你也想快速搭建Web环境,不妨试试InsCode(快马)平台。它的一键部署功能让我在测试不同配置时特别省心,不用反复折腾环境,直接就能看到运行效果。

ObsidianRaven13的博客 306

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Typecho博客部署实战:宝塔面板+Nginx+PHP全流程及踩坑指南

个人博客的搭建涉及Web服务器、PHP运行环境、数据库等多个环节,对于非运维背景的博主而言,图形化面板能显著降低部署门槛。宝塔面板作为Linux服务器常用的管理工具,将Nginx、PHP、MySQL等组件的配置集成于可视化界面,并结合Typecho这类轻量级博客程序,可在较低资源占用下实现稳定运行的站点。文章从服务器选型与安全初始化开始,系统梳理站点创建、伪静态规则设置、SSL证书配置等关键步骤,并针对日志增长导致磁盘告警、PHP-FPM内存不足引发502错误、Pingback发送失败及MySQL慢查询等常

weixin_29016315的博客 98

宝塔面板Nginx配置修复:禁用RSA密钥交换,实现TLS前向保密

在SSL/TLS协议中,密钥交换是建立安全通信的核心环节,它决定了会话密钥的协商方式。传统RSA密钥交换机制因其缺乏前向保密性而存在显著安全风险,一旦服务器私钥泄露,历史通信可能被解密。现代安全实践普遍采用基于迪菲-赫尔曼的ECDHE或DHE算法,它们在每次会话中动态生成临时密钥,即使长期私钥泄露也无法回溯破解,从而保障了通信的前向保密性。这一原理对于防范CVE-2016-2183等与弱加密算法相关的漏洞至关重要。在Web服务器配置中,特别是使用宝塔面板管理Nginx时,默认或历史配置可能为兼容老旧客户端而

xpp02的专栏 471
上一篇: SpringBoot实战:如何用FunASR实现实时语音转文字(附完整代码)
下一篇: 浏览器开发者工具小技巧:快速获取压缩JS代码的两种方法(避免crbug报错)
寂静夜空35
博客等级 码龄3年 59粉丝 1797原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值