Category: Technical Document

如何在 WordPress 中添加 Cloudflare Turnstile 验证码

背景 新建博客系統的時候,默認的配置往往沒有開啟spam信息過濾的,導致一些爬蟲網站會頻繁的在你的文章下面進行機器人流言,在後台產生一大堆的辣雞信息,雖然不能直接展示出來,但是在後台展示的提示信息,對於有點強迫症的我來說,多少有點不可接受,以前使用過Google CAPCHA和reCAPTCHA 用於阻止非用戶的惡意支付行為,現在用在博客系統中,想使用Cloudflare 的Turnstile試試,像比較google 一些CAPCHA的地獄級的圖片識別,Cloudflare Turnstile 的用戶體驗比前者舒服很多。 Cloudflare Turnstile 使用了一系列非侵入性技術,這種技術通常在瀏覽器中不可見地運行,這使您可以在不要求訪問完成複雜的謎題的情況下保護您的網站。 Cloudflare 為了保護訪問者的私密性,使用了Apple 的Private Access Tokens 來測試訪問者是否是真人,而無需搜集額外數據,同時支持表單生成器或者WooCommece的集成,可以根據你的需求在不同的地方添加Cloudflare Turnstile。 在本文中,將向您展示如何將Cloudflare Turnstile 添加到Wordpress 網站中。 安裝Wordpress Cloudflare turnstile 插件 在wordpres的後台的插件市場,搜索關鍵詞 cloudflare Turnstile ,就會看到該插件,該插件允許您免費接入到Cloudflare Turnstile 服務。 安裝並激活插件,跳轉到設置-> Cloudflare Turnstile. 該插件需要您提供API keys(密鑰和密碼)。 在後台提示中的Link 點擊訪問: You can get your site key and secret key from here: https://dash.cloudflare.com/?to=/:account/turnstile 獲取Cloudflare Turnstile的密鑰和密碼 註冊Cloudflare 平台的帳號,該平台的帳號註冊免費,登陸您的帳號然後訪問上述連結,會進入如下界面。 然後點擊【添加小組件】,自定義自己的組件名字,比如:wp-name. […]

/sbin/multipathd 的功能、实现原理及内存占用分析

I. 引言 在现代数据中心和企业IT环境中,存储区域网络 (SAN) 的可靠性和性能至关重要。/sbin/multipathd 守护进程是 Linux 系统中设备映射器多路径 (Device Mapper Multipath, DM-Multipath) 功能的核心组件,它通过管理服务器与存储阵列之间的多条物理路径,提供了关键的 I/O 故障切换和负载均衡能力,从而确保了存储访问的高可用性和性能优化 1。理解 multipathd 的功能、其底层的实现机制,以及分析其可能导致高内存占用的原因,对于系统管理员和性能分析师来说至关重要。本报告旨在深入探讨 /sbin/multipathd 的这些方面,并提供诊断和优化的策略,以帮助维护一个稳定且高效的多路径环境。multipathd 不仅仅是一个简单的路径监控器,它在用户空间与内核的 dm-multipath 模块紧密协作,共同构成了 Linux 多路径解决方案的控制平面和管理核心。 II. /sbin/multipathd 的功能与实现原理 /sbin/multipathd 的设计目标是为块设备提供持续的可用性和更高的带宽连接,尤其是在 Fibre Channel (FC) 和 iSCSI SAN 环境中 1。 A. 核心功能 multipathd 的核心功能主要围绕着确保数据路径的冗余和效率。 下表总结了 multipathd 及其相关组件的核心功能: 表 2: multipathd 组件及其核心功能 组件/功能 描述 相关资料 路径管理 监控物理路径的状态,检测路径故障和恢复。 1 […]

fatal: detected dubious ownership in repository at direction

fatal: detected dubious ownership in repository at ‘/var/www/html/tv-web‘To add an exception for this directory, call: This message from Git indicates that it detected a potential security risk due to the repository’s ownership or permissions. This can happen if the repository is owned by a different user than the one running the Git command, often when […]

Google Chrome headless mode and open source project

💻 Google Chrome headless mode. php 的爬虫方式是使用curl库函数去抓去静态界面抓取,所以正则匹配的时候不是整个渲染的界面,而现在的网页中,有很多的数据以及界面采用的是二次加载,前端的界面也越来越复杂,为了更好的解决这个问题,大牛们提出了不同的解决方案: 注意⚠️ google的浏览器的指定版本,已经开始支持了Chrome Headless ,这导致了一些第三方的工具不去再去维护他们的项目。 1. phantomjs (已经停止开发维护) 👉 https://phantomjs.org/ Important: PhantomJS development is suspended until further notice (more details). PhantomJS is a headless web browser scriptable with JavaScript. It runs on Windows, macOS, Linux, and FreeBSD. Using QtWebKit as the back-end, it offers fast and native support for various web […]

GoLang get the Client’s real IP.

🤡 注意import指定的包或者庫。 😀 一些Golang常用的快捷函數,想要寫花費一番時間,既然在PHP的編程中已經經歷了一遍,那麼就稍微總結一下 Golang 獲取客戶端真實IP 當初決定接觸Golang的原因是想了解一些Golang的編程方式,發現也有指針,就寫了一個Web的應用程式。 Ip2long 将 IPv4 字符串形式转为 uint32

fatal: unable to access git url:Recv failure: Connection reset by peer.

😀 fatal: unable to access ‘github url ‘: Recv failure: Connection reset by peer 網絡解決方案: 👉 New error: could not lock config file /home/ubuntu/.gitconfig: Permission denied Hi,Hi ,it is not working .. 最終發現使用curl 命令請求該git url的時候,出現: 查看git url的主機,發現請求到了giturl所在的服務器,但是顯示的是nginx的http code :499。 以前一直是正常的,但是最近出现的问题,检查了服务器端,目前并没有变化的配置,各种参数修改,发现并不行、由于Git服务器放在公司,通过域名供应商的ddns映射到公司的内网服务器上,我看有的用户反馈是ISP可能阻断这种git,curl,wget的http/https的请求,那如果真的是这种情况,就只能使用ssh协议进行clone代码了。 如下的文章: Nginx状态码499-错误分析 大家抄來抄去的,餅不符合所有的人。 我的问题是出现在阿里云的服务器上,比如:HongKong,华南的Linux服务器,在使用curl、wget、git请求git仓库的时候,发现都是Connection reset by peer 无奈,只能问阿里云的工程师。

Wireguard 部署安裝

WireGuard是一款开源的VPN协议软件,基于Linux的内核实现,利用Curve25519进行密钥交换,ChaCha20用于加密,Poly1305用于数据认证,BLAKE2用于散列函数运算,支持IPv4和IPv6的第3层。其配置简单并且比较安全再业界还是比较有名的,相比较OpenVPN和IPsec的配置,WireGuard绝对优于它们N个数量级,并且,你只需要配置通过一次,就基本知道WireGuard的调试方式,和其他VPN协议一样,WireGuard也获得了不同平台的支持。 📝 WireGuard的安裝部署測試 基礎環境 Ubuntu 系统(Client) &mac 系统(Client)& Openwrt(Client软路由) 安装基础软件 注意⚠️:安装该软件包,常用的命令是 wg,wg-quick 命令,而 **wg**命令会有一些子命令。 生成privateKey/PublicKey对 使用wg命令生成密鑰對,命令如下.(privateKey/PublicKey,只要有wg命令即可,不需要注意在Ubuntu或者Mac或者Openwrt平台) 1. 服務端密鑰生成命令: 2. 客戶端生成密鑰命令: 注意⚠️:上面一行是privateKey,下面一行是PublicKey Ubuntu服務器端的配置 如果客戶端還想上網,那麼就需要開啟Ip4的轉發了,Linux中開啟轉發的配置,需要在文件cat /etc/sysctl.conf中添加: 立即生效,需要執行命令: wireguard的配置文件目錄是/etc/wireguard/, 文件名字格式一般是xx.conf,內容使用INI的文件格式 下面寫了一個配置文件,文件名稱為/etc/wireguard/wg0.conf MacOS 配置wireGuard配置 直接打卡MacOS安裝好的WireGuard客戶端,新建一個新的Tunnel,編輯,配置如下: 點擊連結就會看到WireGuard與服務器端的握手信息了。 相比較OpenWrt,macOS的WireGuard的配置就很簡單了 OpenWrt 配置wireGuard上網 持續更新中.. 🤗 總結 wireguard想比較別的VPN的配置,簡單了很多,在組網的過程中,真的是一個很推薦的選擇,在客戶端的選擇上,WireGuard的支持也比較豐富,就是在大陸境內的wireGuard的客戶端選擇上,並不怎麼豐富,此WireGuard的管理界面在iKuai等一些特殊的版本才會有。不管怎麼樣,如果喜歡折騰命令行的話,wireGuard大概是一個不錯的選擇 📎 参考文章 💡 有关WireGuard安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~

Golang:http: panic serving [::1]:60007: runtime error: invalid memory address or nil pointer dereference

Error message as below: 運行golang項目的時候,出現的問題,逐步排查吧,真的沒有辦法,我使用的是spew.Dump()函數打印的,最終找到了問題的梭子啊,排查的子問題如下: 最近維護舊系統,在使用Golang的http服務處理用戶的請求的時候發現本地cookie有點問題,提示如上, 想起來在保存本地的調試環境是localhost:8080,在保存cookieName的時候,想著添加一個host作為後綴,結果出現了上述的後綴,於是處理了host,代碼如下: 但是在增加了上述的信息以後,還是在getCookie的時候,出現上面的問題,突然想到瀏覽器本地的cookie緩存(開發者模式) 如圖,在找到該地方的內容以後,刪除即可。重新再請求,就沒有這個問題了