VMWare Fusion 12 登陆 M1 芯片

在我拿到我的 M1 Macbook Air 的时候, 我就知道接下来的五年内我会一直与 3A 游戏无缘. 事实确实是这样的, 先不说虽有雷电三接口却不支持外置显卡的弊病, Bootcamp 也被苹果禁用, 原因居然是 “微软不授权 Arm Windows 跑在苹果机器上”. ( 厨子: “你说什么? Li 什么? 什么 nux? …” )

对于我这种不折腾就会死星人来说, 虽然身体入了苹果教, 心还是留在 Linux 阵营的嘛! 所以不得已, 只能每次 vscode 远程到我的树莓派上过瘾. 期间也一直在关注虚拟机的发展. 我曾经在淘宝上买过盗版的 Parallel Desktop, 居然跑起来了! 居然还能带 Arm Windows 10 !! 居然还能跑 3A 大作 Control 跑到 30 帧!!! 我整个人都是懵逼的啊. (不过代价就是 CPU 温度直线上升到九十度, 这也就是我当时积极尝试 DIY Macbook 底座的原因. 详见博文 为 Mac DIY 一个半导体制冷底座 )

然而好景不长, 在升级到 MacOS 11 之后淘宝上所有盗版 PD 集体扑街了… (背景音: M1 虚拟化产业到了生死存亡的时刻!!!) 浑浑噩噩几个月过去后, 我突然看到新闻, VMware 这个后进生居然也捣鼓出东西来了! 不过当时才开学半个月, 我就把这条新闻抛诸脑后了.

九月底 VMware Fusion 公测的消息

今天我突然心血来潮去搜了一下相关消息, 好家伙, 发布都整整两个月了. 于是就有了这篇博文, 记录一下我的新玩具.

閱讀全文 VMWare Fusion 12 登陆 M1 芯片

使用 Cloudflare Access 保護在線應用

考慮以下場景: 你想要 SelfHost 一個在線協作平台/私有雲/Git倉庫供團隊使用, 或者想要和別人分享服務器 SSH 權限; 但是直接把應用暴露在互聯網上感覺實在不放心, 團隊規模又沒有大到非要使用 VPN 組網的地步, 亦或許你的團隊成員技術都很拉胯, 根本沒有什麼安全意識…

或者你就想要單純的保護一下 WordPress 的後台, 除了你自己其他人都不許碰. 但是你的 IP 天天都在變, 使用固定 IP 肯定不合適. 有什麼簡單的方法可以做到只允許自己訪問?

Cloudflare Access

碰到這種情況, 第一個想到的當然又是去白嫖 CF 乾爹了.

Cloudflare Access 其實就是一個帶非常強大的驗證功能的反向代理. 可以把這個玩意想像為一道門加一隻看門狗, 你的應用就是被它保護著. 要讓 Cloudflare Access 生效, 有一個大前提是用戶能且只能通過 Cloudflare 連接到你的應用, 這就得用到 Cloudflare Argo Tunnel 來完成 (以 WordPress 舉例, 看這篇文章 ). 剩下的就是按部就班了.

準備

首先先去註冊 Cloudflare Teams , 註冊這個玩意之後才能解鎖 Cloudflare Access. 使用以下鏈接註冊 Cloudflare Teams (有免費方案, 但是得先綁定信用卡)

Cloudflare Teams 註冊入口
https://dash.cloudflare.com/sign-up/teams

添加 Login Method

註冊完畢後點進 Settings -> Authentication -> Login Methods -> Add New 添加登錄方案. 所謂的驗證方案就是字面意思: 證明你自己是誰, 然後 Cloudflare 才能看看放不放你進去. 如果不添加 Login Methods , 默認就只有發郵件, 煩得要死.

Login Method 這裏就先選擇 Github 好了, 設置非常方便. 點擊選擇 Github 然後按照屏幕右邊的提示操作.

Create New Github Application
https://github.com/settings/applications/new

添加成功畫面

要記住, 所謂的 Github 登錄其實就是讓 Cloudflare 驗證註冊 GitHub 帳戶時使用的郵箱. 所以之後調規則的時候允許放行還是要根據郵箱來.

添加 Group

我一個人可能會用到幾個郵箱, 不同的驗證方式… 為了避免每一次創建應用時都手動設置, 這裏創建一個名為 “Myself” 的 Group 並勾選 “Default Group” 來默認將我放行.

到此為止, 為設置 Access 所做的準備就完成了. 下面就開始介紹如何使用 Access 保護你的應用程序.

保護 WordPress 後台

最基礎的 Case 就拿 WordPress 舉例. 比如說, 我看防火牆紀錄就能看到整天都有吃飽了沒事幹的 Hack Boy 訪問 /wp-login.php 暴力試密碼. 雖然我的密碼強度足夠, 但是還是感覺很煩. 之前在 例行安全檢測-加固 WordPress 裡面給出的方案是通過編輯 .htaccess 文件額外加一個口令 (HTTP Auth). 其實這樣就足夠好了, 但是看上去不是很炫酷, 具體效果看下面兩張圖:

驗證介面
驗證失敗介面

什麼鬼啊? 這麼醜不拉機的介面感覺自己回到了零零年!

如果你以前做過類似的操作, 先把它關掉.

注釋掉這幾行代碼

然後在 Cloudflare for Teams -> Access -> Applications 介面狂戳 “Add an Application”, 然後因為 WordPress 在這個 Case 裡就是 Self Hosted, 所以選擇 Self Hosted.

然後 App Name 自己填, Duration 看你需求, 我填了 24hr, domain, path 之類的, 看下圖就是了.

往下翻, Identity Provider 選擇 One Time Pin 和 Github, 點擊 Next.

Policy 就勾選前面創建的 Group : Myself 就可以了, 點擊 Next ( 這張圖我是創建完成之後加進去的, 所以 Next 按鈕變為 Add policy )

這樣就添加完成了! 之後訪問 wp-login.php, 都會被定向到以下介面要求登錄. 炫瞎狗眼吧!

保護 Code Server

如果說之前那個有點畫蛇添足的意思, 那麼下面這個就很必要了.

比如說, 我現在跑著一個 Code-Server ( VSCode 網頁版 ), 或者我的一個個人網盤, 或者 Jupyter Notebook , 現在我想要隨時隨地在有互聯網接入的地方都可以使用 Code Server 敲代碼, 應該怎麼辦? 當然 Jupyter 和 Code-Server 都有一個簡單的驗證機制, 但是畢竟實現很簡單, 說不定有漏洞, 而這兩個都是擁有 sudo 權限可以直接操作硬盤上的文件的, 就算是跑在 Docker 裡面也不是不能提權, 萬一出了什麼問題爆個漏洞, 那我硬盤上的其他文件不都得完蛋? 這個風險也太大了.

主要就是考慮到這個, 我才會想要去嘗試 Cloudflare Access 的. 具體配置和前面沒太大區別,也非常的簡單.

Code Server 的配置

這篇博文就是一個實驗性質的, 紀錄一下 Cloudflare 這個玩具的新玩法, 所以比較水. 如果你碰敲讀到這裡而且感覺很氣, 那麼抱歉啦 🙂

解決 Openwrt 隨機重啟/死機 問題

在裝完 Openwrt 之後, 隨機重啟的問題就一直如影隨形. 經常在 大半夜/看 Youtube 看到一半 這種尷尬的場合聽到它 滴滴滴滴滴 重啟的聲音. 嘗試過很多種辦法, 無果.

每次重啟都會導致運行在 Openwrt 下的一堆設備停擺 5 – 10 分鐘. 期間 Wifi 無法使用, 博客也無法訪問. 幸而 Openwrt 可以自動重啟, 因此問題不算太大.

JetPack 毫不留情的轟炸我的郵箱
閱讀全文 解決 Openwrt 隨機重啟/死機 問題

使用 Restic 加密增量备份到网盘

转载声明:
本文很大程度上参考了 KnightHart 发布的贴文 restic-全平台nas的加密增量快照备份神器.
但是在原文基础上有增添和修改, 若有侵权, 请联系 [email protected] 删除文章.

前言

搭建家庭 NAS 的前前后后我曾经格盘格过两次, 尽管每次都抢救回来了, 但是自那以后我一直在盘算着备份的主意. 和 KnightHart 的历程大致相同, 我尝试过:

  • 简单的 git 备份 (本地 .git 文件夹不断增大而且大文件有限制)
  • syncthing (是个好东西但是只支持在自己的设备间同步, 占磁盘) 
  • 百度网盘 (不安全、下载限速)
  • rclone + 白嫖的 Google Teamdrive (无法加密, 不支持增量)

解释一下 Google Teamdrive 为什么要加密吼. 前阵子网上出现了很多 Cloudflare Workers 脚本允许 User 给自己分配一个空间无限的, 挂在某大学名下的团队盘, 可以随便往里面扔、取文件, 而且一般 Google Personal Drive 的功能它都有哦. 但是唯一的问题是, 提供脚本的人是可以看到你网盘里的文件, 而且是可以任意上传下载的; 那这不就隐私性全没了吗? 所以如果要备份, 一定要加密的. 另外, Google Teamdrive 有传输速率限制, 所以备份如果不是增量的, 也会很麻烦.

閱讀全文 使用 Restic 加密增量备份到网盘

CentOS/Debian 安裝 BOINC 受控端簡明教程

因為最近一直在折騰 VPS, 然後一直都覺得 VPS 閒置時就是在浪費錢. 當然我也嘗試過用 CPU 挖礦, 不過當看到礦池顯示 “距離收益還有 2147483646 年” 的時候, 我徹底怒了: 我 TM 還不如去做公益!

於是我就安裝了 BOINC…

轉載聲明:
本文轉載自「闪星空间」, 遵循 署名-非商业性使用 3.0 (CC BY-NC 3.0) 协议.
本文在原文基礎上有輕微修改, 主要是新增了 CentOS 的部分.

BOINC 全称 Berkeley Open Infrastructure for Network Computing,即伯克利开放式网络计算平台,是由美国加州大学伯克利分校电脑学系发展出的分布式计算平台,目前已成为世界上主流分布式计算平台之一。希望用户利用空余的算力,帮助进行包括数学、医学、物理和气象学等学科的学术研究。

閱讀全文 CentOS/Debian 安裝 BOINC 受控端簡明教程

Man Page: 如何使用以及小貼士

這是什麼

Man Page ( Manual Page ) 是 Unix 系統標配的在線系統手冊, 主要用來查詢命令. 在使用包管理器安裝程序的時候基本總是可以看到 configurating man-db... 的輸出, 是程序將自己的手冊加入到系統手冊當中.

儘管 Man Page 聲稱是在線手冊 ( 其本身也支持在線查詢 ), 但是大多數手冊都以 troff 格式存儲在本地.

包含的章節

章節描述
1命令
2System calls (Linux 內核函數)
3庫函數. (收錄了部分 C 語言函數)
4特殊檔案 (比方說 /dev 下的文件) 和驅動
5檔案格式與協定 (e.g /etc/passwd )
6遊戲和屏保
7雜項
8管理員指令

在手冊的開頭和結尾都可以看到 名稱(數字) 形式的字串, 括弧中的數字就是說明這個條目隸屬的章節. 一個條目可以隸屬于多個章節, 比如 passwd 是一個命令的同時也是一個檔案, 所以它同時隸屬于第一和第五章.

閱讀全文 Man Page: 如何使用以及小貼士

Linux 將運行中的任務轉後台並在會話關閉後繼續運行

假如我想要在服務器上把文件從一個硬盤考到另一個硬盤, 就要用到 cp/dd/rsync 命令對吧, 我想要讓服務器去運行這個命令, 我可以直接把終端關掉, 這時候第一個想起來就是 nohup [命令] &. nohup 意思是讓終端掛掉時進程不結束, & 的意思讓進程在後台執行.

但是如果我在拷貝之前沒想這麼多, 開始了之後才發現要運行好久, 這個時候應當怎麼辦呢? 我在中文互聯網上並沒有找到相關的問題/答案. 反倒是在 Stack Overflow 上找到了.

原問題及回答:

https://stackoverflow.com/questions/625409/how-do-i-put-an-already-running-process-under-nohup

  1. 按 Ctrl + Z 暫停程序
  2. 輸入 bg 讓暫停的程序在後台執行
  3. 輸入 jobs 查看程序 id (如果之前沒有執行類似操作過就是 1)
  4. 輸入 disown -h [id] 從 shell 的作業列表移除指令

Thumbnail: Sea Shell by Shyam B
If using the image violates your rights, or there’s anything related to copyright laws, please contact me at [email protected], I will deal with them immediately.

Samsung Tab S5e 安裝 Magisk + Root + TWRP

機型Samsung Galaxy Tab S5e LTE (gts4lv)
代號SM-T725C
CSCChina Open China (CHC)
Android10 -> 11 ( Q -> R )
Sammobile Download
ADBOffical Download
USB DriverSamsung Official
OdinOdin 3.13.1
TWRPsamsung/samsunggalaxytabs5elte.html
TWRP App Apkfile
Magisk#samsung-system-as-root
topjohnwu/Magisk
FrijaSlackingVeteran/frija
所有本次刷機要用到的信息和鏈接都在上方.

備註:

  • Wifi 版本的 Tab S5e 也可以參考我的過程, 只是 TWRP 換為
  • 沒有梯子的話下載固件那一步會非常慢, 請自行準備
  • Samfirm 在 2021年已經失效, 所以轉用 Frija
  • 本文選擇的升級方式是清除數據重刷, 如果以前安裝過 Magisk 不想清除數據的可以跳過清除數據那一步
閱讀全文 Samsung Tab S5e 安裝 Magisk + Root + TWRP

WordPress Docker 優化: 添加 PhpRedis、Memcached 支持

環境:
Docker + WordPress, 用官方默認的 Apache 驅動, 不是 fpm.

因為 PhpRedis 不屬於 PHP 內置的模塊, 而 PHP 內置了一個 Predis 又太慢太蛋疼, 所以要重新構建 Docker Image 為 PHP 添加 Redis 模塊支持.

為了添加這個 Redis 模塊, 我特別做了一些搜索, 發現網上清一色的全部是 本教程只適合 fpm 版本云云. 我個人認為這是一種迷思啊, 因為不論是用 php-fpm 還是 apache + php-mod 應該都和 php 的插件沒有太多關係吧. 所以雖然上面環境說的是 wordpress-apache , 用 wordpress-fpm 的朋友照著這個教程做也沒差.

構建 Docker Image

mkdir /tmp/build
cd /tmp/build
# 添加 Memcached 支持
cat > /tmp/build/Dockerfile << EOF
FROM wordpress:latest
RUN apt-get update
RUN apt-get install -y libz-dev libmemcached-dev && \
    pecl install memcached && \ 
    docker-php-ext-enable memcached && \
RUN rm -rf /tmp/pear && \
    apt-get clean
EOF
# 添加 Redis 支持
cat > /tmp/build/Dockerfile << EOF
FROM wordpress:latest
RUN pecl install -o -f redis && \
    docker-php-ext-enable redis
RUN rm -rf /tmp/pear
EOF

關於 Memcached vs Redis… 這個網上都可以搜到吧. 我的意見是, 兩者都能給一個 WordPress 小博客提供相當不錯的 Object Cache. 效能的話, Redis 略勝一籌, 但是要求專門開一個 Redis 容器. 而 Memcached 安裝好之後直接用就可以了. 所以還是根據服務器的配置來選吧.

docker build -t wordpress_extended .
閱讀全文 WordPress Docker 優化: 添加 PhpRedis、Memcached 支持

WebRTC IP 洩露漏洞

記得惡維事件嗎? 六扇門跨省追捕中學生然後把他們扔進監獄言行拷打一直電到陰毛燒焦為止.
據說有一些完全無辜的網友被攪進這件事情, 就是因為他們曾經瀏覽過或者編輯過惡維, 警方在惡維的數據庫裡查到了他們的 IP.

能上惡維一定是掛了 VPN 的啊? 啊對, WebRTC Leak 就是 Leak 了 VPN 背後的 IP, WebRTC Leak 的原理和 PoC 可以在這裡找到.

這是因為惡維“很走心”的在站點上掛了一個 JS, 利用了 WebRTC 漏洞從而繞過代理紀錄了瀏覽者的真實 IP.

惡俗掛掉了 (舊的), 但是誰都不能說什麼時候某個網站也會掛掉, 帶一大批網友下水 (品蔥, 比方說) . 畢竟正常人誰會注意網站加載了那個 JS, 有沒有用 WebRTC. 說不定 JS 還是加密的, 根本防不勝防.

你可以在 這個網站 檢測自己有沒有中招.

解決方案

手機端如果是使用 Chrome , 除了掛 V2 之類的代理其他根本就無解, Firefox 還可以自己更改設置, Chrome 已經不允許了

PC端的話可以使用插件, 可以改設置 ( 我推薦使用插件的啦 ), 比如 Firefox 就有這款插件.

當然, 電腦手機都可以使用 Tor 瀏覽器來規避這種風險; 我的建議是, 就不要使用手機瞎幾把瀏覽境外反動勢力集團網站.

如果手頭暫時沒有 Tor, 只是想要簡單的瀏覽網頁 ( 沒有登錄等需求 ), 可以使用網頁代理來訪問網站. 你也可以使用我手頭的這個 JSProxy 反向代理, 親測可以防止 WebRTC leak. ( 因為原作者太長時間沒有更新, 這個 JSProxy 好像不能 Pass Cloudflare CDN 保護, 訪問品蔥等網站會一直卡在 JS 詢問頁面上. 所以如果有 Tor 還是用 Tor 吧.