本來打算用 Termux API 中的讀取短信功能,結果官方說谷歌不允許,所以後來找到了 hydrargyrum 開發的 Epistolaire。 Epistolaire 可以把本機的短信和彩信全部導出到 JSON 文本中,使用非常簡單。
本文更新於 2020/08/09。
教程什么的
本來打算用 Termux API 中的讀取短信功能,結果官方說谷歌不允許,所以後來找到了 hydrargyrum 開發的 Epistolaire。 Epistolaire 可以把本機的短信和彩信全部導出到 JSON 文本中,使用非常簡單。
本文更新於 2020/08/09。
我的 WordPress 安裝了 Limit Login Attempts 插件,其中可以設置輸入錯誤密碼 m 次封鎖這個 IP n 小時,並記錄下這個 IP。本站最近有很多來自 Cloudflare IP 的錯誤登錄嘗試,於是我試圖使用下面兩個方法攔截,可惜結果證明無效。於是我使用了 OTP (One-time password)來增加暴力破解的難度,直到再次找到可行的攔截方法。我還安裝了一個修改 WordPress 登錄頁網址的插件 WPS Hide Login,應該也能有些作用。
免費 Cloudflare 用戶可以創建 5 個防火牆規則,我建立了如下兩條:
(http.host in {"ft.wupo.info"} and ip.geoip.asnum in {13335}) (ip.src in {173.245.48.0/20 103.21.244.0/22 103.22.200.0/22 103.31.4.0/22 141.101.64.0/18 108.162.192.0/18 190.93.240.0/20 188.114.96.0/20 197.234.240.0/22 198.41.128.0/17 162.158.0.0/15 104.16.0.0/12 172.64.0.0/13 131.0.72.0/22} and http.host eq "ft.wupo.info")
我隨便查了幾個 Cloudflare IP 的 AS 編號都是 13335,所以第一條就是如果 IP 的 AS 編碼是 13335 就攔截。順便推薦個我經常用的查 IP 的網站 IP-API。
第二條是根據 IP 地址來封鎖,從這裡獲得 Cloudflare 的 IP 。
(ip.geoip.country ne "KP" and http.host eq "ft.wupo.info")
如果想根據 IP 所在國家來限制訪問也是可以的,上面的便是限制了北韓以外 IP 的訪問本站。
這個就是一行一個填已經攔截的 IP 就可以了,可以把所有 IP 複製下來,然後粘貼到 LibreOffice Calc 中,按需要進行排序後複製出 IP 列貼回插件中就可以了。
一次性密碼 (One-time password)又稱動態密碼或單次有效密碼,是指計算機系統或其他數位裝置上只能使用一次的密碼,有效期為只有一次登入會話或交易。OTP 避免了一些與傳統基於密碼認證相關聯的缺點;一些實作還納入了雙因素認證,確保單次有效密碼需要存取一個人有的某件事物以及一個人知道的某件事物。——維基百科
本站使用的開源 OTP 插件是 WP-OTP。安裝啟用後在「使用者」>「個人資料」頁面,會有二維碼出現,用自己喜歡的 OTP 客戶端掃描後輸入生成的密碼就開啟了網站的 OTP 登錄。
我使用的 OTP 軟件是開源的 andOTP。安裝後會提示給 andOTP 客戶端自己設置個密碼,以保護動態密碼的安全。設置好後點擊主界面右下角的「+」,掃描 WordPress 個人資料頁的二維碼,將出現的數字填入 WordPress 後台就完成了所有的設置。
平常使用的場景是:打開 WordPress 的登錄頁,輸入賬號密碼。打開手機上的 andOTP 查看當前的動態密碼( 6 位數字)。將動態密碼也輸入登錄頁,完成登錄。
發現一個令人墮落的應用( ͡° ͜ʖ ͡°) Hendroid:Doujinshi & Hentai-Manga archiving and viewing app.
目的:未 root 的安卓 8 手機在 WiFi 和 4G 下使用 dnscrypt-proxy 2 避免 DNS 污染。
使用 Termux 來運行 dnscrypt-proxy 2,配置方法參考Fedora使用DNSCrypt。由於手機未 root ,所以無法監聽 53 端口,可以用 5353 替代。配置成功後 dig ft.wupo.info -p 5353 @127.0.0.1 應該可以能正確返回 DNS 查詢。
使用 personalDNSfilter (去 F-droid 下載)實現的本地 VPN 來修改系統的DNS查詢,它同時還能攔截廣告。配置非常簡單,只需要在DNS配置欄選中禁用 DNS 服務器查找,並在輸入框中輸入下面一行即可。
127.0.0.1::5050::UDP
新建文件 /data/data/com.termux/files/home/scripts/dns.sh 並給予執行權限。
startDns(){ nohup /data/data/com.termux/files/home/opt/dnscrypt/dnscrypt-proxy -config /data/data/com.termux/files/home/opt/dnscrypt/dnscrypt-proxy.toml& echo "starting dns" sleep 10 am start --user 0 -n dnsfilter.android/.DNSProxyActivity sleep 2 } stopDns(){ am start --user 0 -n dnsfilter.android/.DNSProxyActivity sleep 8 pkill dnscrypt-proxy echo "killed dns" } status(){ vt1="$(ps -ef | grep dnscrypt-proxy | wc -l)" vt2=" " if [[ $vt1 = "2" ]]; then dnsproxyStatus="1" vt2="$(dig -p 5353 +short www.v2ex.com @127.0.0.1)" else dnsproxyStatus="0" fi } if [[ $1 = "1" ]]; then echo "start" startDns elif [[ $1 = "2" ]]; then echo "restart" stopDns sleep 3 startDns elif [[ $1 = "0" ]]; then echo "stop" stopDns elif [[ $1 = "s" ]]; then status echo "dns: $dnsproxyStatus | $vt2" fi
在 ~/.bash_profile 中增加快捷命令
alias d1='/data/data/com.termux/files/home/scripts/dns.sh 1' alias d0='/data/data/com.termux/files/home/scripts/dns.sh 0' alias dt='/data/data/com.termux/files/home/scripts/dns.sh s'
使用的時候,運行 d1 即可啟動 dnscrypt-proxy 服務,並且拉起 personalDNSfilter。運行 d0 則會先拉起 personalDNSfilter,此時需要手動點下 Close 退出 APP,然後會關閉 dnscrypt-proxy 服務。
本文更新於 2021/11/22。
zhconv 提供基于 MediaWiki 和 OpenCC 词汇表的最大正向匹配简繁转换,支持地区词转换:zh-cn, zh-tw, zh-hk, zh-sg, zh-hans, zh-hant。Python 2、3通用。
若要求高精确度,参见 OpenCC 和 opencc-python。
用起來方便準確,轉換模式若是 zh-tw 會進行地區詞轉換,如將「软件」轉換為「軟體」。而使用 zh-hant 則只轉換簡繁,如將「软件」轉換為「軟件」。
pip install zhconv
from zhconv import convert print(convert('他說「我幹什麼不干你事。」', 'zh-cn')) #他说“我干什么不干你事。” print(convert('计算机软件', 'zh-tw')) #計算機軟體 print(convert('计算机软件', 'zh-hant')) #計算機軟件
命令行工具
python -mzhconv [-w] {zh-cn|zh-tw|zh-hk|zh-sg|zh-hans|zh-hant|zh} < input > output #如 python -mzhconv zh-hant <山东合村并居的真实情况.txt> 山東合村並居的真實情況.txt
歡迎大家使用我在 Heroku 上部署的在線中文轉換工具。
本文更新於 2020/12/31。
DNS (Domain Name Server) 查詢是指將域名轉換成 IP 地址的過程。比如將你要訪問 www.douban.com,DNS查詢後,會告訴瀏覽器豆瓣的服務器IP是162.14.6.67。
普通的 DNS 查詢是明文傳輸的,這意味着你的互聯網服務提供商或者其他監聽網絡的人可以知道你正在訪問什麼網站。
火狐瀏覽器支持加密的 DNS 請求,但這不是默認的開啟的。(比如英國政府就要求它是禁用的,因為它會削弱他們屏蔽一些網站的能力)。
有兩種方法在火狐中啟用DoH,第一種是在 偏好設定 > 一般 > 網路設定 > 開啟 DNS over HTTPS ,開啟即可。第二種是在地址欄輸入
about:config
搜索「trr.mode」,雙擊修改數值為 2:如果 DoH 失敗則用普通 DNS 查詢;或 3:全部使用 DoH 查詢。
network.trr.mode 2
除了默認的 Cloudflare DNS,也可以嘗試使用 OpenDNS 的 DoH 服務,其網址是:https://doh.opendns.com/dns-query 。友情提示:OpenDNS 現在是 Cisco 旗下的了。
當瀏覽器在發起一個 TLS 請求的時候(比如 HTTPS 請求), Server Name Indication (SNI) 會暴露你要連接到域名。你可以通過啟用火狐中的 encrypted SNI 來避免這一點。
在地址欄輸入
about:config
搜索「esni」,雙擊修改數值為 true 。
network.security.esni.enabled true
可以在 Cloudflare ESNI Checker 進行檢測。如果設置成功,不僅能提升隱私保護,還可以解決由 DNS 污染導致的網絡問題。比如 Medium 和 一些啟用了 Cloudflare CDN 的站點就可以直連了。
本文更新於 2020/08/23。