mokoの小站 - 工具
type: channel
link: https://www.mokoc.net/category/tool/
description: 一些工具的使用
items: 使用 acme.sh 配置自动续签 SSL 证书
items: 用 rclone 轻松备份文件 & 挂载云存储
items: Realm转发使用教程

使用 acme.sh 配置自动续签 SSL 证书
type: item
date: 2024-12-16T23:49:00+08:00
description: 本文将介绍使用 acme.sh 配置自动续签的 SSL 证书。自动签发和手工签发证书的对比功能自动签发手工签发有效期3 个月至 6 个月30 天到 1 年难度不容易容易友好度不友好友好适合懒人是否系统集成方便不方便后台管理大多数没有大多数都有所以我们建议如果您对服务器有完全控制权，那么自动签发的证书比较适合懒人运维，如果是长期运营的网站和项目，手工签发的证书对新手更友好，请自行选择。安装 acme.shacme.sh 是一个集成了 ACME 客户端协议的 Bash 脚本，作者是 @neilpangxa，按照官方文档说明，我们直接在 Linux 下安装。curl https://get.acme.sh | sh -s email=username@example.com如果是国内的机器，可以使用拖回源码直接安装：git clone --depth 1 https://github.com/acmesh-official/acme.sh.git cd acme.sh ./acme.sh --install -m username@example.com请注意替换 username@example.com 为你自己的邮箱，避免无法收到上游证书的邮件通知，比如 Let's Encrypt 偶尔会错发证书，然后就会邮件通知你，这时候就需要重新签发一次证书了。安装完成后重新加载 Bash：source ~/.bashrc然后也可以开启自动更新：acme.sh --upgrade --auto-upgrade选择默认 CA目前 acme.sh 支持 5 个正式环境 CA，分别是 Let's Encrypt、Buypass、ZeroSSL、SSL.com 和 Google Public CA，默认使用 ZeroSSL，如果需要更换可以使用如下命令：切换 Let's Encryptacme.sh --set-default-ca --server letsencrypt切换 Buypassacme.sh --set-default-ca --server buypass切换 ZeroSSLacme.sh --set-default-ca --server zerossl切换 SSL.comacme.sh --set-default-ca --server ssl.com切换 Google Public CAacme.sh --set-default-ca --server google如果已有 ZeroSSL 帐号，可以在后台控制面板拿到 API Key，然后执行如下命令apt install jq curl -s -X POST "https://api.zerossl.com/acme/eab-credentials?access_key=你的API_Key" | jq终端会输出如下内容{ "success": true, "eab_kid": "kid字符串", "eab_hmac_key": "hmac_key字符串", }然后手工添加帐号acme.sh --register-account --server zerossl \ --eab-kid kid字符串 \ --eab-hmac-key hmac_key字符串Google Public CA 需要按照官方博客申请内测，然后获取 Key。几个 CA 的简单对比功能LEBuypassZeroSSLSSL.comGoogle Public CA有效期90 天180 天90 天90 天90 天多域名支持支持，最多 5 个支持收费支持支持泛域名支持不支持支持收费支持支持Rate Limit有有收费无未知有GUI 管理否否有有无ECC 证书链否否有未知无客户支持社区收费收费收费收费简单来说，如果没有特殊需求，可以选择 Let's Encrypt，如果服务器在国内，可以选择 ZeroSSL 或 Buypass，如果愿意付费得到更好的服务和保障，可以选择 ZeroSSL 和 SSL.com，如果面向欧盟用户，可以选择 Buypass 和 ZeroSSL。注意：经过测试 Google Public CA 的 ACME 验证域名在国内是无法访问的，只有国外服务器才可以申请，申请完成后的证书并无影响。使用 HTTP 验证签发证书首先我们要做一下准备工作，假设你域名是 example.com，解析到你的服务器让其生效后，我们建立一个目录：mkdir -p /var/www/letsencrypt我们的目的是绑定 http://example.com/.well-known/acme-challenge 到这个目录。如果您用的 Nginx，那么新建一个配置文件：server { listen 80; l…

用 rclone 轻松备份文件 & 挂载云存储
type: item
date: 2024-10-23T00:26:00+08:00
description: 一、介绍在数字化时代，数据就是财富。无论是珍贵的照片、重要的工作文档，还是运行网站的代码，数据的安全性和可访问性都至关重要。对于 Linux 服务器而言，定期备份数据更是重中之重。今天要给大家介绍一款强大的工具—— rclone，它可以帮助你轻松地将服务器上的文件备份到各种云存储服务，同时还能将云存储挂载到本地，实现便捷的文件访问。rclone 是一款开源的命令行工具，支持包括 Google Drive、OneDrive、Dropbox、Amazon S3 等在内的众多云存储服务。它不仅可以进行简单的文件复制和同步，还提供了加密、压缩、带宽限制等高级功能，满足你对数据安全和效率的各种需求。使用 rclone，你可以：将服务器上的文件自动备份到云端，免除数据丢失的后顾之忧。将云存储挂载到本地，像访问本地硬盘一样访问云端文件。在不同的云存储服务之间迁移数据。加密和解密你的文件，保障数据安全。接下来，我们将逐步讲解 rclone 的安装、配置和使用方法，帮助你快速掌握这款强大的工具，让你的数据管理更加高效便捷！二、安装 rclone 并连接到你的云存储在开始使用 rclone 之前，我们需要先在 Linux 服务器上安装它，并配置连接到你的云存储服务。安装 rclonerclone 官方提供了便捷的安装脚本，适用于各种 Linux 发行版。打开你的服务器终端，执行以下命令即可自动完成安装：Bashcurl https://rclone.org/install.sh | sudo bash该脚本会自动检测你的系统类型，并下载相应的 rclone 版本。安装完成后，你可以运行 rclone version 命令来验证安装是否成功。配置 rclone使用官方引导程序配置rclone 支持连接到众多云存储服务，配置方法也略有不同。这里我们以 Google Drive 为例，演示如何配置 rclone 连接到你的 Google Drive 账户。创建 Google Cloud 项目并启用 Drive API访问 Google Cloud Console (https://console.cloud.google.com/)，创建一个新的项目。在项目中启用 Drive API。Google Cloud Platform console showing how to enable Drive API创建 OAuth 客户端 ID在 API 和服务 > 凭据页面，点击“创建凭据”>“OAuth 客户端 ID”。选择应用类型为“桌面应用”，并为其命名。点击“创建”，系统将生成客户端 ID 和客户端密钥，请妥善保存。配置 rclone在服务器终端运行 rclone config 命令。输入 n 创建新的远程连接，并为其命名（例如 gdrive）。选择存储类型为 drive。依次输入客户端 ID 和客户端密钥。其他选项可以按默认值设置，或根据你的需求进行调整。在 scope 选项中，选择 drive。选择 root_folder_id 为空。选择 service_account_file 为空。选择 y 进行高级配置，并将 access_token 和 refresh_token 留空。rclone 会自动打开浏览器窗口，请登录你的 Google 账户并授权 rclone 访问你的 Drive。授权完成后，复制浏览器地址栏中的 code 参数值，将其粘贴到终端中。配置完成后，rclone 会将配置信息保存到 ~/.config/rclone/rclone.conf 文件中。直接编辑配置文件输入 rclone config 后，会在 .config/rclone 目录中生成一个 rclone.conf 文件，如果我们熟悉 Rclone 配置的话，也可以直接新建编辑该文件，同样是可以生效的创建配置文件夹mkdir -p ~/.config/rclone编辑配置文件vim ~/.config/rclone/rclone.conf以cloudflare r2云存储为例[r2demo] type = s3 provider = Cloudflare access_key_id = abc123 secret_access_key = xyz456 region = auto endpoint = https://<accountid>.r2.cloudflarestorage.com [scode type="red" size=""]如果您使用的是具有对象级权限的令牌，则需要在配置中添加 no_check_bucket = true 以避免出错。[/scode]其他云存储服务的配置方法rclone 官方文档提供了详细的配置指南，涵盖了各种云存储服务。你可以参考文…

Realm转发使用教程
type: item
date: 2024-10-04T21:37:00+08:00
description: 简介 Realm 是一个用 rust 编写的简单、高性能的网络中继工具。其特点为配置简单、资源占用少、性能强。项目仓库地址：https://github.com/zhboner/realm使用方法1. 下载系统对应版本二进制文件，下载地址，以 linux x64 系统为例mkdir -p /opt/realm cd /opt/realm wget https://github.com/zhboner/realm/releases/download/v2.6.2/realm-x86_64-unknown-linux-gnu.tar.gz tar -zxvf realm-x86_64-unknown-linux-gnu.tar.gz chmod +x realm2. 编辑配置文件简便用法，直接命令行参数启动(需在安装目录运行)./realm -l 0.0.0.0:5000 -r 1.1.1.1:443-l 后跟本地 ip 加端口(即本地监听的 ip+port )，-r 后跟远程 ip 加端口(即需要转发的远端服务的 ip+port )，更多参数可以使用 ./realm -h查看。配置文件，配置文件运行配置文件可以使用 toml 或者 json 格式书写，个人推荐使用 toml 格式，更加清晰明了， 官方提供的配置文件实例vim /opt/realm/config.toml运行以上命令，将下列内容粘贴进去后，敲下 esc 键，然后键盘输入 :wq 保存并退出我这里使用 toml 格式书写一个最基本 tcp/udp 转发实例[log] level = "warn" # 输出的日志等级，日志级别: off,debug,info,error,warn # output = "./realm.log" #日志输出路径 [network] use_udp = true # 启用udp [[endpoints]] listen = "0.0.0.0:5000" # 本地监听的ip和端口 remote = "1.1.1.1:443" # 远端ip加端口 # [[endpoints]] # 可以同时配置多个转发只需要添加[[endpoints]]字段即可 # listen = "0.0.0.0:10000" # remote = "www.google.com:443"[collapse status="false" title="官方配置文件examples"][log] level = "warn" output = "realm.log" [dns] mode = "ipv4_only" protocol = "tcp_and_udp" nameservers = ["8.8.8.8:53", "8.8.4.4:53"] min_ttl = 600 max_ttl = 3600 cache_size = 256 [network] no_tcp = false use_udp = true ipv6_only = false tcp_timeout = 5 udp_timeout = 30 send_proxy = true send_proxy_version = 2 accept_proxy = true accept_proxy_timeout = 5 tcp_keepalive = 15 tcp_keepalive_probe = 3 [[endpoints]] listen = "0.0.0.0:5000" remote = "1.1.1.1:443" extra_remotes = ["1.1.1.2:443", "1.1.1.3:443"] balance = "roundrobin: 4, 2, 1" through = "0.0.0.0" interface = "lo" [[endpoints]] listen = "0.0.0.0:10000" remote = "www.google.com:443" extra_remotes = ["www.youtube.com:443"] balance = "roundrobin: 2, 1" through = "0.0.0.0" interface = "wlan0"[/collapse]3. 设置开启自启动linux 使用 systemd 服务来实现开机自启在 /etc/systemd/system/ 目录下创建 realm.service 文件vim /etc/systemd/system/realm.service运行以上命令，将下列内容粘贴进去后，敲下 esc 键，然后键盘输入 :wq 保存并退出以下是使用配置文件启动的配置，如果使用参数启动请自行修改 ExecS…