宝塔面板使用acme.sh的记录

安装

apt-get install socat

curl https://get.acme.sh | sh -s email=my@example.com

使用基于CloudFlare的DNS验证,需要申请CF的api token,过程略

export CF_Token="API Tokens With Edit zone DNS"
export CF_Account_ID="Account ID, NOT zone ID"

申请证书

acme.sh --issue --dns dns_cf -d domain.com -d www.domain.com

安装证书,基于宝塔+Apache环境

acme.sh --install-cert -d domain.com -d www.domain.com \
--cert-file      /www/server/panel/vhost/cert/domain.com/cert.pem  \
--key-file       /www/server/panel/vhost/cert/domain.com/privkey.pem  \
--fullchain-file /www/server/panel/vhost/cert/domain.com/fullchain.pem \
--reloadcmd     "/etc/init.d/httpd reload"

安装完成之后,应看到“Reload success”

查看已安装证书

acme.sh --info -d example.com

开启acme.sh的自动更新

acme.sh --upgrade --auto-upgrade

查看全部cronjob,验证是否有acme.sh相关任务

crontab  -l

 

MacOS 终端代理加速设置(Clash)

起因

在Mac上,使用brew install安装组件时,经常超时或下载速度很慢。查看代理控制面板,发现没有相关请求,怀疑终端里相关请求并未经过代理(本例为Clash)。

测试

localhost:~ jacob$ curl --connect-timeout 5 -I https://www.google.com
curl: (28) Failed to connect to www.google.com port 80 after 5005 ms: Timeout was reached

确实无法连通,确认终端没有走代理。

解决方案

通过如下设置,可以实现自主开启/关闭终端代理设置。 继续阅读MacOS 终端代理加速设置(Clash)

解决OpenWrt环境中公司VPN无法访问内网域名的问题

当使用OpenWrt作为路由时,无论是主路由还是旁路由,可能会出现连接了公司VPN但无法访问内网域名的问题。这篇文章将帮助你解决这个问题。

首先,我们可以优先检查是否启用了OpenWrt的”重绑定保护”功能,因为启用它可能导致无法通过VPN访问内网域名。

以下是关闭”重绑定保护”的步骤: 继续阅读解决OpenWrt环境中公司VPN无法访问内网域名的问题

OpenWrt 22.03 安装并配置Tailscale 解决无法启动问题

OpenWrt 22.03及以上版本,安装Tailscale后,无法启动初始化,提示“iptables: executable file not found”错误。该如何解决呢?

error: creating router: exec: “iptables”: executable file not found in $PATH

Tailscale介绍:

Tailscale是一种虚拟私人网络(VPN)解决方案,旨在简化安全网络连接。它利用现代加密技术,通过互联网连接不同设备、服务器和网络,形成一个安全的私人网络,使用户能够安全地访问远程资源和设备。Tailscale不同于传统的VPN,它使用了一种名为“WireGuard”的高性能加密协议,提供了更快的连接速度和更好的性能,同时也更易于设置和管理。用户可以轻松地在各种平台上安装和配置Tailscale,实现安全、简便的远程访问和网络连接。 继续阅读OpenWrt 22.03 安装并配置Tailscale 解决无法启动问题

如何重置OpenWrt防火墙配置

当OpenWrt的防火墙配置被搞乱之后,如何快速重置防火墙配置,恢复防火墙初始设置?

重置OpenWrt防火墙配置的方法:

OpenWrt的默认配置文件统一保存在系统的 /rom 目录下。

因此,只需将防火墙默认的配置文件复制到对应目录下,即可完成配置重置。

以SSH登录OpenWrt为例,使用root执行如下命令:

cp /rom/etc/config/firewall /etc/config/firewall

注:以上方法仅支持“rom + overlay”分区的OpenWrt,不支持X86形式的。

ESXi 8 紫屏崩溃后自动重启

背景:

运行ESXi 8的N5105软路由最近出现了几次死机,导致上面运行的VM全部都没有了响应。

经过排查,确实是由其中一个VM引起了主机(Host)的崩溃,进入了紫屏模式,又称为purple screen of death (PSOD) 。这个紫屏PSOD很像Windows的蓝屏机制,主要是记录最后崩溃的信息,并保留在屏幕上,以供管理员诊断。

但这明显和软路由的定位有冲突,我们期望它可以稳定的运行,哪怕出现了崩溃也需要第一时间恢复。那么有什么办法能在主机崩溃后,自动重启呢?

解决方法:

方法1:

继续阅读ESXi 8 紫屏崩溃后自动重启

OpenWRT下ssh提示Exited: String too long的解决办法

一、背景

计划在OpenWRT上,定时通过SSH登录到另一台Unix并执行一些命令。在本地电脑上生成了密钥,并将公钥添加到了远程主机。在本地电脑上可直接使用密钥访问远程主机,无需验证密码。

二、问题

将本地生成的密钥复制到OpenWRT,执行同样SSH命令访问远程主机,提示:

Exited: String too long

三、解决方法

首先我们需要了解下产生问题的原因: 继续阅读OpenWRT下ssh提示Exited: String too long的解决办法

PVE软路由网络连通性测试脚本,自动重启虚拟机

最近软路由中的爱快或openwrt偶尔有崩溃情况,导致网络中断,需要手动恢复。为了之后遇到类似问题PVE可以一定程度上自修复,我编写了如下脚本,用于监控PVE的网络连通性,如果网络不通则硬重启某个/些虚拟机。

将一下代码上传至PVE环境,并添加至cron自动执行即可。 继续阅读PVE软路由网络连通性测试脚本,自动重启虚拟机

OpenWrt备份软件包列表,供更新固件后重新安装

众所周知在OpenWrt中,通过上传新的固件包更新OpenWrt时,并不会保留自己手动安装的软件包(哪怕是从后台在线安装的)。好在部分配置文件可以留下来,因此提供一个简单的方式备份当前OpenWrt已经安装的软件包列表,用于在更新完系统后一次性批量安装。

这个方法适合喜欢使用官方固件+官方开源软件包的案例,如果你使用的软件包很多都是自行编译或无法通过opkg获取到,建议还是定期自己编译完整的固件包。

具体方法:

继续阅读OpenWrt备份软件包列表,供更新固件后重新安装