杜老师最近太忙了,平时也是撒手掌柜,很少管理旗下平台,除非遇到问题才会第一时间解决。恰好昨天下午得空看了一下说说广场,没想到超过了百人。图片加载速度好慢,就想着托管到其它平台!
S3 存储是亚马逊推出的一种对象存储服务。提供了一个高度可扩展、可靠且安全的数据存储解决方案,用于存储和管理各种类型的数据对象,例如文件、图像、视频、文档。
使用了 S3 存储,用户可以通过 API 或与 S3 兼容的工具来上传、下载、检索、管理数据对象。S3 还支持数据版本控制、生命周期管理、数据备份和恢复等功能。
缤纷云的界面是非常简洁的,而且还挺好看,概述页面可以看到资源的使用量:
缤纷云每月会赠送 50G 的存储容量,CDN 流量 10G,API 请求 10 万次。具体费用可见官方文档:
下面说说整合过程。首先注册登录到缤纷云,切换到对象存储 AccessKey 页面,点击右侧的添加 Key,根据流程填写对应内容即可:
进入到 Memos 后台,点击设置——存储——创建,参考下图输入相关内容「杜老师做了些调整,如果效果不太理想,可以在评论区留言询问」
在当今数字化时代,云主机服务成为企业和个人建设网站、部署应用重要选择。然而,面对众多云主机服务商,如何挑选到最适合自己需求的呢?今天,杜老师向小伙伴们推荐一家服务器提供商!
一周前杜老师接到一个赞助邀请,是软云的工作人员,赞助杜老师说一台云服务器,说是希望可以帮忙推广一下。
在此之前杜老师也接到过其它服务器提供商的合作邀请,不过他们并没有像软云一样自信,又或者说福利很好。
其它服务器提供商都是扔出一篇软文,然后说首页置顶多少天就给多少钱之类的。杜老师要求先测试一段时间,再发文章之类要求,直接被拒绝了。
软云这边就比较自信了,直接给出一台云服务器,并仅要求挂个链接即可,至于文章的话并没有明确的要求。
当杜老师表示需测试后才会发文等一系列要求,软云这边都表示没问题。
经过一周高强度的性能、稳定性和安全性的测试,杜老师决定发文推荐下软云主机。
为了让小伙伴们可以直观的看到服务器的数据,杜老师选了个通用性的测试脚本,运行下面命令即可:
1 | wget -qO- bench.sh | bash |
测试结果如下「杜老师的主机为定制款,没有出现在套餐列表中。另测速表中删掉了一些境外测试数据」
1 | -------------------- A Bench.sh Script By Teddysun ------------------- |
软云在 2024 年提供了站长扶持计划,可免费为站长们赞助服务器,所提供的主机可选香港节点或内蒙古节点,主机配置可以协商,可选范围如图:
计划规则以及主机购买地址如下,感兴趣的小伙伴可以去看看:
经常会有小伙伴来聊天广场摸鱼,杜老师之前尝试直接更换 PostgreSQL 版本,结果差点导致数据丢失。最近整理了一些 PostgreSQL 版本升级方法,供有需要的小伙伴参考。
在开始升级前,请确保数据库已经完整备份。这可以通过使用 pg_dump
工具完成。
确保服务器已经安装 PostgreSQL14,包括客户端库。如果服务器上已经安装了 PostgreSQL13,需要先卸载它,然后再安装 PostgreSQL 14。
使用 pg_upgrade
工具来升级数据目录。例如,如果当前的数据目录位于/var/lib/postgresql/13/main
,那么升级命令可参考 pg_upgrade -b /var/lib/postgresql/13/main -B /var/lib/postgresql/14/main -d /usr/local/pgsql/14/bin -u postgres
。
确保使用正确的路径和 PostgreSQL 14 的安装路径。
编辑主配置 postgresql.conf
文件,修改任何可能与新版本不兼容的设置。
使用 PostgreSQL14 启动服务器。
使用 psql
连接到数据库并检查版本信息,确保一切正常。
一旦确认升级成功,可以删除旧版本的数据目录。
在升级前,务必备份 PostgreSQL 数据库。可以使用 pg_dump
命令来创建数据库的备份:
1 | pg_dump -h localhost -U postgres -Fc -f backup.dump mydb |
安装新版本 PostgreSQL:
1 | sudo apt-get update |
升级 PostgreSQL 的数据版本:
1 | sudo pg_dropcluster --stop 13 main |
恢复数据:
1 | pg_restore -h localhost -U postgres -d mydb backup.dump |
删除旧版本 PostgreSQL:
1 | sudo apt-get purge postgresql-13 |
重启 PostgreSQL 的服务:
1 | sudo systemctl restart postgresql-14 |
最近拜访博客圈的小伙伴时,发现很多博主习惯在主页内加一个导航页。之前杜老师也在纠结是否要添加,其实是因为没找到心仪的导航页。恰好近期在网上闲逛时,发现了这款轻量高颜值的导航页,分享给需要的小伙伴们!
Flare 是一款轻量、快速、美观个人导航页面,适用于 HomeLab 或其它注重私密的场景。
可支持 Docker 一键部署,维护方便。
无任何数据库依赖。应用数据完全开放透明。
支持在线编辑。支持 x86 及常见的 ARM 设备。应用资源消耗很低。
服务资源消耗极低,可以跑在任何规格的机器上。
程序页面性能较好,渲染速度更快,支持同时渲染大量书签。
使用声明的配置来进行导航内容管理,无需担心数据迁移问题。
简化了天气数据的获取方式,不再需要申请天气网站的 API_KEY
,避免不必要的成本开销。
内置大量风格统一、高质量的矢量图标,确保界面长期耐看。
默认使用免登陆的模式,避免了 HomeLab、本地使用的用户有额外登录操作。
启动应用非常简单,如果您习惯使用 Docker,可以执行:
1 | docker run -d -p 5005:5005 -v `pwd`/app:/app soulteary/flare |
如果您习惯使用 docker-compose,只需要执行 docker-compose up -d
:
1 | version: '3.6' |
之前为小伙伴们推荐了一款高颜值的监控工具,但其监控维度较少,不符合部分高需求用户。今天为小伙伴们推荐另一款监控工具,不仅可以监控服务器的状态,还可监控各类服务,甚至是应用程序等,感兴趣的小伙伴可点进文章查看。
phoenix 是一个灵活可配置的开源监控平台,主要用于监控应用程序、服务器各参数、容器、各平台数据库、网络、TCP 端口以及 HTTP 接口,通过实时收集、汇聚以及分析监控信息,实现在发现异常时立刻推送告警信息,并且提供了可视化系统进行配置、管理、查看。
可分布式;
可跨平台;
可支持 Docker 部署;
实时监测告警;
数据加密传输;
灵活配置;
用户界面支持 PC 端、移动端等;
基于 HTTP 接口支持拓展实现监控其它编程语言编写的程序。
1 | docker run -itd -v /tmp:/tmp -v /liblog4phoenix:/liblog4phoenix -v /etc/localtime:/etc/localtime:ro -p 443:443 --pid host --net host --name phoenix-ui phoenix/phoenix-ui /bin/bash |
1 | docker run -itd -v /tmp:/tmp -v /liblog4phoenix:/liblog4phoenix -v /etc/localtime:/etc/localtime:ro -p 16000:16000 --pid host --net host --name phoenix-server phoenix/phoenix-server /bin/bash |
1 | docker run -itd -v /tmp:/tmp -v /liblog4phoenix:/liblog4phoenix -v /etc/localtime:/etc/localtime:ro -p 12000:12000 --pid host --net host --name phoenix-agent phoenix/phoenix-agent /bin/bash |
随着互联网技术的飞速发展,服务器已经成为现代社会不可或缺的基础设施。为了保障服务器的稳定运行,我们需对服务器进行有效的监控。传统的服务器监控工具往往功能复杂,配置繁琐,不太友好。今天给大家介绍一个高颜值开源项目,非常适合于个人服务器。
dash.是一款开源的服务器监控工具,旨在为用户提供简洁易用以及功能强大的监控体验。dash.采用 TypeScript 语言开发,可监控服务器的 CPU、内存、磁盘、网络等多种指标及维度。下面是该项目的 GitHub 地址:
dash.支持 Docker 一键部署,可参考下面的命令:
1 | docker container run -it \ |
如需要监控 GPU 数据,可使用下面的命令部署:
1 | docker container run -it \ |
如有一些自定义的参数设置,可使用下面的代码:
1 | docker container run -it \ |
全部自定义的参数,可至官网 Wiki 页面中查看:
可能在这之前大部分的人一直用的是 RedisDesktopManager 或者是 Redis 的官方可视化工具 RedisInsight 来对 Redis 进行操作和管理。前段时间不经意看到了颜值高且简约的 Redis 可视化工具 Tiny RDM。Tiny RDM 是一个现代化轻量级的跨平台 Redis 桌面客户端。
极度轻量,无内嵌浏览器。
界面精美易用,提供浅色/深色主题。
多国语言支持:英文/中文。
更好用的连接管理。
增删查改一应俱全。
支持多种数据查看格式以及转码/解压方式。
轻松处理数百万键列表。
操作命令执行日志展示。
支持命令实时监控。
支持导入/导出数据。
支持发布订阅。
支持导入/导出连接配置。
之前发布了一篇高颜值的第三方网易云播放器部署教程,但随着版本的更新,原有的版本不可用。前几天刚好一个小伙伴有部署的需求,杜老师就重新编译了下,整理该篇教程,供有需要的小伙伴参考!
使用 Vue.js 全家桶开发。
可扫码登录网易云账号。
可支持 MV 播放。
支持歌词显示。
可支持私人 FM。
每日推荐歌曲。
没有任何社交功能。
每日自动签到。
支持音乐云盘。
自定义快捷键和全局快捷键。
可支持 PWA,在 Chrome/Edge 里点击地址栏右边的安装到电脑。
可支持 Mpris。
杜老师已经将最新版本编程成 Docker 并传至 Docker Hub,可使用下面的命令一键部署。注意-p 8080:80
中的 8080
可自定义,用于访问或者反代:
1 | docker run -d --name YesPlayMusic -p 8080:80 penndu/yesplaymusic |
如使用 Docker Compose 管理,可以将下面的内容保存为 docker-compose.yml
文件,并通过命令 docker-compose up -d
启动:
1 | services: |
很多时候,我们都需要将一些文件或文本传送给别人,或者跨端传递一些信息,但我们又不想为了分享,而去下载一些客户端的软件,这个时候,我们就可以使用口令传送箱。
轻松上传:复制粘贴,拖拽选择。
多种类型:文本,文件。
防止爆破:错误次数限制。
防止滥用:可针对 IP 限制上传次数。
口令分享:随机口令,存取文件,自定义次数以及有效期。
匿名分享:无需注册,无需登录。
管理面板:查看所有文件,删除文件。
一键部署:可使用 Docker 一键部署。
新建一个空白目录:
1 | mkdir /opt/FileCodeBox |
在上面的目录中新建一个.env
环境变量文件,将下列字段内容替换成您自己的「如没有新建此文件,将会使用系统默认配置」
1 | # 端口 |
一键安装:
1 | docker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox lanol/filecodebox:beta |
一键更新:
1 | docker pull lanol/filecodebox:beta && docker stop filecodebox && docker rm filecodebox && docker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox lanol/filecodebox:beta |
后端地址:
1 | /admin |
后台密码:
1 | FileCodeBox2023 |
为了方便小伙伴的使用,杜老师收集了常见平台的 APP。除正文的安装包外,还有各主流浏览器插件,请有需要的小伙伴自行前往各浏览器应用商店自行下载,如需要代下载某歌浏览器的插件,可在评论区中留言。
]]>前端时间和小伙伴聊 LastPass 密码泄露问题,杜老师的宗旨就是数据一定要握在自己的手里,借着之前教程搭建了一个密码的托管平台,自己用着感觉浪费,准备分享出来供需要的小伙伴们一起使用!
组织支持。
附件、发送。
支持 Vault API 的功能。
为 Vault 界面提供静态文件。
网站图标 API 的支持。
身份验证器和 U2F 的支持。
YubiKey 和 Duo 的支持。
紧急通道。
使用浏览器访问 bw.dusays.com
,初次使用点击创建账户「该平台为去中心化管理,并没有管理员角色,无需担心杜老师会窃取所托管的密码」
平台使用非验证邮箱作为登录用户名「无需验证邮箱」需要注意的是,平台暂不支持登录密码找回功能,且平台无后台杜老师没办法协助找回,所以一定要记住设置的密码!一定要记住设置的密码!一定要记住设置的密码!
平台支持密码、设备授权登录两种方式,其中设备授权需终端设备安装对应 APP,请在注意事项中找到对应版本的 APP 安装包:
登录平台后点击右上方新增——项目,即可保存密码信息。杜老师推荐安装浏览器插件,可以快速实现密码保存、自动填写功能:
在工具页面中,可以生成高强度的密码「支持指定密码强度」且支持数据的导入、导出:
在报告页面中,可检测暴露的密码、重复使用密码、弱密码等,其余功能可以自行发掘:
为运营该平台,杜老师特地买了台凉心云服务器,服务有效周期一年「至 2025 年 02 月 28 日止」截止日前,请小伙伴们记得导出自己的密码,避免数据丢失;
服务器到期后,杜老师会根据自己使用,及平台使用情况考虑是否要为服务器续费。但因杜老师看不到后台数据,所以在 2025 年 02 月 21 日时统计平台使用情况;
平台已做好相关的防护工作,但无法 100% 保障数据安全,毕竟连 LastPass 这种专业平台都出现了密码泄露问题,小伙伴们可以自行选择是否使用平台;
平台 APP 已适配 Windows/macOS/Linux 等系统,支持各主流浏览器,且支持手机端。如需下载可自行搜索 Bitwarden,下载对应版本即可。也可在评论区留言,杜老师会代下载转存至网盘中再分享出来。
1 | docker run -d --name vaultwarden -v /vw-data/:/data/ --restart unless-stopped -p 80:80 vaultwarden/server:latest |
注意:如担心杜老师提供平台的稳定性和安全性,也可考虑自行搭建,运行上方命令即可。其中-v /vw-data/:/data/
中/vw-data/
为服务器对应的数据存储路径,根据实际情况修改。建议将-p 80:80
修改为-p 40031:80
,40031
为映射端口,可自行修改成未被占用端口。该容器并未内置 SSL,可使用 Nginx 反向代理实现。
当需要快速使用图形化工具上传文件、下载文件、删除文件、设置权限策略等时,可以下载并安装 ossbrowser 工具,使用多种方式登录工具,进行相关操作。希望能对 xaoxuu 童鞋和同样需要的小伙伴提供一些帮助!
通过 AK 登录时,需按如下说明完成各配置项:
参数 | 说明 |
---|---|
Endpoint | 选择登录时的访问域名。 |
AccessKeyId/AccessKeySecret | 填写账号的 AccessKey 信息。 |
预设 OSS 路径 | 如果当前账号仅拥有某个 Bucket 或 Bucket 下某个路径的权限,需填写预设 OSS 路径。 |
区域 | 当 Endpoint 配置为默认时,需填写预设 OSS 路径对应 Bucket 所在的区域。 |
保持登录 | 选中之后,ossbrowser 会保持登录状态,下次打开时将自动登录。 |
记住密钥 | 选中可保存 AK 密钥。再次登录时单击 AK 历史,可选指定密钥直接登录。 |
ossbrowser 支持的 Bucket 或 Object 级别的操作与控制台支持操作类似,请按照 ossbrowser 界面指引完成 Bucket 或 Object 的相关操作:
操作 | 说明 |
---|---|
创建Bucket | Bucket 是用于存储 Object 的容器。在上传任何文件到 OSS 前,必须创建存储空间。 |
删除Bucket | 如果不再需要 Bucket 请将其删除,以免产生额外费用。 |
上传文件 | ossbrowser 默认使用分片上传和断点续传上传文件,上传文件最大不可以超过 48.8T。若因意外中断了文件上传的过程,且未继续完成该文件的上传,则已上传的部分会以碎片的形式存储在 OSS 的存储空间中。 |
上传文件夹 | 单击页面上方目录图标,可上传文件夹。 |
下载文件 | 选中文件,然后单击操作列的下载进行下载。 |
下载文件夹 | 先选中文件夹,然后单击页面上方下载图标进行下载。 |
预览文件 | 直接单击文件名称进行预览。 |
复制文件 | 在 Bucket1 选中文件单击复制,然后在 Bucket2 单击粘贴。 |
移动文件 | 选中更多——移动进行操作。移动或复制文件最大不能超过 5G。 |
分享文件 | 文件上传 Bucket 后,可以将文件 URL 分享给第三方,供其下载、预览。单击目标文件操作列的获取地址,生成文件分享地址。 |
设置软链接 | 在设置软链接面板,设置软链接的文件目录,然后单击确定。 |
Golden-hooped Rod 是一款对于 Web 站点进行漏洞扫描的工具。工具用 Python 语言编写,使用目录扫描字典均由真实环境而来。使用起来异常便捷。可以对 Web 站点进行漏洞扫描、设置代理、设置线程等等。
1 | usage: GHR.py [-h] [-u URL] [-f filename] [--upgrade] [--nodir] [--proxy PROXY] [-t THREAD] |
注意:直接运行 python GHR.py
会显示帮助信息,如果扫描站点,如 dusays.com
,命令为 python GHR.py -u https://dusays.com/
。
ShellCheck 是一个用于静态代码分析工具,其专门针对 Shell 脚本语言进行检查。它可以帮助用户发现并纠正脚本中的常见问题、潜在错误和最佳实践不一致。新手必备工具,老手也经常通过该工具进行脚本排错。
ShellCheck 可以检查 Shell 脚本语法,确保脚本中的命令、语法结构和语法规则的正确。可以识别和报告脚本中的各种错误,包括语法错误、拼写错误、变量使用错误、命令调用错误等等。
ShellCheck 提供了最佳实践建议,帮助用户编写更加清晰、可读性更高的脚本,避免常见的陷阱和错误。
ShellCheck 支持在多种操作系统运行,并支持各种常见的 Shell 解释器。
ShellCheck 允许用户定义自定义规则和过滤器,以适应特定项目或组织需求。
语法错误、警告。
变量使用错误。
命令调用错误。
输入、输出错误。
安全漏洞。
代码风格建议。
如果是 Debian/Ubuntu 系统,执行以下命令:
1 | apt -y install shellcheck |
如果是 CentOS/RHEL 系统,执行以下命令:
1 | yum -y install epel-release |
1 | shellcheck shell.sh |
注意:对于一个 Shell 脚本 shell.sh
进行检查,则按上面命令执行即可。ShellCheck 将输出检查结果,并提示错误和建议,帮助用户改进脚本质量。
这段时间频繁出现图床无法访问,之前为了防护攻击,杜老师选购了高防的服务器,奈何除流量攻击外,还有连接数的攻击形式。而杜老师为了保障服务稳定,将连接数设置较低。本篇文章就简单说明下一台服务器最大能支持多少条 TCP 连接。
我们知道在 Linux 中一切皆文件,那么一台服务器最大能打开多少个文件呢?Linux 上能打开最大文件数量受三个参数影响,分别是 fs.file-max/soft nofile/fs.nr_open。
fs.file-max 参数描述了整个系统可以打开最大文件数量。但是 root 用户不会受该参数的限制。
soft nofile 限制单个进程上可以打开的最大文件数。不能针对不同用户配置不同的值。
fs.nr_open 限制单个进程上可以打开的最大文件数。可以针对不同用户配置不同的值。
如果想加大 soft nofile,那么 hard nofile 参数值也需一起调整。如果因为 hard nofile 参数值设置的低,那么 soft nofile 参数的值设置的再高也没有用,实际生效的值会按照二者最低来。
如果增大了 hard nofile,那么 fs.nr_open 也需要跟着一起调整。如果不小心把 hard nofile 的值设置的比 fs.nr_open 还大,那么后果比较严重。会导致该用户无法登录。
我们知道 TCP 连接从根本上看其实就是客户端和服务端在内存中维护的一组内核对象,它们只要能够找到对方,那就算是一条连接。那么一台服务器最大能建立多少条连接呢?
从理论上应该是约等于两百多万亿条连接。
但是实际上由于受其它软硬件的影响,我们一台服务器不可能能建立这么多连接。
如果只以已连接状态的连接来算,那么一台服务器最大可以建立多少连接呢?以一台 4G 内存的服务器为例!
我们知道一条已连接状态的连接大约消耗 3.3K 的内存,那么通过计算可得知一台 4G 内存的服务器,可以建立百万个 TCP 连接。
上面讨论的都是建立连接的理想情况,在现实中如果有频繁的数据收发,那么一台服务器能支撑 1000 连接都算好的了,所以一台服务器能支撑多少连接还要结合具体的场景去分析。抛开业务逻辑单纯的谈并发没有太大实际意义。
我们知道客户端每和服务端建立一个连接便会消耗掉客户端一个端口。一台机器端口数量是 65535,那么是不是说一台客户机最多和一台服务端机器建立 65535 个连接呢?
由 TCP 连接的四元组特性可知,只要四元组里某个元素不同,那就认为这是不同的 TCP 连接。
如果一台客户端仅有一个 IP,服务端也仅有一个 IP 并且仅启动一个程序,监听一个端口的情况下,客户端和这台服务端最大可建立连接条数就是 65535 个。
如一台客户端有多个 IP,服务端仅有一个 IP 并仅启动一个程序,监听一个端口的情况下,一台客户端机器最大能建立的连接条数是 n*65535 个。
如果一台客户端仅有一个 IP,服务端也仅有一个 IP 但是服务端启动多个程序,每个程序监听一个端口的情况下,一台客户端机器最大能建立的连接数量为 65535*m 个
所以,不光是一台服务端可以接收百万个 TCP 连接,一台客户端照样能发出百万个 TCP 连接。
在网络开发中,很多人对一个基础的问题始终没有彻底搞明白,那就是一台机器最多能支撑多少条 TCP 连接。不过由于客户端和服务端对端口使用方式不同,这个问题拆开来理解要容易一些。
注意,这里说的客户端和服务端都只是角色,并不是指某一台具体的机器。如对于我们自己开发的应用程序来说,当它响应客户端请求的时候,它就是服务端。当向 MySQL 请求数据的时候,它又变成了客户端。
增加服务器的内存可以支持更多的 TCP 连接。
优化 CPU 调度可以提高服务器性能,从而支持更多的 TCP 连接。
通过修改系统的文件描述符限制,可以提高服务器支持的 TCP 连接数。
优化网络配置可以提高服务器网络带宽,从而支持更多的 TCP 连接。
好久没更新了,实在不知道写点什么好,就在网上找了一些资源。正文是杜老师整理的 9 个实用 Shell 脚本,供有需要的小伙伴参考。需要注意的是,这些脚本为杜老师收集,并没有测试过,小伙伴们使用之前要先测试。
常来的小伙伴应该发现杜老师说近两周没有更新了,过年期间确实有太多的事情需要处理,各种亲戚走动等等。目前已经处理差不多了,工作上的节奏也已慢慢稳定,近期开始补上之前拖更文章。开头也祝愿来访的小伙伴们龙年大吉,博客访问蒸蒸日上,身体和服务器健健康康,心想和收入皆遂意!
1 |
|
1 | # yum install mailx |
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 | #/bin/bash |
1 | #!/bin/bash |
Fort Firewall 是一款简单而功能丰富的开源 Windows 防火墙工具,当前互联网环境下,很多人依赖于 Windows 防火墙或路由器来维护个人隐私和系统安全。Fort Firewall 提供了对 Windows 防火墙进行简便修改的功能。
Fort Firewall 软件安装和配置非常简单,可在几分钟内完成。在安装过程中,软件会提示用户选择所需保护功能和设置,可按照自己的需求进行配置。
该软件提供了强大的防火墙保护功能,可对入站和出站数据进行监控和过滤,防止未经授权的访问和攻击。
Fort Firewall 软件支持对应用程序进行控制、管理,可限制应用程序的网络访问权限,防止恶意应用程序对计算机造成损害。
该软件提供了实时网络监控功能,可监控网络流量和连接状态,并提供详细统计数据和报告,方便用户进行网络管理、优化。
Fort Firewall 软件的用户界面简洁明了,易于使用。软件提供了多种操作选项和设置,可满足用户的不同需求。
通过免费下载 Fort Firewall 独立 Windows 脱机安装程序,用户可轻松管理防火墙设置。该防火墙工具旨在为用户提供简单而有效防护,具备多项丰富功能。Fort Firewall 的中文版发布使更多用户能够方便地利用其功能,以加强系统的安全性和隐私管理。
Fort Firewall 防火墙是一款小巧优秀的软件,用户可在 Fort Firewall 防火墙快捷的进行网络安全的防护,有效的预防病毒的侵害,同时还可以在 Fort Firewall 防火墙很好的进行网络的管理,保护电脑上的应用程序不被改写,感兴趣的小伙伴快来下载体验吧~
随着互联网技术发展和普及,网络安全问题日益突出。SSL 证书作为一种有效的网络安全解决方案,可以确保数据在传输过程中的保密性和完整性。OpenSSL 是一个开源 SSL 工具包,它可用于生成和管理 SSL 证书。本文详细说明如何使用 OpenSSL 生成 SSL 证书,并提供详细的操作步骤。
1 | openssl genrsa -out key.pem 2048 |
注意:要生成 RSA 密钥对可使用以下命令,这个命令将生成一个 2048 位的 RSA 密钥对,并将其保存在 key.pem
文件中。
1 | openssl dsaparam -out dsa.pem 2048 |
注意:要生成 DSA 密钥对可使用以下命令,这个命令将生成一个 2048 位的 DSA 密钥对,并将其保存在 dsa.pem
文件中。
1 | openssl req -new -key key.pem -out cert.csr |
注意:生成密钥对后下一步是生成证书请求。证书请求文件将包含公钥和其他信息,这些信息被 CA 用于验证证书请求。要生成证书请求可使用上面命令,这个命令生成一个证书请求文件,并将其保存在 cert.csr
文件中。在生成过程中,您需提供一些信息,例如国家代码、城市、组织名称、组织单位名称等等。
1 | openssl x509 -req -in cert.csr -signkey key.pem -out cert.pem |
注意:生成证书请求后最后一步是签署证书。签署证书是将证书请求与密钥对结合起来,生成一个完整的 SSL 证书。要签署证书可使用上面命令,这个命令将生成一个 X.509 格式证书文件,并将其保存在 cert.pem
文件中。
MySQL 预编译语句是一种强大的工具,它不仅提高了应用程序性能,还提升数据安全性。本文将深入探讨 MySQL 预编译语句的原理、优势及如何在实际应用中有效地使用它们。
预编译语句也被称为参数化查询,是一种在数据库层面处理 SQL 语句方法。
它允许开发者在编译时将 SQL 语句中参数值替换为占位符,然后在运行时再将实际的参数值传递给数据库。
预编译语句的工作原理分为两个阶段:编译阶段、执行阶段。
在编译阶段时,MySQL 将 SQL 语句进行语法分析和优化,生成对应执行计划。
在执行阶段是,MySQL 根据执行计划执行 SQL 语句,并将结果返回给客户端。
以此提升执行效率。
提高安全:预编译语句可以防止 SQL 注入攻击,这是一种常见安全漏洞,攻击者可以利用它修改或删除数据库中的数据。通过用预编译语句,开发者可以确保所有 SQL 语句在编译时都已经过验证,从而防止 SQL 的注入攻击。
提升性能:预编译语句可以显著提高应用程序的性能。当相同 SQL 语句被多次执行时,预编译语句可以重用编译后的 SQL 语句,从而节省编译时间。此外,预编译语句还可减少 SQL 解析器的负担,进一步提高 MySQL 性能。
简化代码:使用预编译语句可简化 SQL 语句的编写,特别是在处理动态 SQL 语句时。开发者可将参数值直接传递给预编译语句,而无需手动拼接 SQL 语句,从而降低出错的可能性。
1 | String sql = "SELECT * FROM users WHERE id = ?"; |
注意:在这个示例中,我们首先定义了一个 SQL 语句,然后通过 prepareStatement
方法创建一个预编译语句。紧接着我们通过 setInt
方法将参数值传递给预编译语句,最后执行查询并获取结果集。
MySQL 是一种流行的开源数据库管理系统,广泛应用于各种 Web 应用程序和数据存储中。然而,传统的 MySQL 连接在传输数据时并未加密,可能存在安全风险。启用 SSL 加密连接可确保数据在传输过程中的安全性和完整性。本文详细说明如何在 MySQL 中启用 SSL 加密连接。
SSL 是一种被广泛使用的网络协议,用于在客户端和服务器之间建立安全通信通道。通过使用 SSL 可以确保传输的数据不被第三方窃听或篡改。启用 SSL 加密连接第一步是准备 SSL 证书。SSL 证书由可信证书颁发机构签发,用于验证服务器的身份。您可以从 CA 购买 SSL 证书,也可使用 OpenSSL 等工具自行生成。
在开始启用 SSL 之前,需要确保 MySQL 服务器和客户端已经安装了 SSL 模块。如果您使用的是 MySQL 二进制包,那么可能已经安装了 SSL 模块。如果您使用的是源码包,则需手动编译并安装 SSL 模块。
将 SSL 证书安装到 MySQL 服务器上。通常,您需要将 SSL 证书和私钥文件复制到 MySQL 服务器的指定目录,如 /etc/mysql/ssl
。
编辑 MySQL 服务器配置文件,以启用 SSL 并指定 SSL 证书和私钥文件的路径。
以下是一个 SSL 示例配置:
1 | [mysqld] |
以下是 SSL 配置参数说明:
参数 | 说明 |
---|---|
ssl-ca | CA 证书的路径 |
ssl-cert | 服务器证书的路径 |
ssl-key | 服务器私钥的路径 |
保存 MySQL 配置文件后,重启 MySQL 服务以应用新的配置。在 Linux 系统中可以使用以下命令重启 MySQL 服务:
1 | sudo systemctl restart mysql |
在配置完成后,您可以使用 mysql
命令行工具测试 SSL 连接。要启用 SSL 连接,您可以使用--ssl-ca
, --ssl-cert
和--ssl-key
选项。以下是一个测试 SSL 连接示例:
1 | mysql --host=localhost --port=3306 --user=root --password=your_password --ssl-ca=ca.pem --ssl-cert=server-cert.pem --ssl-key=server-key.pem |
测试 SSL 连接无误后,您可以在 MySQL 服务器中启用 SSL。要启用 SSL,您需要在 my.ini
配置文件中添加以下参数:
1 | require_secure_transport=ON |
要验证 SSL 连接是否成功启用,您可在 MySQL 命令行工具中输入以下命令:
1 | SHOW STATUS LIKE 'Ssl_cipher'; |
如果看到类似以下输出,则表示 SSL 连接已经启用:
1 | +--------------------+--------------------------------------------------------------+ |
启用 MySQL 的 SSL 加密连接可有效提高数据传输的安全性。我们建议您在生产环境中始终启用 SSL,以确保数据安全性。最后分享一个 OpenSSL 创建公私秘钥的示例:
1 | openssl genrsa -out rsa_private.key 2048 |