首页
留言板
统计
时间轴
友情链接
关于
Search
1
Linux Ubuntu 22.04 安装使用 Clash
3,502 阅读
2
Docker + PHP 搭建苹果 Maccms 的影视站详细教程
313 阅读
3
Emby Terminus 终点站公益服考试答案
177 阅读
4
使用 Docker 架设 OpenVPN 服务端实现异地组网
96 阅读
5
Linux Ubuntu 22.04 安装使用 V2ray
94 阅读
默认分类
网站建设
科学上网
电子游戏
补丁插件
实用工具
优化美化
登录
Search
标签搜索
Typecho
个人博客
Docker
PHP
Linux
Ubuntu
Joe
网站美化
Emby
Clash
Maccms
影视站
Steam
单机游戏
补丁文件
游戏汉化
侠盗列车
罪恶都市
VPN
OpenVPN
Java小学生丶
累计撰写
13
篇文章
累计收到
42
条评论
首页
栏目
默认分类
网站建设
科学上网
电子游戏
补丁插件
实用工具
优化美化
页面
留言板
统计
时间轴
友情链接
关于
搜索到
3
篇与
实用工具
的结果
2024-10-14
使用 acme.sh 生成免费 90 天的 SSL 泛域名证书
acms.sh 是 Github 上开源的一款 SSL 证书申请工具,该工具安装配置完成后可帮我们申请免费 SSL 证书,并通过定时任务实现证书自动续期,理论上配置一次终生实用,官方有提供了中文文档可自行查阅,这里记录下我的操作流程,下列操作均为国内服务器 ubuntu-20.04 免梯完成首先安装 acme.sh 脚本,根据官方文档可得知执行一行命令即可安装完成,该命令会远程下载 acme.sh 脚本并安装到当前用户的 home 目录下,同时为该脚本创建 alias 别名,所以安装完成后需要刷新一下环境# 这部分忘了记录日志,仅提供命令参考 # 安装 acme.sh,注意这个邮箱换成自己的邮箱,也可以选择不提供邮箱 $ curl https://get.acme.sh | sh -s email=my@example.com # 刷新环境,使别名生效 $ source ~/.bashrc # 可通过查看版本号检查是否安装成功 $ acme.sh -v https://github.com/acmesh-official/acme.sh v3.1.0接下来需要申请 SSL 证书,根据官方文档介绍申请证书有很多种方法,这里介绍我了解的三种方式:HTTP 方式:检测本机安装的 WEB 服务器,自动在网站根目录下创建文件完成校验域名所有权,支持自动续签,如果没有 WEB 服务器且 80 端口属于空闲状态,脚本还会模拟出一个 WEB 服务器进行响应,由于我的 WEB 环境是 Docker 部署无法检测,且占用了 80 端口,该方案 PASS自动 DNS:通过域名服务商的 APIKEY 调用接口自动为域名创建解析记录完成校验域名所有权,支持自动续签,可惜我的域名来自西部数码,西部数码仅对代理开放 API 调用权限(想骂街),代理需要预充值(更想骂街),该方案 PASS手动 DNS:这是我正在使用的方案,在域名提供商手动创建解析记录,脚本校验域名所有权后颁发证书介绍完成准备干活,按照官方文档的流程走,在命令行输入以下命令# 我申请的是泛域名证书,所以用 *.hanzhe.site $ acme.sh --issue --dns -d *.hanzhe.site --yes-I-know-dns-manual-mode-enough-go-ahead-please [2024年 10月 14日 星期一 11:56:07 CST] Using CA: https://acme.zerossl.com/v2/DV90 [2024年 10月 14日 星期一 11:56:07 CST] Single domain='*.hanzhe.site' [2024年 10月 14日 星期一 11:56:20 CST] Getting webroot for domain='*.hanzhe.site' [2024年 10月 14日 星期一 11:56:20 CST] Add the following TXT record: [2024年 10月 14日 星期一 11:56:20 CST] Domain: '_acme-challenge.hanzhe.site' [2024年 10月 14日 星期一 11:56:20 CST] TXT value: 'G2kdxbaqrhza92njOTS5Rm9Tm_BLXsJLQAjm5luF63A' [2024年 10月 14日 星期一 11:56:20 CST] Please make sure to prepend '_acme-challenge.' to your domain [2024年 10月 14日 星期一 11:56:20 CST] so that the resulting subdomain is: _acme-challenge.hanzhe.site [2024年 10月 14日 星期一 11:56:20 CST] Please add the TXT records to the domains, and re-run with --renew. [2024年 10月 14日 星期一 11:56:20 CST] Please add '--debug' or '--log' to see more information. [2024年 10月 14日 星期一 11:56:20 CST] See: https://github.com/acmesh-official/acme.sh/wiki/How-to-debug-acme.sh根据日志可以看出申请的是 ZeroSSL 的证书,需要添加TXT类型的_acme-challenge解析记录,记录值在日志中也能看到,打开域名提供商管理地址,添加对应的解析记录这里稍等片刻,确保解析生效后按照官方文档的流程继续走,校验域名所有权并生成证书$ acme.sh --renew -d *.hanzhe.site --yes-I-know-dns-manual-mode-enough-go-ahead-please [2024年 10月 14日 星期一 12:07:37 CST] The domain '*.hanzhe.site' seems to already have an ECC cert, let's use it. [2024年 10月 14日 星期一 12:07:37 CST] Renewing: '*.hanzhe.site' [2024年 10月 14日 星期一 12:07:37 CST] Renewing using Le_API=https://acme.zerossl.com/v2/DV90 [2024年 10月 14日 星期一 12:07:40 CST] Using CA: https://acme.zerossl.com/v2/DV90 [2024年 10月 14日 星期一 12:07:40 CST] Single domain='*.hanzhe.site' [2024年 10月 14日 星期一 12:07:41 CST] Verifying: *.hanzhe.site [2024年 10月 14日 星期一 12:07:48 CST] Processing. The CA is processing your order, please wait. (1/30) [2024年 10月 14日 星期一 12:07:53 CST] Success [2024年 10月 14日 星期一 12:07:53 CST] Verification finished, beginning signing. [2024年 10月 14日 星期一 12:07:53 CST] Let's finalize the order. [2024年 10月 14日 星期一 12:07:53 CST] Le_OrderFinalize='https://acme.zerossl.com/v2/DV90/order/***/finalize' [2024年 10月 14日 星期一 12:07:56 CST] Order status is 'processing', let's sleep and retry. [2024年 10月 14日 星期一 12:07:56 CST] Sleeping for 15 seconds then retrying [2024年 10月 14日 星期一 12:08:12 CST] Polling order status: https://acme.zerossl.com/v2/DV90/order/*** [2024年 10月 14日 星期一 12:08:14 CST] Downloading cert. [2024年 10月 14日 星期一 12:08:14 CST] Le_LinkCert='https://acme.zerossl.com/v2/DV90/cert/***' [2024年 10月 14日 星期一 12:08:17 CST] Cert success. -----BEGIN CERTIFICATE----- 这里不能给你们看~ -----END CERTIFICATE----- [2024年 10月 14日 星期一 12:08:17 CST] Your cert is in: /root/.acme.sh/*.hanzhe.site_ecc/*.hanzhe.site.cer [2024年 10月 14日 星期一 12:08:17 CST] Your cert key is in: /root/.acme.sh/*.hanzhe.site_ecc/*.hanzhe.site.key [2024年 10月 14日 星期一 12:08:17 CST] The intermediate CA cert is in: /root/.acme.sh/*.hanzhe.site_ecc/ca.cer [2024年 10月 14日 星期一 12:08:17 CST] And the full-chain cert is in: /root/.acme.sh/*.hanzhe.site_ecc/fullchain.cer如果域名所有权校验失败就等几分钟在执行一次,一切顺利的话 SSL 证书已经申请完成了,根据日志可知证书文件在用户目录下,不过官方不建议直接将文件复制过去,建议通过脚本提供的命令将证书安装到指定目录# 将证书文件安装到指定目录 $ acme.sh --install-cert -d *.hanzhe.site \ --key-file /opt/docker/nginx/data/ssl/site.hanzhe/key.pem \ --fullchain-file /opt/docker/nginx/data/ssl/site.hanzhe/cert.pem证书准备就绪,如果你的 WEB 服务器已经配置好了证书直接重启就行了,我这里使用的是 NGINX WEB 服务器:server { listen 443 ssl; server_name hanzhe.site www.hanzhe.site; ssl_certificate /data/ssl/site.hanzhe/cert.pem; # SSL证书配置 ssl_certificate_key /data/ssl/site.hanzhe/key.pem; # SSL证书配置 location / { root /usr/share/nginx/www; index index.html index.htm index.php; } }配置完成后使用docker compose restart ngixn重启 WEB 服务器即可题外话:我的服务器环境不支持自动续期,发现颁发者为 ZeroSSL 之后本打算自己去申请来着,结果发现 ZeroSSL 的泛域名证书需要注册登录后购买高级订阅,是收费的,这个脚本可以免登录直接帮我申请到手,感谢感谢
2024年10月14日
19 阅读
0 评论
1 点赞
2024-10-12
网站整站镜像克隆下载工具 - Terminus 终点站 WIKI 备用地址
前言不久前 最大的 Emby 公益服务器之一:终点站(Terminus)在教师节开放注册,我在群里潜水许久经常签到终于等到了这一天,在我打开 WIKI 准备刷题时突然发现 WIKI 挂掉了,不过 WIKI 挂掉对于他们来说是常事儿,针对这种情况他们使用 互联网档案馆 对 WIKI 进行存档作为备用站不过这个互联网档案馆是国外的网站,虽然他们可以作为 WIKI 的备份,但是访问速度以及使用体验很感人(代理都拯救不了的那种),不过幸好结合搜索引擎考试还是过了,并且在考试结束后还更新了一篇 Emby Terminus 终点站公益服考试答案从那时起我就有个想法,我想自己部署一份私有的 WIKI 方便日后查阅,正好今天有时间就有了这篇帖子,这里记一下我用到的几个整站下载的工具WinHTTrackhttps://www.httrack.com/page/2/en/index.htmlWinHTTrack 是我使用的第一款工具,截止到目前最后一次更新是2017-05-20版本号为3.49-2软件大小4.43MB,支持中文界面这款工具给我的感觉是支持很高程度的自定义操作,不过下载网站的时候失败了两次,第三次才成功,感觉不是很稳定,而且下载后的网站本地打开浏览还可以,放到 WEB 服务器上之后跳转链接就会出问题,可能是我少了些配置吧不咋会用,请自行测试使用小飞兔下载https://www.xftsoft.comhttps://www.xftsoft.com/buy.html这是我用到的第二款工具,事先声明这是个收费软件,价格不算便宜,截止到目前最后一次更新是2024-10-08版本号为V26.5软件大小7.2MB,支持中文界面可以白嫖使用使用,相比付费功能比较少,经测试免费版下载终点站的 WIKI 网站是没啥问题的,我现在部署的这个备用地址就是用这个软件下载的WebCopyhttps://www.cyotek.com/cyotek-webcopy/downloads这是我用到的第三个工具,截止到目前最后一次更新是2023-08-18版本号为1.9.1.872软件大小4.02MB,不支持中文由于这款软件是全英文的,我英语一窍不通看不懂都有哪些功能,不过看操作按钮不少应该还是比较强大的工具,下载后的网站和 HTTrack 有点类似,本地打开访问还可以部署到 WEB 服务器上之后跳转就出问题了Terminus 终点站 WIKI 备用地址最后贴上我自己部署的 Terminus 终点站 WIKI 备用地址镜像下载后的网站不如原站强大,一些 JS 逻辑会失效,例如全局搜索不可用、左侧的折叠菜单无法展开,我在互联网档案馆看备份 WIKI 的时候被这个折磨疯了,所以自己镜像后的代码做了点改动,搜索功能我解决不了,不过我把所有菜单都展开了,看着能方便一点
2024年10月12日
9 阅读
0 评论
0 点赞
2023-11-07
使用 Docker 架设 OpenVPN 服务端实现异地组网
需要一台有公网IP的服务器操作系统:Ubuntu 22.04 LTSDocker版本:Docker Engine - Community 24.0.6Docker镜像地址:https://hub.docker.com/r/kylemanna/openvpnGitHub开源地址:https://github.com/kylemanna/docker-openvpn服务端架设生成配置文件该Docker镜像对OpenVPN的一些操作进行了封装,这里初始化环境配置文件# 初始化配置文件到宿主机的/opt/docker/openvpn目录下(可自行修改) $ docker run -v /opt/docker/openvpn:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://公网IP # 配置文件初始化完成,如有需要可以在这里修改配置文件便于后面生成证书 $ ls /opt/docker/openvpn/ ccd openvpn.conf ovpn_env.sh生成服务端证书OpenVPN中有证书的概念,服务端需要有证书才可以启动,否则会启动报错,这也是上面运行docker容器时为什么都加--rm的原因,这里初始化服务端证书# 根据配置文件初始化服务端证书,结尾nopass为可选项,表示无需密码生成证书,过程需要输入Common Name,如不想输入可以选择直接回车 $ docker run -v /opt/docker/openvpn:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki nopass # 证书生成时间可能会比较长,会输出一堆.....+.......耐心等待即可,生成后可查看效果 $ ls /opt/docker/openvpn/ ccd openvpn.conf ovpn_env.sh pki启动OpenVPN服务启动OpenVPN服务就比较简单了,直接使用下面段命令启动容器即可,这里需要注意暴露端口使用的时udp协议,如果服务器有设置安全组记得要放行udp协议的1194端口# 启动OpenVPN服务 $ docker run --name openvpn -v /opt/docker/openvpn:/etc/openvpn -p 1194:1194/udp --cap-add=NET_ADMIN -d kylemanna/openvpn # 查看运行状态,检查OpenVPN是否启动成功 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 85c5c0da569a kylemanna/openvpn "ovpn_run" 2 seconds ago Up 1 second 0.0.0.0:1194->1194/udp, :::1194->1194/udp openvpn # 查看目录,发现此时多了一个crl.pem,据说是证书吊销列表文件,我没用过不太清楚不过不用管放着就行 $ ls /opt/docker/openvpn ccd crl.pem openvpn.conf ovpn_env.sh pki客户端管理之前说过OpenVPN中有证书的概念,服务端必须有证书才可以启动,同样的客户端也需要有证书才能加入VPN网络,这里介绍Docker中封装的几个客户端管理命令,也可以点击这里直接看原文档命令解释docker exec -it openvpn easyrsa build-client-full [client] nopass生成无密码的客户端证书docker exec -it openvpn ovpn_getclient [client] > [client].ovpn构建带有嵌入证书的.ovpn文件docker exec -it openvpn ovpn_listclients查看客户端列表docker exec -it openvpn ovpn_revokeclient [client] remove吊销客户端证书使用案例# 生成一个客户端证书 cc $ docker exec -it openvpn easyrsa build-client-full cc nopass # 查看客户端列表,多了一个刚刚创建的cc $ docker exec -it openvpn ovpn_listclients name,begin,end,status cc,Nov 7 08:00:22 2023 GMT,Feb 9 08:00:22 2026 GMT,VALID # 构建带有嵌入式证书的.ovpn文件 $ docker exec -it openvpn ovpn_getclient cc > cc.ovpn # 查看配置文件目录,多个了cc.ovpn文件,这个就是客户端加入VPN网络用到的文件,里面嵌入了证书 $ ls /opt/docker/openvpn ccd cc.ovpn crl.pem openvpn.conf ovpn_env.sh pki # 正常来说每个客户端都应该有个独享的.ovpn证书,如果不想让某个人继续使用VPN就吊销它的证书,吊销过程需要手动输入yes $ docker exec -it openvpn ovpn_revokeclient cc remove # .ovpn文件需要手动删除,吊销后可以查看证书列表看看效果,这里我就不看了 $ rm /opt/docker/openvpn/cc.ovpn当服务端的配置项做出修改后如果没有生效,建议删除证书重启容器后生成新的证书在进行测试修改IP段通过Docker镜像生成的环境配置中,默认使用的IP段是192.168.255.x,如果不幸网络环境与这个IP段冲突就不好办了,针对这点可以通过修改配置文件来修改IP段,这里我选择将IP段修改为10.18.0.x# 编辑OpenVPN配置文件 # 将 server 192.168.255.0 255.255.255.0 改为 server 10.18.0.0 255.255.255.0 # 将 route 192.168.254.0 255.255.255.0 改为 route 10.18.1.0 255.255.255.0 $ vim /opt/docker/openvpn/openvpn.conf # 编辑环境配置文件 # 将 declare -x OVPN_ROUTES=([0]="192.168.254.0/24") 改为 declare -x OVPN_ROUTES=([0]="10.18.1.0/24") # 将 declare -x OVPN_SERVER=192.168.255.0/24 改为 declare -x OVPN_SERVER=10.18.0.0/24 $ vim /opt/docker/openvpn/ovpn_env.sh配置分割隧道当客户端加入VPN网络后全局都会走VPN网络,如果服务器带宽不高就会严重影响使用体验,个人强烈推荐配置分割隧道,只有访问VPN内部资源时走VPN网络,可点击访问原文档查看对此的描述# 禁用默认路由(-d),但仍使用NAT(-N)来保持网络地址转换启用 $ docker exec -it openvpn ovpn_genconfig -N -d # 使用ovpn_genconfig修改配置后目录下会对原配置进行备份生成.bak文件 $ ls /opt/docker/openvpn ccd crl.pem openvpn.conf openvpn.conf.1699346494.bak ovpn_env.sh ovpn_env.sh.1699346494.bak pki配置静态(固定)IP当客户端加入VPN网络后默认是从前往后分配IP地址的,如果有某台机器需要固定IP的话可以通过在ccd目录下添加配置文件来实现,可以点击这里查看原文档,例如之前创建的客户端,我希望使用cc证书登录的用户分配到的始终是静态IP# 在ccd目录下创建与客户端同名的文件 # 在客户端同名文件中添加: ifconfig-push 10.18.0.6 10.18.0.5 # 其中.0.6代表IP地址,.0.5代表网关地址 $ vim /opt/docker/openvpn/ccd/cc需要注意的是IP地址不能随便用,只能从以下范围中选取,具体详见这篇文章,否则可能会报错[ 1, 2] [ 5, 6] [ 9, 10] [ 13, 14] [ 17, 18] [ 21, 22] [ 25, 26] [ 29, 30] [ 33, 34] [ 37, 38] [ 41, 42] [ 45, 46] [ 49, 50] [ 53, 54] [ 57, 58] [ 61, 62] [ 65, 66] [ 69, 70] [ 73, 74] [ 77, 78] [ 81, 82] [ 85, 86] [ 89, 90] [ 93, 94] [ 97, 98] [101,102] [105,106] [109,110] [113,114] [117,118] [121,122] [125,126] [129,130] [133,134] [137,138] [141,142] [145,146] [149,150] [153,154] [157,158] [161,162] [165,166] [169,170] [173,174] [177,178] [181,182] [185,186] [189,190] [193,194] [197,198] [201,202] [205,206] [209,210] [213,214] [217,218] [221,222] [225,226] [229,230] [233,234] [237,238] [241,242] [245,246] [249,250] [253,254][1, 2]IP地址默认被服务端占用,所以IP地址是从[5, 6]开始分配的,个人建议按照OpenVPN的规范来使用,例如[21, 22]这一组,应该用后面的22作为IP地址,前面的21作为网关,如下所示# 假设这是ccd目录下某个配置文件 ifconfig-push 10.18.0.22 10.18.0.21其他配置项这里只记录几个我用到过的配置项,其余配置项日后我用到在随时补充# 允许客户端与客户端相连接 client-to-client # 允许一套证书或账户多人登录 duplicate-cnWindows加入VPN网络安装OpenVPN客户端软件,软件下载地址结尾会给出,安装过程中会提示安装虚拟网卡的弹窗,一定要点击同意,安装完成后打开OpenVPN的安装目录,将服务端构建的.ovpn文件下载并放入config目录下,然后双击运行OpenVPN软件,右下角右键建立连接即可Linux加入VPN网络这里使用Ubuntu作为演示机器,首先要保证服务器内有/dev/net/tun设备文件,可以执行ls /dev/net/tun命令查看,有打印结果就说明可以使用Proxmox构建的CT虚拟机的特殊处理如果使用Proxmox构建的CT虚拟机内没有该设备文件,需要检查宿主机是否有这个设备文件,如果宿主机有该设备文件但虚拟机内没有,可以编辑虚拟机的配置文件,具体如下所示# 在宿主机内编辑CT虚拟机的配置文件 # 在配置文件结尾追加 lxc.mount.entry: /dev/net/tun dev/net/tun none bind,optional,create=file # 然后回到CT虚拟机内重启系统,就可以看到这个设备文件了 $ vim /etc/pve/lxc/xxx.confUbuntu加入VPN网络在这之前需要先将.ovpn文件上传至ubuntu,假设文件上传至/root/client.ovpn# 安装OpenVPN $ apt install openvpn # 加入VPN网络 $ openvpn --config /root/client.ovpn资源下载{cloud title="蓝奏网盘" type="lz" url="https://hanzhe.lanzoue.com/i31Ux1e38zre" /}
2023年11月07日
96 阅读
3 评论
0 点赞