diff --git a/content/post/init-script-in-openwrt-to-start-leproxy.md b/content/post/init-script-in-openwrt-to-start-leproxy.md new file mode 100644 index 00000000..966c679c --- /dev/null +++ b/content/post/init-script-in-openwrt-to-start-leproxy.md @@ -0,0 +1,181 @@ +--- +title: "Init Script in Openwrt to Start Leproxy/在openwrt 新增自動啟動leproxy的script" +date: 2021-09-29T14:38:10+08:00 +draft: false +noSummary: false +categories: ['筆記'] +image: https://h.cowbay.org/images/post-default-8.jpg +tags: ['openwrt'] +author: "Eric Chang" +keywords: + - openwrt +--- + +最近在逐步的把舊有的VPN Router 汰換掉,改用wireguard 來作 full mesh site-to-site VPN + +不過這是另外的故事了... + +在把wireguard VPN 都搞定之後,才發現原來 openwrt 的 uhttpd 要加上 letsencrypt 的免費憑證有點難搞 + +網路上大部分都介紹用 acme.sh ,我是有測試出來啦 + +但是跟網路上的方法不太一樣了,新增了滿多步驟的,覺得很麻煩 + +想到向來愛用的 leproxy ,既然是 golang 開發的,又是open source + +就拿來compile 給openwrt router 用用看 + +想不到還真的可以, golang 真是棒! + +不過也還是要順手改一些openwrt 東西才行 + +還是簡單作個筆記好了 + + + +#### compile leproxy for arm64 + +當然要先確認好自己的環境有沒有裝了golang 可以用來編譯,這部分就不多提了。 + + +##### 下載並編譯 leproxy +``` +git clone https://github.com/artyom/leproxy +cd leproxy +GOOS=linux GOARCH=arm64 go build . +mv leproxy leproxy.arm64 +``` + +##### copy leproxy.arm64 to router +``` +scp leproxy.arm64 root@192.168.0.254:/root/leproxy.arm64 +``` + +#### 接著 ssh 登入 router 作相關設定 + +ssh root@192.168.0.254 + +##### 建立/etc/leproxy/mapping.yml + +``` +mkdir -p /etc/leproxy +vim /etc/leproxy/mapping.yml +``` + +內容大概長這樣,一次可以不止一行 +然後要注意 hqvpnrouter.abc.com 這個域名要先存在 A 記錄並指向這臺 router + +``` +hqvpnrouter.abc.com: 192.168.0.254:81 +``` + +前面是這臺機器的hostname , leproxy 會用這個hostname 去申請免費的憑證 +後面是要把hqvpnrouter.abc.com 的要求轉到哪裡?這邊就是轉到本機(192.168.0.254)的 81 port + +##### 修改 uhttpd config + +因為leproxy 會佔用 80 ,443 兩個port +所以要把 uhttpd 改去別的port 工作 +順便把 https 的設定拿掉,讓leproxy 去煩惱 + +``` +# HTTP listen addresses, multiple allowed + list listen_http 0.0.0.0:81 + list listen_http [::]:81 + + # HTTPS listen addresses, multiple allowed + #list listen_https 0.0.0.0:443 + #list listen_https [::]:443 + + # Redirect HTTP requests to HTTPS if possible + option redirect_https 0 +``` + +然後先重啟 uhttpd + +``` +/etc/init.d/uhttpd restart +``` + +看看 uhttpd 是不是已經改到 port 81 +``` +[200~root@HQ_VPN_ROUTER:~# netstat -antlp +netstat: showing only processes with your user ID +Active Internet connections (servers and established) +Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name +tcp 0 0 0.0.0.0:81 0.0.0.0:* LISTEN 1491/uhttpd +tcp 0 0 10.2.3.2:53 0.0.0.0:* LISTEN 3540/dnsmasq +``` + +好,這時候就可以用以下指令來測試leproxy 是不是可以正常運作 + +cacheDir 是會被用來存放leproxy 取得的免費憑證,必須要先存在系統中 +或者是要存放在 /tmp , /root 也都可以 + +``` +/root/leproxy.arm64 -map /etc/leproxy/mapping.yml -email chchang@abc.com -cacheDir /etc/acme/ +``` + +##### 修改 firewall config + +加入底下這段 + +``` +config redirect + option dest_port '443' + option src 'wan' + option name 'https for leproxy' + option src_dport '443' + option target 'DNAT' + option dest_ip '192.168.0.254' + option dest 'lan' + list proto 'tcp' +``` + +重啟 firewall + +這時候應該可以用 https://vpnrouter.abc.com 的方式來開啟這臺router 的管理界面 + + +#### 建立 init script + +在 /etc/init.d 中新增一個檔案叫 leproxy + +內容如下 +``` +#!/bin/sh /etc/rc.common +# Example script +# Copyright (C) 2007 OpenWrt.org + +START=99 + +start() { + echo "leproxy starting" + /root/leproxy.arm64 -map /etc/leproxy/mapping.yml -email chchang@abc.com -cacheDir /etc/acme/ > /dev/null 2>&1 & + +} +stop () { + echo "leproxy stopping" + killall leproxy.arm64 + } +``` + +##### 改一下file permission + +``` +chmod u+rwx /etc/init.d/leproxy +``` + +##### 設定開機自動啟動 + +``` +/etc/init.d/leproxy enable +``` + +##### 啟動leproxy +``` +/etc/init.d/leproxy restart +``` + +開啟 https://vpnrouter.abc.com 再做一次確認 + diff --git a/public/about/index.html b/public/about/index.html index ed610088..c247fe5e 100644 --- a/public/about/index.html +++ b/public/about/index.html @@ -45,9 +45,9 @@ - + - + @@ -591,7 +591,7 @@ title="pinterest icon"> - + diff --git a/public/categories/ansible/index.html b/public/categories/ansible/index.html index 273e7fc9..a1026cef 100644 --- a/public/categories/ansible/index.html +++ b/public/categories/ansible/index.html @@ -45,9 +45,9 @@ - + - + @@ -593,6 +593,6 @@ if (!doNotTrack) { - + diff --git a/public/categories/index.xml b/public/categories/index.xml index cf7bbf71..29fb3dd9 100644 --- a/public/categories/index.xml +++ b/public/categories/index.xml @@ -6,7 +6,7 @@ Recent content in Categories on MC部落 Hugo -- gohugo.io en-us - Thu, 26 Aug 2021 12:08:43 +0800 + Wed, 29 Sep 2021 14:38:10 +0800 @@ -14,7 +14,7 @@ 筆記 https://h.cowbay.org/categories/%E7%AD%86%E8%A8%98/ - Thu, 26 Aug 2021 12:08:43 +0800 + Wed, 29 Sep 2021 14:38:10 +0800 https://h.cowbay.org/categories/%E7%AD%86%E8%A8%98/ diff --git a/public/categories/linux/index.html b/public/categories/linux/index.html index c6c2aecc..42425c4f 100644 --- a/public/categories/linux/index.html +++ b/public/categories/linux/index.html @@ -45,9 +45,9 @@ - + - + @@ -476,6 +476,6 @@ if (!doNotTrack) { - + diff --git a/public/categories/proxmox/index.html b/public/categories/proxmox/index.html index b5571d69..d0175ac4 100644 --- a/public/categories/proxmox/index.html +++ b/public/categories/proxmox/index.html @@ -45,9 +45,9 @@ - + - + @@ -478,6 +478,6 @@ if (!doNotTrack) { - + diff --git a/public/categories/ps/index.html b/public/categories/ps/index.html index 3d7eb522..62dbc0d6 100644 --- a/public/categories/ps/index.html +++ b/public/categories/ps/index.html @@ -45,9 +45,9 @@ - + - + @@ -418,6 +418,6 @@ if (!doNotTrack) { - + diff --git a/public/categories/碎念/index.html b/public/categories/碎念/index.html index ab809fe3..7a08ae46 100644 --- a/public/categories/碎念/index.html +++ b/public/categories/碎念/index.html @@ -45,9 +45,9 @@ - + - + @@ -477,6 +477,6 @@ if (!doNotTrack) { - + diff --git a/public/categories/筆記/index.html b/public/categories/筆記/index.html index f737101c..96f6ae24 100644 --- a/public/categories/筆記/index.html +++ b/public/categories/筆記/index.html @@ -21,8 +21,8 @@ "accountablePerson" : "", "copyrightHolder" : "", "copyrightYear" : "2021", - "datePublished": "2021-08-26 12:08:43 \x2b0800 CST", - "dateModified" : "2021-08-26 12:08:43 \x2b0800 CST", + "datePublished": "2021-09-29 14:38:10 \x2b0800 CST", + "dateModified" : "2021-09-29 14:38:10 \x2b0800 CST", "url" : "https:\/\/h.cowbay.org\/categories\/%E7%AD%86%E8%A8%98\/", "wordCount" : "0", "image" : "https://h.cowbay.org%!s(\u003cnil\u003e)"", @@ -45,9 +45,9 @@ - + - + @@ -297,6 +297,70 @@ if (!doNotTrack) { + + + +
+
+ 29 September + + + + + + / + + + + + + + + + / + + 筆記 + + +
+ +
+
+

最近在逐步的把舊有的VPN Router 汰換掉,改用wireguard 來作 full mesh site-to-site VPN

+

不過這是另外的故事了…

+

在把wireguard VPN 都搞定之後,才發現原來 openwrt 的 uhttpd 要加上 letsencrypt 的免費憑證有點難搞

+

網路上大部分都介紹用 acme.sh ,我是有測試出來啦

+

但是跟網路上的方法不太一樣了,新增了滿多步驟的,覺得很麻煩

+

想到向來愛用的 leproxy ,既然是 golang 開發的,又是open source

+

就拿來compile 給openwrt router 用用看

+

想不到還真的可以, golang 真是棒!

+

不過也還是要順手改一些openwrt 東西才行

+

還是簡單作個筆記好了

+ + +
+
+
+ + + + + + + + + + + +
+ + + + @@ -349,7 +413,7 @@ if (!doNotTrack) { -
+
@@ -406,7 +470,7 @@ if (!doNotTrack) { -
+
@@ -462,7 +526,7 @@ if (!doNotTrack) { -
+
@@ -518,7 +582,7 @@ if (!doNotTrack) { -
+
@@ -578,7 +642,7 @@ if (!doNotTrack) { -
+
@@ -638,7 +702,7 @@ if (!doNotTrack) { -
+
@@ -703,7 +767,7 @@ if (!doNotTrack) { -
+
@@ -765,7 +829,7 @@ if (!doNotTrack) { -
+
@@ -824,7 +888,7 @@ if (!doNotTrack) { -
+
@@ -881,7 +945,7 @@ if (!doNotTrack) { -
+
@@ -939,7 +1003,7 @@ if (!doNotTrack) { -
+
@@ -999,7 +1063,7 @@ if (!doNotTrack) { -
+
@@ -1059,7 +1123,7 @@ if (!doNotTrack) { -
+
@@ -1117,7 +1181,7 @@ if (!doNotTrack) { -
+
@@ -1177,7 +1241,7 @@ if (!doNotTrack) { -
+
@@ -1235,7 +1299,7 @@ if (!doNotTrack) { -
+
@@ -1292,7 +1356,7 @@ if (!doNotTrack) { -
+
@@ -1350,7 +1414,7 @@ if (!doNotTrack) { -
+
@@ -1409,7 +1473,7 @@ if (!doNotTrack) { -
+
@@ -1469,7 +1533,7 @@ if (!doNotTrack) { -
+
@@ -1526,7 +1590,7 @@ if (!doNotTrack) { -
+
@@ -1584,7 +1648,7 @@ if (!doNotTrack) { -
+
@@ -1646,7 +1710,7 @@ if (!doNotTrack) { -
+
@@ -1704,7 +1768,7 @@ if (!doNotTrack) { -
+
@@ -1764,7 +1828,7 @@ if (!doNotTrack) { -
+
@@ -1821,7 +1885,7 @@ if (!doNotTrack) { -
+
@@ -1878,7 +1942,7 @@ if (!doNotTrack) { -
+
@@ -1933,7 +1997,7 @@ if (!doNotTrack) { -
+
@@ -1988,7 +2052,7 @@ if (!doNotTrack) { -
+
@@ -2046,7 +2110,7 @@ if (!doNotTrack) { -
+
@@ -2104,7 +2168,7 @@ if (!doNotTrack) { -
+
@@ -2165,7 +2229,7 @@ if (!doNotTrack) { -
+
@@ -2225,7 +2289,7 @@ if (!doNotTrack) { -
+
@@ -2289,7 +2353,7 @@ if (!doNotTrack) { -
+
@@ -2351,7 +2415,7 @@ if (!doNotTrack) { -
+
@@ -2410,7 +2474,7 @@ if (!doNotTrack) { -
+
@@ -2466,7 +2530,7 @@ if (!doNotTrack) { -
+
@@ -2525,7 +2589,7 @@ if (!doNotTrack) { -
+
@@ -2583,7 +2647,7 @@ if (!doNotTrack) { -
+
@@ -2640,7 +2704,7 @@ if (!doNotTrack) { -
+
@@ -2696,7 +2760,7 @@ if (!doNotTrack) { -
+
@@ -2754,7 +2818,7 @@ if (!doNotTrack) { -
+
@@ -2810,7 +2874,7 @@ if (!doNotTrack) { -
+
@@ -2867,7 +2931,7 @@ if (!doNotTrack) { -
+
@@ -2925,7 +2989,7 @@ if (!doNotTrack) { -
+
@@ -2983,7 +3047,7 @@ if (!doNotTrack) { -
+
@@ -3046,7 +3110,7 @@ if (!doNotTrack) { -
+
@@ -3103,7 +3167,7 @@ if (!doNotTrack) { -
+
@@ -3198,7 +3262,7 @@ if (!doNotTrack) { -
+
@@ -3256,7 +3320,7 @@ if (!doNotTrack) { -
+
@@ -3314,7 +3378,7 @@ if (!doNotTrack) { -
+
@@ -3375,7 +3439,7 @@ if (!doNotTrack) { -
+
@@ -3435,7 +3499,7 @@ if (!doNotTrack) { -
+
@@ -3498,7 +3562,7 @@ if (!doNotTrack) { -
+
@@ -3687,6 +3751,6 @@ if (!doNotTrack) {
- + diff --git a/public/categories/筆記/index.xml b/public/categories/筆記/index.xml index fbb9af0c..30088a77 100644 --- a/public/categories/筆記/index.xml +++ b/public/categories/筆記/index.xml @@ -6,11 +6,29 @@ Recent content in 筆記 on MC部落 Hugo -- gohugo.io en-us - Thu, 26 Aug 2021 12:08:43 +0800 + Wed, 29 Sep 2021 14:38:10 +0800 + + Init Script in Openwrt to Start Leproxy/在openwrt 新增自動啟動leproxy的script + https://h.cowbay.org/post/init-script-in-openwrt-to-start-leproxy/ + Wed, 29 Sep 2021 14:38:10 +0800 + + https://h.cowbay.org/post/init-script-in-openwrt-to-start-leproxy/ + <p>最近在逐步的把舊有的VPN Router 汰換掉,改用wireguard 來作 full mesh site-to-site VPN</p> +<p>不過這是另外的故事了&hellip;</p> +<p>在把wireguard VPN 都搞定之後,才發現原來 openwrt 的 uhttpd 要加上 letsencrypt 的免費憑證有點難搞</p> +<p>網路上大部分都介紹用 acme.sh ,我是有測試出來啦</p> +<p>但是跟網路上的方法不太一樣了,新增了滿多步驟的,覺得很麻煩</p> +<p>想到向來愛用的 leproxy ,既然是 golang 開發的,又是open source</p> +<p>就拿來compile 給openwrt router 用用看</p> +<p>想不到還真的可以, golang 真是棒!</p> +<p>不過也還是要順手改一些openwrt 東西才行</p> +<p>還是簡單作個筆記好了</p> + + auto fetch Wildcard ssl certs with lego + acme-dns ( Domain Register : Namecheap) https://h.cowbay.org/post/auto-fetch-wildcard-ssl-certs-acme-dns-lego/ diff --git a/public/categories/群暉/index.html b/public/categories/群暉/index.html index ac7707cf..dca01fa2 100644 --- a/public/categories/群暉/index.html +++ b/public/categories/群暉/index.html @@ -45,9 +45,9 @@ - + - + @@ -480,6 +480,6 @@ if (!doNotTrack) {
- + diff --git a/public/categories/雜念/index.html b/public/categories/雜念/index.html index 66b6b23a..0493dec3 100644 --- a/public/categories/雜念/index.html +++ b/public/categories/雜念/index.html @@ -45,9 +45,9 @@ - + - + @@ -476,6 +476,6 @@ if (!doNotTrack) {
- + diff --git a/public/contact/index.html b/public/contact/index.html index 12a25afa..79ea0248 100644 --- a/public/contact/index.html +++ b/public/contact/index.html @@ -45,9 +45,9 @@ - + - + @@ -453,7 +453,7 @@ if (!doNotTrack) {
- + diff --git a/public/gallery/sammy93/index.html b/public/gallery/sammy93/index.html index c9dcfd66..dde00e90 100644 --- a/public/gallery/sammy93/index.html +++ b/public/gallery/sammy93/index.html @@ -45,9 +45,9 @@ - + - + @@ -594,7 +594,7 @@ title="pinterest icon">
- + diff --git a/public/index.html b/public/index.html index c59748b2..848766c9 100644 --- a/public/index.html +++ b/public/index.html @@ -46,9 +46,9 @@ - + - + @@ -288,12 +288,12 @@ if (!doNotTrack) { - +
- 26 August + 29 September @@ -315,16 +315,23 @@ if (!doNotTrack) {
-

自從用了 leproxy 之後,其實就很少在管ssl 憑證的問題,反正leproxy 都會自動處理好

-

不過LAN裡面的機器越來越多,每次看到警告說沒有加密的訊息就有點不爽,之前用了很多方式去申請全域憑證,申請倒是還好,沒太多問題。但是一碰到要更新,就都無法自動,因為都會要求去修改DNS 的 TXT 或者是 CNAME 記錄。

-

一般來說,如果是其他DNS 供應商,大部分都會提供API,那就還好。 BUT !! (對,然生就是離不開這個BUT …) 我們的域名是老闆在 iwantmyname 買的,一開始是給 webfaction 代管,後來webfaction 被godaddy 買走,就轉到 namecheap 去(我也不知道為什麼不在godaddy 就好)。

- - +

最近在逐步的把舊有的VPN Router 汰換掉,改用wireguard 來作 full mesh site-to-site VPN

+

不過這是另外的故事了…

+

在把wireguard VPN 都搞定之後,才發現原來 openwrt 的 uhttpd 要加上 letsencrypt 的免費憑證有點難搞

+

網路上大部分都介紹用 acme.sh ,我是有測試出來啦

+

但是跟網路上的方法不太一樣了,新增了滿多步驟的,覺得很麻煩

+

想到向來愛用的 leproxy ,既然是 golang 開發的,又是open source

+

就拿來compile 給openwrt router 用用看

+

想不到還真的可以, golang 真是棒!

+

不過也還是要順手改一些openwrt 東西才行

+

還是簡單作個筆記好了

+ +
@@ -342,12 +349,12 @@ if (!doNotTrack) { - +
- 20 July + 26 August @@ -369,16 +376,16 @@ if (!doNotTrack) {
-

最近又接到之前處理過的需求,要讓使用者可以在外部上傳、編輯 yaml 檔案

-

之前是用 gohttpd 來做

-

可是不支援線上編輯 yaml 檔案

+

自從用了 leproxy 之後,其實就很少在管ssl 憑證的問題,反正leproxy 都會自動處理好

+

不過LAN裡面的機器越來越多,每次看到警告說沒有加密的訊息就有點不爽,之前用了很多方式去申請全域憑證,申請倒是還好,沒太多問題。但是一碰到要更新,就都無法自動,因為都會要求去修改DNS 的 TXT 或者是 CNAME 記錄。

+

一般來說,如果是其他DNS 供應商,大部分都會提供API,那就還好。 BUT !! (對,然生就是離不開這個BUT …) 我們的域名是老闆在 iwantmyname 買的,一開始是給 webfaction 代管,後來webfaction 被godaddy 買走,就轉到 namecheap 去(我也不知道為什麼不在godaddy 就好)。

- +
@@ -396,12 +403,12 @@ if (!doNotTrack) { - +
- 25 June + 20 July @@ -423,15 +430,16 @@ if (!doNotTrack) {
-

感覺最近應該會用到類似這樣的功能,趁著最近比較閒一點

-

就把系統弄起來玩玩看,順便建立ansible 的playbook

+

最近又接到之前處理過的需求,要讓使用者可以在外部上傳、編輯 yaml 檔案

+

之前是用 gohttpd 來做

+

可是不支援線上編輯 yaml 檔案

- +
@@ -449,12 +457,12 @@ if (!doNotTrack) { - +
- 18 November + 25 June @@ -476,15 +484,15 @@ if (!doNotTrack) {
-

最近又開始在亂搞postgresql ,一直想要玩玩看GPU運算的威力,大概一年多前,有測試了 ubuntu 18.04 + postgresql + pg_strom ,可是當時因為pg_strom 不支援當時手邊的顯示卡,只好作罷。

-

Breaks here

+

感覺最近應該會用到類似這樣的功能,趁著最近比較閒一點

+

就把系統弄起來玩玩看,順便建立ansible 的playbook

- +
@@ -502,12 +510,12 @@ if (!doNotTrack) { - +
- 02 September + 18 November @@ -529,19 +537,15 @@ if (!doNotTrack) {
-

之前用caddy 作為反向代理,其中一個優勢就是caddy 會自動處理Letsencrypt 憑證的問題

-

也不用煩惱怎麼去更新一堆有的沒的

-

不過,實際應用上,還是偶爾會拿這些憑證檔案來用的狀況

-

雖然可以從caddy 上面取得這些檔案

-

但是基本上這些檔案都是綁定一個特定的hostname

-

可是我想要有一個憑證,可以給同網域底下的機器用 ( Wildcard certificates )

- - +

最近又開始在亂搞postgresql ,一直想要玩玩看GPU運算的威力,大概一年多前,有測試了 ubuntu 18.04 + postgresql + pg_strom ,可是當時因為pg_strom 不支援當時手邊的顯示卡,只好作罷。

+

Breaks here

+ +
@@ -681,7 +685,16 @@ if (!doNotTrack) { - 13 + + + + + + + + + + 14 @@ -825,7 +838,7 @@ if (!doNotTrack) {
- + diff --git a/public/index.xml b/public/index.xml index ff0e1eec..a928aa20 100644 --- a/public/index.xml +++ b/public/index.xml @@ -11,6 +11,24 @@ + + Init Script in Openwrt to Start Leproxy/在openwrt 新增自動啟動leproxy的script + https://h.cowbay.org/post/init-script-in-openwrt-to-start-leproxy/ + Wed, 29 Sep 2021 14:38:10 +0800 + + https://h.cowbay.org/post/init-script-in-openwrt-to-start-leproxy/ + <p>最近在逐步的把舊有的VPN Router 汰換掉,改用wireguard 來作 full mesh site-to-site VPN</p> +<p>不過這是另外的故事了&hellip;</p> +<p>在把wireguard VPN 都搞定之後,才發現原來 openwrt 的 uhttpd 要加上 letsencrypt 的免費憑證有點難搞</p> +<p>網路上大部分都介紹用 acme.sh ,我是有測試出來啦</p> +<p>但是跟網路上的方法不太一樣了,新增了滿多步驟的,覺得很麻煩</p> +<p>想到向來愛用的 leproxy ,既然是 golang 開發的,又是open source</p> +<p>就拿來compile 給openwrt router 用用看</p> +<p>想不到還真的可以, golang 真是棒!</p> +<p>不過也還是要順手改一些openwrt 東西才行</p> +<p>還是簡單作個筆記好了</p> + + auto fetch Wildcard ssl certs with lego + acme-dns ( Domain Register : Namecheap) https://h.cowbay.org/post/auto-fetch-wildcard-ssl-certs-acme-dns-lego/ diff --git a/public/page/10/index.html b/public/page/10/index.html index 6c85afa6..b6c59c64 100644 --- a/public/page/10/index.html +++ b/public/page/10/index.html @@ -46,9 +46,9 @@ - + - + @@ -288,7 +288,7 @@ if (!doNotTrack) { - +
@@ -315,17 +315,18 @@ if (!doNotTrack) {
-

今天發生一件有點詭異的事情,本來應該要經過某個指令才會產生的檔案

-

居然不知為何自己產生了,在我記憶中沒有去執行過那個指令

-

翻了一下 bash_history ,裡面也只有下過哪些指令,沒有紀錄時間,完全沒有參考價值(攤手)

-

所以翻了一下網路,至少把這兩台主要跑ansible的機器的log功能補上紀錄所有指令以及時間的部份

+

最近因為一直碰到硬碟故障的問題,算起來那一批同時購買的5X顆 seagate 2T硬碟,已經有一半以上故障返修了….

+

然後又因為一直沒有添購新的硬碟,只能用這些快過保/已過保的撐著

+

所以最近不斷的在更換機器內的硬碟,而且還沒有熱插拔!

+

也導致原本負責處理盤點資產的同事困擾,因為跟手邊的紀錄已經對不起來了

+

然後就變成要對資產的時候,需要一台一台登入,然後去下不同的指令,取得想要的硬體資訊,超級麻煩的!

- +
@@ -343,12 +344,12 @@ if (!doNotTrack) { - +
- 01 April + 23 April @@ -370,16 +371,17 @@ if (!doNotTrack) {
-

今天把其中一台proxmox 加上10G 光纖網卡,準備和另一台proxmox 組成10G 環境進行測試

-

想說把本機的zpool 拆掉,重新建立一個raid0 的空間來做clone/migrate

-

可是一直出現device busy的錯誤訊息

+

今天發生一件有點詭異的事情,本來應該要經過某個指令才會產生的檔案

+

居然不知為何自己產生了,在我記憶中沒有去執行過那個指令

+

翻了一下 bash_history ,裡面也只有下過哪些指令,沒有紀錄時間,完全沒有參考價值(攤手)

+

所以翻了一下網路,至少把這兩台主要跑ansible的機器的log功能補上紀錄所有指令以及時間的部份

- +
@@ -397,12 +399,12 @@ if (!doNotTrack) { - +
- 27 March + 01 April @@ -424,15 +426,16 @@ if (!doNotTrack) {
-

公司的一台老伺服器空間不足了,要執行指令都會中斷,所以想要擴充空間。

-

看起來不難搞,事實上…..

+

今天把其中一台proxmox 加上10G 光纖網卡,準備和另一台proxmox 組成10G 環境進行測試

+

想說把本機的zpool 拆掉,重新建立一個raid0 的空間來做clone/migrate

+

可是一直出現device busy的錯誤訊息

- +
@@ -450,12 +453,12 @@ if (!doNotTrack) { - +
- 20 March + 27 March @@ -469,19 +472,23 @@ if (!doNotTrack) { + / + + 筆記 + +
-

今天老闆出國,發slack說手機不能寄信,看了一下,似乎是因為用GMAIL的APP來收信

-

然後google 不知道跟人家改了什麼,結果不接受原本的認證了… WTF ….

-

然後,這問題應該很久了,結果現在才在講 ….

+

公司的一台老伺服器空間不足了,要執行指令都會中斷,所以想要擴充空間。

+

看起來不難搞,事實上…..

- +
@@ -499,12 +506,12 @@ if (!doNotTrack) { - +
- 11 March + 20 March @@ -518,25 +525,19 @@ if (!doNotTrack) { - / - - 筆記 - -
-

最近要開始測試client安裝 ubuntu 18.04 的 ansible playbook

-

因為要不斷的修正,所以想到一直有在自己電腦上執行的timeshift這個軟體

-

可以很簡單快速的備份、恢復系統狀態

-

可是不知道為什麼,在ubuntu 18.04 上安裝就是會發生錯誤….

+

今天老闆出國,發slack說手機不能寄信,看了一下,似乎是因為用GMAIL的APP來收信

+

然後google 不知道跟人家改了什麼,結果不接受原本的認證了… WTF ….

+

然後,這問題應該很久了,結果現在才在講 ….

- +
@@ -686,7 +687,16 @@ if (!doNotTrack) { - 13 + + + + + + + + + + 14 @@ -830,7 +840,7 @@ if (!doNotTrack) {
- + diff --git a/public/page/11/index.html b/public/page/11/index.html index cc4f4e02..46854aaf 100644 --- a/public/page/11/index.html +++ b/public/page/11/index.html @@ -46,9 +46,9 @@ - + - + @@ -288,12 +288,12 @@ if (!doNotTrack) { - +
- 16 January + 11 March @@ -315,15 +315,17 @@ if (!doNotTrack) {
-

買了一張 DELL 6/iR 低階的raid 卡

-

來測試把系統裝在硬體做的RAID上,結果沒想到居然不能開機…

+

最近要開始測試client安裝 ubuntu 18.04 的 ansible playbook

+

因為要不斷的修正,所以想到一直有在自己電腦上執行的timeshift這個軟體

+

可以很簡單快速的備份、恢復系統狀態

+

可是不知道為什麼,在ubuntu 18.04 上安裝就是會發生錯誤….

- +
@@ -341,7 +343,7 @@ if (!doNotTrack) { - +
@@ -368,16 +370,15 @@ if (!doNotTrack) {
-

最近在弄一台機器,想要把ubuntu 18.04 安裝在software raid上

-

因為新開的機器大部分都是在proxmox上,所以很少碰實體機器了

-

結果在安裝過程中,做raid碰到一些問題,來紀錄一下

+

買了一張 DELL 6/iR 低階的raid 卡

+

來測試把系統裝在硬體做的RAID上,結果沒想到居然不能開機…

- +
@@ -395,12 +396,12 @@ if (!doNotTrack) { - +
- 13 December + 16 January @@ -422,17 +423,16 @@ if (!doNotTrack) {
-

這兩天在弄兩台Freenas ,準備當作Proxmox 的Storage & Server Backup

-

因為伺服器的限制,只能接六個SATA,我接了六個2T的硬碟做raid10

-

然後把Freenas 安裝在隨身碟上

-

不過會一直出現Smartd failed to start 的錯誤訊息

+

最近在弄一台機器,想要把ubuntu 18.04 安裝在software raid上

+

因為新開的機器大部分都是在proxmox上,所以很少碰實體機器了

+

結果在安裝過程中,做raid碰到一些問題,來紀錄一下

- +
@@ -450,12 +450,12 @@ if (!doNotTrack) { - +
- 12 December + 13 December @@ -471,24 +471,23 @@ if (!doNotTrack) { / - 碎念 + 筆記
-

最近在做一台老機器的P2V

-

偏偏user說不能關機,所以我用dd + ssh 做線上移轉

-

這部份有空再來寫

-

只是因為原來的設定有用mdadm 做raid1

-

這部份導致移轉過去proxmox 後,會出現raid degrade 導致無法正常開機

+

這兩天在弄兩台Freenas ,準備當作Proxmox 的Storage & Server Backup

+

因為伺服器的限制,只能接六個SATA,我接了六個2T的硬碟做raid10

+

然後把Freenas 安裝在隨身碟上

+

不過會一直出現Smartd failed to start 的錯誤訊息

- +
@@ -506,12 +505,12 @@ if (!doNotTrack) { - +
- 07 December + 12 December @@ -527,23 +526,24 @@ if (!doNotTrack) { / - 筆記 + 碎念
-

因為工作的關係,現在很多時間都花在VIM的操作上

-

所以之前花了滿多時間,調整出一個適合自己的VIM環境

-

原本的作法是把這個設定好的環境,丟到自己建立的gitea 上面

-

然後每到一台新的機器,就要去clone 下來

+

最近在做一台老機器的P2V

+

偏偏user說不能關機,所以我用dd + ssh 做線上移轉

+

這部份有空再來寫

+

只是因為原來的設定有用mdadm 做raid1

+

這部份導致移轉過去proxmox 後,會出現raid degrade 導致無法正常開機

- +
@@ -691,7 +691,18 @@ if (!doNotTrack) { - 13 + 13 + + + + + + + + + + + 14 @@ -835,7 +846,7 @@ if (!doNotTrack) {
- + diff --git a/public/page/12/index.html b/public/page/12/index.html index 2781f4a4..134e840e 100644 --- a/public/page/12/index.html +++ b/public/page/12/index.html @@ -46,9 +46,9 @@ - + - + @@ -288,6 +288,61 @@ if (!doNotTrack) { + + + +
+
+ 07 December + + + + / + + + + + + + + + + / + + 筆記 + + +
+ +
+
+

因為工作的關係,現在很多時間都花在VIM的操作上

+

所以之前花了滿多時間,調整出一個適合自己的VIM環境

+

原本的作法是把這個設定好的環境,丟到自己建立的gitea 上面

+

然後每到一台新的機器,就要去clone 下來

+ + +
+
+
+
+ + + + + + + + +
+ + + + @@ -342,8 +397,8 @@ if (!doNotTrack) { -
- +
+ @@ -402,8 +457,8 @@ if (!doNotTrack) { -
- +
+ @@ -456,8 +511,8 @@ if (!doNotTrack) { -
- +
+ @@ -541,61 +596,6 @@ if (!doNotTrack) {
- - - - - - - -
- - - - - - - -
-
- 15 November - - - - / - - - - - - - - - - / - - 筆記 - - -
- -
-
-

最近在測試metabase,記得幾個月前就有測試過

-

但是當時的界面和現在的樣子差很多,看樣子改版還滿勤勞的

-

所以這次改用docker來建立,根本五分鐘不到就建好了(挖鼻孔)

-

不過呢,很討厭的是,一進去就發現語系採用的是簡體中文

- - -
-
-
-
-
@@ -739,6 +739,17 @@ if (!doNotTrack) { 13 + + + + + + + + + 14 + + @@ -880,7 +891,7 @@ if (!doNotTrack) {
- + diff --git a/public/page/13/index.html b/public/page/13/index.html index 4b02d4b9..398ab0eb 100644 --- a/public/page/13/index.html +++ b/public/page/13/index.html @@ -46,9 +46,9 @@ - + - + @@ -288,12 +288,12 @@ if (!doNotTrack) { - +
- 12 November + 15 November @@ -315,17 +315,17 @@ if (!doNotTrack) {
-

因為工作上的需求,有個資料庫需要開放給不同team的人去存取

-

雖然都是在同一台機器上的同一個資料庫

-

但是希望能夠不同team的人用不同的資料庫使用者

-

這樣萬一出事,會比較好抓兇手??

+

最近在測試metabase,記得幾個月前就有測試過

+

但是當時的界面和現在的樣子差很多,看樣子改版還滿勤勞的

+

所以這次改用docker來建立,根本五分鐘不到就建好了(挖鼻孔)

+

不過呢,很討厭的是,一進去就發現語系採用的是簡體中文

- +
@@ -343,12 +343,12 @@ if (!doNotTrack) { - +
- 08 November + 12 November @@ -370,20 +370,17 @@ if (!doNotTrack) {
-

這是發生在一個夜黑風高的寂寥深夜….. ( What The FXXX … )

-

來到這個環境之後,有一個很詭異的狀況一直困擾著我

-

在每個分公司,都會有一台伺服器作為KVM Host

-

上面跑兩台VM,一台作為ansible controller (目前沒作用)

-

另一台作為這邊所謂的 “Build Server”

-

用途包含了DHCP Server / Proxy Server (squid3) / APT Proxy (squid-deb-proxy)

-

問題就發生在這台 Build Server 上…

+

因為工作上的需求,有個資料庫需要開放給不同team的人去存取

+

雖然都是在同一台機器上的同一個資料庫

+

但是希望能夠不同team的人用不同的資料庫使用者

+

這樣萬一出事,會比較好抓兇手??

- +
@@ -401,12 +398,12 @@ if (!doNotTrack) { - +
- 06 November + 08 November @@ -428,19 +425,20 @@ if (!doNotTrack) {
-

最近在重新規劃前人留下的backup爛攤子 -各個伺服器統一備份到一台backup storage -想說如果每天能夠看到backup storage的磁碟用量的話 -就可以抓出備份空間成長速度、推估需要多大的磁碟空間 -找了一些工具,結果發現 durep 這個 ubuntu 內建的工具 -基本上可以滿足我的需求

+

這是發生在一個夜黑風高的寂寥深夜….. ( What The FXXX … )

+

來到這個環境之後,有一個很詭異的狀況一直困擾著我

+

在每個分公司,都會有一台伺服器作為KVM Host

+

上面跑兩台VM,一台作為ansible controller (目前沒作用)

+

另一台作為這邊所謂的 “Build Server”

+

用途包含了DHCP Server / Proxy Server (squid3) / APT Proxy (squid-deb-proxy)

+

問題就發生在這台 Build Server 上…

- +
@@ -458,7 +456,7 @@ if (!doNotTrack) { - +
@@ -485,22 +483,19 @@ if (!doNotTrack) {
-

Bookstack 是一套非常好用的線上"筆記"系統

-

他用圖書館/書本的概念,讓使用者可以建立自己的"圖書館”

-

同時在圖書館內建立不同的"書籍”

-

而且支援 Markdown 語法

-

其他的方式像是在nextcloud上編輯 md檔案(字體太小)

-

或者是boostnote(只能在本機)

-

都或多或少有點小缺點

-

Bookstack則是沒有這些問題,不過就是系統「大」了點…

-

不過還好有人做成docker的方式來啟動,大大的降低了建置的難度(其實也沒有很難啦,只是要裝個PHP、弄個DB而已)

+

最近在重新規劃前人留下的backup爛攤子 +各個伺服器統一備份到一台backup storage +想說如果每天能夠看到backup storage的磁碟用量的話 +就可以抓出備份空間成長速度、推估需要多大的磁碟空間 +找了一些工具,結果發現 durep 這個 ubuntu 內建的工具 +基本上可以滿足我的需求

- +
@@ -518,12 +513,12 @@ if (!doNotTrack) { - +
- 05 November + 06 November @@ -545,22 +540,22 @@ if (!doNotTrack) {
-

公司內有幾台NAS,其中有一台用來放開發人員的postgresql dump file -之前都是主要的開發人員上傳到google drive,分享出來 ,然後其他人去抓回來

-

這樣子有個問題是,當server要存取這些檔案時,就沒辦法了,除非透過一些 3rd party的軟體 -像是這篇

-

https://www.omgubuntu.co.uk/2017/04/mount-google-drive-ocamlfuse-linux

-

或者是這篇

-

https://www.maketecheasier.com/mount-google-drive-ubuntu/

-

但是手邊的伺服器,原則上除非有必要,不然都沒有開放internet -所以導致明明檔案就在那邊,但是要取得就是很麻煩

- - +

Bookstack 是一套非常好用的線上"筆記"系統

+

他用圖書館/書本的概念,讓使用者可以建立自己的"圖書館”

+

同時在圖書館內建立不同的"書籍”

+

而且支援 Markdown 語法

+

其他的方式像是在nextcloud上編輯 md檔案(字體太小)

+

或者是boostnote(只能在本機)

+

都或多或少有點小缺點

+

Bookstack則是沒有這些問題,不過就是系統「大」了點…

+

不過還好有人做成docker的方式來啟動,大大的降低了建置的難度(其實也沒有很難啦,只是要裝個PHP、弄個DB而已)

+ +
@@ -707,6 +702,19 @@ if (!doNotTrack) { 13 + + + + + + + + + 14 + + + +
@@ -846,7 +854,7 @@ if (!doNotTrack) {
- + diff --git a/public/page/14/index.html b/public/page/14/index.html new file mode 100644 index 00000000..294be3b9 --- /dev/null +++ b/public/page/14/index.html @@ -0,0 +1,631 @@ + + + + + + + + + MC部落 - What’s the Worst That Could Happen? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Skip to content + + +
+ + +

Posts

+ +
+ + + + + + + + + +
+ + + + + + + +
+
+ 05 November + + + + / + + + + + + + + + + / + + 筆記 + + +
+ +
+
+

公司內有幾台NAS,其中有一台用來放開發人員的postgresql dump file +之前都是主要的開發人員上傳到google drive,分享出來 ,然後其他人去抓回來

+

這樣子有個問題是,當server要存取這些檔案時,就沒辦法了,除非透過一些 3rd party的軟體 +像是這篇

+

https://www.omgubuntu.co.uk/2017/04/mount-google-drive-ocamlfuse-linux

+

或者是這篇

+

https://www.maketecheasier.com/mount-google-drive-ubuntu/

+

但是手邊的伺服器,原則上除非有必要,不然都沒有開放internet +所以導致明明檔案就在那邊,但是要取得就是很麻煩

+ + +
+
+
+
+ +
+ + + + + + + +
+ + + +
+ + + + + + diff --git a/public/page/2/index.html b/public/page/2/index.html index 3c29f837..59353ab8 100644 --- a/public/page/2/index.html +++ b/public/page/2/index.html @@ -46,9 +46,9 @@ - + - + @@ -288,12 +288,12 @@ if (!doNotTrack) { - +
- 13 August + 02 September @@ -315,19 +315,19 @@ if (!doNotTrack) {
-

手機上的廣告越來越討厭了

-

但是用手機看頁面、影片的機會越來越高

-

所以一直想看看有沒有什麼方式可以解決這個問題

-

不只可以用在safari 上,連APP 裡面的廣告最好都能夠擋掉

-

在github上面看到有個專案是 wireguard + pihole

-

滿有趣的,就來研究一下

- - +

之前用caddy 作為反向代理,其中一個優勢就是caddy 會自動處理Letsencrypt 憑證的問題

+

也不用煩惱怎麼去更新一堆有的沒的

+

不過,實際應用上,還是偶爾會拿這些憑證檔案來用的狀況

+

雖然可以從caddy 上面取得這些檔案

+

但是基本上這些檔案都是綁定一個特定的hostname

+

可是我想要有一個憑證,可以給同網域底下的機器用 ( Wildcard certificates )

+ +
@@ -345,12 +345,12 @@ if (!doNotTrack) { - +
- 15 July + 13 August @@ -372,24 +372,19 @@ if (!doNotTrack) {
-

最近在玩ansible + openwrt + wireguard

-

ansible 腳本寫好之後,可以把config 佈署到 openwrt 上

-

當然前提是最好用同樣的機器,不同的機器在config 上會有一些差異

-

但是這些差異常常就會造成無法連線、無法使用的狀況

-

BTW 我是用 ubiquiti 的 edgerouter X 來做

-

都弄好之後,就想說來跑個iperf3 測試一下連線速度

-

也好和之前做的 IPSEC 比較一下

-

結果很奇怪的是,明明一樣的機器、一樣用ansible 跑出來的config

-

但是有一台edgerouter X 的VPN 連接速度就是特別慢

-

而且速度都剛好卡在 99.X Mb 左右

-

就讓我很納悶了…

+

手機上的廣告越來越討厭了

+

但是用手機看頁面、影片的機會越來越高

+

所以一直想看看有沒有什麼方式可以解決這個問題

+

不只可以用在safari 上,連APP 裡面的廣告最好都能夠擋掉

+

在github上面看到有個專案是 wireguard + pihole

+

滿有趣的,就來研究一下

- +
@@ -407,12 +402,12 @@ if (!doNotTrack) { - +
- 10 July + 15 July @@ -434,21 +429,24 @@ if (!doNotTrack) {
-

上禮拜某天在開會的時候,LINE不斷傳來訊息

-

不過因為我向來開會都很認真(驕傲,所以都沒看,接著就變成來電了

-

看來大概有啥事發生

-

不過畢竟不是正職的工作,就先放著吧

-

後來變成連學長都直接打來告訴我,某間公司的伺服器出事了,客戶找不到我

-

叫我趕快連進去看

-

是說,啊我又沒跟人家簽維護,趕什麼趕…

-

總之,開完會後就了解一下狀況

+

最近在玩ansible + openwrt + wireguard

+

ansible 腳本寫好之後,可以把config 佈署到 openwrt 上

+

當然前提是最好用同樣的機器,不同的機器在config 上會有一些差異

+

但是這些差異常常就會造成無法連線、無法使用的狀況

+

BTW 我是用 ubiquiti 的 edgerouter X 來做

+

都弄好之後,就想說來跑個iperf3 測試一下連線速度

+

也好和之前做的 IPSEC 比較一下

+

結果很奇怪的是,明明一樣的機器、一樣用ansible 跑出來的config

+

但是有一台edgerouter X 的VPN 連接速度就是特別慢

+

而且速度都剛好卡在 99.X Mb 左右

+

就讓我很納悶了…

- +
@@ -466,12 +464,12 @@ if (!doNotTrack) { - +
- 22 June + 10 July @@ -493,18 +491,21 @@ if (!doNotTrack) {
-

工作用的電腦,昨天終於難得的reboot了(uptime 看了一下,大概是三百多天)

-

結果重開機之後,發現原本在打tunnel 連 ptt 的 wireguard VPN 掛掉了

-

手動下指令也啟動不了

-

查了一下發現是 ubuntu 18.04 kernel 4.15.0-106 的包

-

看來就連kernel 最好都不要自動升級…

+

上禮拜某天在開會的時候,LINE不斷傳來訊息

+

不過因為我向來開會都很認真(驕傲,所以都沒看,接著就變成來電了

+

看來大概有啥事發生

+

不過畢竟不是正職的工作,就先放著吧

+

後來變成連學長都直接打來告訴我,某間公司的伺服器出事了,客戶找不到我

+

叫我趕快連進去看

+

是說,啊我又沒跟人家簽維護,趕什麼趕…

+

總之,開完會後就了解一下狀況

- +
@@ -522,12 +523,12 @@ if (!doNotTrack) { - +
- 08 April + 22 June @@ -549,16 +550,18 @@ if (!doNotTrack) {
-

ubuntu 18.04 預設移掉了 /etc/rc.local 的功能

-

變成要用 systemd 的方式來運作,可是有點難用…

-

紀錄一下步驟,再來研究怎麼整合到 preseed 裡面

+

工作用的電腦,昨天終於難得的reboot了(uptime 看了一下,大概是三百多天)

+

結果重開機之後,發現原本在打tunnel 連 ptt 的 wireguard VPN 掛掉了

+

手動下指令也啟動不了

+

查了一下發現是 ubuntu 18.04 kernel 4.15.0-106 的包

+

看來就連kernel 最好都不要自動升級…

- +
@@ -700,7 +703,16 @@ if (!doNotTrack) { - 13 + + + + + + + + + + 14 @@ -844,7 +856,7 @@ if (!doNotTrack) {
- + diff --git a/public/page/3/index.html b/public/page/3/index.html index 074ed831..65652bbe 100644 --- a/public/page/3/index.html +++ b/public/page/3/index.html @@ -46,9 +46,9 @@ - + - + @@ -288,12 +288,12 @@ if (!doNotTrack) { - +
- 06 April + 08 April @@ -315,17 +315,16 @@ if (!doNotTrack) {
-

這是之前做過的task,client透過pxe開機後,會自動安裝ubuntu 14.04

-

在安裝完成後,會發出郵件通知管理者已經安裝完成

-

可是某次ansible 更新之後,反而沒辦法安裝完成

-

這次順手修改一下,同時更新了ansible 的template

+

ubuntu 18.04 預設移掉了 /etc/rc.local 的功能

+

變成要用 systemd 的方式來運作,可是有點難用…

+

紀錄一下步驟,再來研究怎麼整合到 preseed 裡面

- +
@@ -343,12 +342,12 @@ if (!doNotTrack) { - +
- 04 March + 06 April @@ -370,19 +369,17 @@ if (!doNotTrack) {
-

ubuntu 18.04 的 DNS 設定很煩

-

系統預設會用NetworkManager 去管理

-

然後NetworkManager 又很「靈活」的許多種修改 /etc/resolv.conf 的方式

-

之前都是很粗暴的停用 NetworkManager

-

但是用筆電的user 又需要用 NetworkManager 來管理無線網路

-

今天找了一下文件,讓NetworkManager 可以執行,卻不會去異動 /etc/resolv.conf

+

這是之前做過的task,client透過pxe開機後,會自動安裝ubuntu 14.04

+

在安裝完成後,會發出郵件通知管理者已經安裝完成

+

可是某次ansible 更新之後,反而沒辦法安裝完成

+

這次順手修改一下,同時更新了ansible 的template

- +
@@ -400,12 +397,12 @@ if (!doNotTrack) { - +
- 19 February + 04 March @@ -427,19 +424,19 @@ if (!doNotTrack) {
-

早上忘了要幹什麼,去看到手上的自然人憑證到期日是今年的 4/17

-

想說快到期了,看看能不能線上申請展延

-

結果辦公室沒有Linux 可以用的讀卡機

-

OOXX 咧,我們可是號稱全Linux 環境捏!

-

結果居然沒有對應的硬體!?

-

於是馬上敗了一台據說有支援 Linux 的 IT 850UM 讀卡機!

+

ubuntu 18.04 的 DNS 設定很煩

+

系統預設會用NetworkManager 去管理

+

然後NetworkManager 又很「靈活」的許多種修改 /etc/resolv.conf 的方式

+

之前都是很粗暴的停用 NetworkManager

+

但是用筆電的user 又需要用 NetworkManager 來管理無線網路

+

今天找了一下文件,讓NetworkManager 可以執行,卻不會去異動 /etc/resolv.conf

- +
@@ -457,12 +454,12 @@ if (!doNotTrack) { - +
- 17 January + 19 February @@ -484,17 +481,19 @@ if (!doNotTrack) {
-

前幾天修復了因為intel cpu bug 導致無法使用的 synology DS415+

-

詳情請看 https://h.cowbay.org/post/first-try-synology-ha/

-

今天趁尾牙前夕,手邊沒啥要緊事

-

就來玩玩看promox 加上 synology high availability 再加上 NFS share 的環境

+

早上忘了要幹什麼,去看到手上的自然人憑證到期日是今年的 4/17

+

想說快到期了,看看能不能線上申請展延

+

結果辦公室沒有Linux 可以用的讀卡機

+

OOXX 咧,我們可是號稱全Linux 環境捏!

+

結果居然沒有對應的硬體!?

+

於是馬上敗了一台據說有支援 Linux 的 IT 850UM 讀卡機!

- +
@@ -512,12 +511,12 @@ if (!doNotTrack) { - +
- 10 January + 17 January @@ -539,19 +538,17 @@ if (!doNotTrack) {
-

上禮拜,原本擔任 proxmox cluster 的主要 storage 的 ds415+ 掛點了

-

原因應該就是之前的 intel c2000 series cpu 的 bug

-

只是不知道為什麼這台兩三年來都沒有關機的NAS

-

比其他三台多撐了那麼久 (已經有兩台送修回來,一台也是同樣症狀,被放在一邊)

-

趁著這次機會,看看網路上說的換電阻大法有沒有用!

-

如果有用,就拿這兩台來玩玩 synology high availability !

- - +

前幾天修復了因為intel cpu bug 導致無法使用的 synology DS415+

+

詳情請看 https://h.cowbay.org/post/first-try-synology-ha/

+

今天趁尾牙前夕,手邊沒啥要緊事

+

就來玩玩看promox 加上 synology high availability 再加上 NFS share 的環境

+ +
@@ -695,7 +692,16 @@ if (!doNotTrack) { - 13 + + + + + + + + + + 14 @@ -839,7 +845,7 @@ if (!doNotTrack) {
- + diff --git a/public/page/4/index.html b/public/page/4/index.html index 194ba159..3049bbee 100644 --- a/public/page/4/index.html +++ b/public/page/4/index.html @@ -46,9 +46,9 @@ - + - + @@ -288,12 +288,12 @@ if (!doNotTrack) { - +
- 07 January + 10 January @@ -315,17 +315,19 @@ if (!doNotTrack) {
-

昨天老闆在slack 上面問說現在的幾台 DB Server 有沒有跑過 pgbench

-

分數大概如何,想要跟他的筆電做個比較

-

之前有跑過幾次,這次就順便測試一下不同的硬體配置、以及不同的軟體版本

-

對於pgbench 跑分會有多大的影響

- - +

上禮拜,原本擔任 proxmox cluster 的主要 storage 的 ds415+ 掛點了

+

原因應該就是之前的 intel c2000 series cpu 的 bug

+

只是不知道為什麼這台兩三年來都沒有關機的NAS

+

比其他三台多撐了那麼久 (已經有兩台送修回來,一台也是同樣症狀,被放在一邊)

+

趁著這次機會,看看網路上說的換電阻大法有沒有用!

+

如果有用,就拿這兩台來玩玩 synology high availability !

+ +
@@ -343,12 +345,12 @@ if (!doNotTrack) { - +
- 03 January + 07 January @@ -370,16 +372,17 @@ if (!doNotTrack) {
-

2020/01/02 , 2020年上工的第一天,群暉的 DS415+ NAS 掛了!

-

因為群暉的文件在最關鍵的一步寫得亂七八糟!

-

所以在這邊紀錄一下我操作的步驟!

+

昨天老闆在slack 上面問說現在的幾台 DB Server 有沒有跑過 pgbench

+

分數大概如何,想要跟他的筆電做個比較

+

之前有跑過幾次,這次就順便測試一下不同的硬體配置、以及不同的軟體版本

+

對於pgbench 跑分會有多大的影響

- +
@@ -397,7 +400,7 @@ if (!doNotTrack) { - +
@@ -418,23 +421,22 @@ if (!doNotTrack) { / - 雜念 + 筆記
-

2020/01/02 2020 上工的第一天,公司碩果僅存的唯一一台 Synology DS415+ 也終於掛了

-

開機沒多久就連不上,反覆幾次之後,出現了開機時所有燈號都狂閃的狀況

-

終於宣告不治

-

問題很明顯的就是Intel C2000 系列 CPU 的瑕疵

+

2020/01/02 , 2020年上工的第一天,群暉的 DS415+ NAS 掛了!

+

因為群暉的文件在最關鍵的一步寫得亂七八糟!

+

所以在這邊紀錄一下我操作的步驟!

- +
@@ -452,12 +454,12 @@ if (!doNotTrack) { - +
- 27 December + 03 January @@ -473,23 +475,23 @@ if (!doNotTrack) { / - 筆記 + 雜念
-

今天在寫一支客製化 firefox 的playbook

-

因為firefox 會給每個user 建立一個由亂數字串組成的default profile

-

所以每個user的 default profile 都不同

-

也因此在用register處理的時候,碰到了一些問題

+

2020/01/02 2020 上工的第一天,公司碩果僅存的唯一一台 Synology DS415+ 也終於掛了

+

開機沒多久就連不上,反覆幾次之後,出現了開機時所有燈號都狂閃的狀況

+

終於宣告不治

+

問題很明顯的就是Intel C2000 系列 CPU 的瑕疵

- +
@@ -507,12 +509,12 @@ if (!doNotTrack) { - +
- 24 December + 27 December @@ -534,18 +536,17 @@ if (!doNotTrack) {
-

正確來說,我不曉得到底怎麼「稱呼」這個 forwardx11 / forwardagent

-

總之就是在寫一隻ansible playbook

-

目的是用來安裝、設定 firefox

-

包含安裝 firefox addon

-

但是一開始在執行的時候,碰到了一些錯誤

+

今天在寫一支客製化 firefox 的playbook

+

因為firefox 會給每個user 建立一個由亂數字串組成的default profile

+

所以每個user的 default profile 都不同

+

也因此在用register處理的時候,碰到了一些問題

- +
@@ -691,7 +692,16 @@ if (!doNotTrack) { - 13 + + + + + + + + + + 14 @@ -835,7 +845,7 @@ if (!doNotTrack) {
- + diff --git a/public/page/5/index.html b/public/page/5/index.html index 95861f30..dda41f8d 100644 --- a/public/page/5/index.html +++ b/public/page/5/index.html @@ -46,9 +46,9 @@ - + - + @@ -288,12 +288,12 @@ if (!doNotTrack) { - +
- 20 December + 24 December @@ -315,19 +315,18 @@ if (!doNotTrack) {
-

老闆提到想要把新系統的 postgresql 資料庫都撈到記憶體裡面

-

但是否決了我提出的ramdisk 作法(因為當機的話,資料就沒了)

-

在找資料的時候,發現了這個postgresql 的 pg_prewarm extension

-

好像有點意思?就來測試看看吧!

-

只是目前還不知道該怎麼解讀測試的數據就是了…

-

幹!林北真的不是 DBA 啦 =.=

+

正確來說,我不曉得到底怎麼「稱呼」這個 forwardx11 / forwardagent

+

總之就是在寫一隻ansible playbook

+

目的是用來安裝、設定 firefox

+

包含安裝 firefox addon

+

但是一開始在執行的時候,碰到了一些錯誤

- +
@@ -345,12 +344,12 @@ if (!doNotTrack) { - +
- 18 December + 20 December @@ -372,16 +371,19 @@ if (!doNotTrack) {
-

剛剛在跑一個修改過的playbook,卻發現一個詭異的狀況

-

在用template產生檔案之前,爲了避免錯誤,所以我先用 file module 去建立目錄

-

怪就怪在,建立目錄的task沒錯,但是要產生檔案時,卻出現了目的目錄不存在的錯誤

+

老闆提到想要把新系統的 postgresql 資料庫都撈到記憶體裡面

+

但是否決了我提出的ramdisk 作法(因為當機的話,資料就沒了)

+

在找資料的時候,發現了這個postgresql 的 pg_prewarm extension

+

好像有點意思?就來測試看看吧!

+

只是目前還不知道該怎麼解讀測試的數據就是了…

+

幹!林北真的不是 DBA 啦 =.=

- +
@@ -399,12 +401,12 @@ if (!doNotTrack) { - +
- 16 December + 18 December @@ -426,17 +428,16 @@ if (!doNotTrack) {
-

這幾天在ansible 寫了一份新的playbook給developer 用

-

然後user反映說,希望能在ubuntu 18.04 內建的dock 裏面新增一個gnome-terminal的icon

-

我才發現原來之前的寫法不能用在 ubuntu 18.04 上

-

只好又弄了一份出來

+

剛剛在跑一個修改過的playbook,卻發現一個詭異的狀況

+

在用template產生檔案之前,爲了避免錯誤,所以我先用 file module 去建立目錄

+

怪就怪在,建立目錄的task沒錯,但是要產生檔案時,卻出現了目的目錄不存在的錯誤

- +
@@ -454,12 +455,12 @@ if (!doNotTrack) { - +
- 31 October + 16 December @@ -481,21 +482,17 @@ if (!doNotTrack) {
-

最近在準備升級client 的作業系統,從 ubuntu 14.04 準備升級到 18.04 或明年的 20.04

-

因為公司政策的關係,所以現在要連接internet ,需要申請

-

然後 user 再去系統的proxy 設定新增一個 PAC 檔

-

但是這個動作其實是去叫NetworkManager 這個服務

-

可是在18.04 上,我會把這個服務關掉,因為他會干擾我的DNS設定

-

所以想試試看有沒有辦法不使用 NetworkManager 服務

-

又能夠在 user level 修改 proxy 參數

-

就想到了用 dconf 來做

+

這幾天在ansible 寫了一份新的playbook給developer 用

+

然後user反映說,希望能在ubuntu 18.04 內建的dock 裏面新增一個gnome-terminal的icon

+

我才發現原來之前的寫法不能用在 ubuntu 18.04 上

+

只好又弄了一份出來

- +
@@ -513,12 +510,12 @@ if (!doNotTrack) { - +
- 14 October + 31 October @@ -540,17 +537,21 @@ if (!doNotTrack) {
-

最近上班閒得發慌,沒事就上 github 找看看有沒有什麼好玩的專案

-

就不小心發現了這個 streisand

-

https://github.com/StreisandEffect/streisand

-

玩了一下,發現這根本就是終極的VPN Server solution ..

+

最近在準備升級client 的作業系統,從 ubuntu 14.04 準備升級到 18.04 或明年的 20.04

+

因為公司政策的關係,所以現在要連接internet ,需要申請

+

然後 user 再去系統的proxy 設定新增一個 PAC 檔

+

但是這個動作其實是去叫NetworkManager 這個服務

+

可是在18.04 上,我會把這個服務關掉,因為他會干擾我的DNS設定

+

所以想試試看有沒有辦法不使用 NetworkManager 服務

+

又能夠在 user level 修改 proxy 參數

+

就想到了用 dconf 來做

- +
@@ -698,7 +699,16 @@ if (!doNotTrack) { - 13 + + + + + + + + + + 14 @@ -842,7 +852,7 @@ if (!doNotTrack) {
- + diff --git a/public/page/6/index.html b/public/page/6/index.html index 14ee4eda..e1b8a658 100644 --- a/public/page/6/index.html +++ b/public/page/6/index.html @@ -46,9 +46,9 @@ - + - + @@ -288,12 +288,12 @@ if (!doNotTrack) { - +
- 04 October + 14 October @@ -309,21 +309,23 @@ if (!doNotTrack) { / - + 筆記
@@ -341,12 +343,12 @@ if (!doNotTrack) { - +
- 20 September + 04 October @@ -362,25 +364,21 @@ if (!doNotTrack) { / - 筆記 +
-

最近都在弄postgresql

-

備份、還原測試得差不多了,就等著看到時候要用什麼方式

-

前幾天看到 pg_auto_failover 這個postgresql 的extension

-

https://github.com/citusdata/pg_auto_failover

-

感覺挺不錯的,看起來設定很簡單,雖然之前已經測試了 keepalived 做 HA

-

不過,反正當作練功嘛,多測試一套也不錯!

+

這兩天在找關於在 ubuntu 中做搜尋的軟體

+

意外找到一個非常好用的工具 ulauncher

- +
@@ -398,12 +396,12 @@ if (!doNotTrack) { - +
- 10 September + 20 September @@ -425,16 +423,19 @@ if (!doNotTrack) {
-

前幾天在淘寶上買了個 SSK 的USB 3.1 Gen2 (type-c) NVME SSD 外接盒 -手邊也剛好有一條多的intel 600p nvme ssd 就順手來做個比較 -目標是看看有沒有可能直接用外接的SSD來跑postgresql

+

最近都在弄postgresql

+

備份、還原測試得差不多了,就等著看到時候要用什麼方式

+

前幾天看到 pg_auto_failover 這個postgresql 的extension

+

https://github.com/citusdata/pg_auto_failover

+

感覺挺不錯的,看起來設定很簡單,雖然之前已經測試了 keepalived 做 HA

+

不過,反正當作練功嘛,多測試一套也不錯!

- +
@@ -452,12 +453,12 @@ if (!doNotTrack) { - +
- 06 September + 10 September @@ -479,16 +480,16 @@ if (!doNotTrack) {
-

前面測試了用pgbarman / pgbackrest 來備份 postgresql

-

這次改從system file level 來下手

-

採用zfs 的快照來備份、還原postgresql 資料庫

+

前幾天在淘寶上買了個 SSK 的USB 3.1 Gen2 (type-c) NVME SSD 外接盒 +手邊也剛好有一條多的intel 600p nvme ssd 就順手來做個比較 +目標是看看有沒有可能直接用外接的SSD來跑postgresql

- +
@@ -506,12 +507,12 @@ if (!doNotTrack) { - +
- 05 September + 06 September @@ -533,14 +534,16 @@ if (!doNotTrack) {
@@ -690,7 +693,16 @@ if (!doNotTrack) { - 13 + + + + + + + + + + 14 @@ -834,7 +846,7 @@ if (!doNotTrack) {
- + diff --git a/public/page/7/index.html b/public/page/7/index.html index 2299129a..02ca9fb4 100644 --- a/public/page/7/index.html +++ b/public/page/7/index.html @@ -46,9 +46,9 @@ - + - + @@ -288,12 +288,12 @@ if (!doNotTrack) { - +
- 23 August + 05 September @@ -315,14 +315,14 @@ if (!doNotTrack) {
@@ -340,7 +340,7 @@ if (!doNotTrack) { - +
@@ -367,17 +367,14 @@ if (!doNotTrack) {
@@ -395,12 +392,12 @@ if (!doNotTrack) { - +
- 20 August + 23 August @@ -422,17 +419,17 @@ if (!doNotTrack) {
-

因為老闆說要試試看用GPU 來跑postgresql 威力

-

手邊剛好有一張 geforce gt 720

-

一開始沒想太多,看到有這張卡的驅動程式,然後CUDA也有支援

-

就直接從桌機拔下來,接去LAB Server ,然後就開始一連串的難關了…

+

很久以前就有看到這個用來備份postgresql 的 pgbarman

+

https://www.pgbarman.org/

+

前幾天老闆在slack 上面又提到,所以這次就花了點時間來玩玩看

+

不過呢,雖然有弄起來,但是還真不知道有些問題是怎麼解決的…

- +
@@ -450,12 +447,12 @@ if (!doNotTrack) { - +
- 16 August + 20 August @@ -477,20 +474,17 @@ if (!doNotTrack) {
-

最近一直在玩 wireguard ,先前把各個分公司和總部的VPN 改用 wireguard 建立

-

想說再打個VPN tunnel 來當跳板連 ptt 好了

-

因為wireguard 建立很簡單,而且又可以指定想要繞出去的路由,不會影響原本的網路環境

-

本來是在vultr 的VPS上面建立這個tunnel

-

但是那台VPS連去ptt 很頓,卡卡的

-

所以改用google cloud platform 的free tier 來做

-

反正只是拿來當跳板,不會有什麼流量、運算產生,可以一直保持免費的狀態

+

因為老闆說要試試看用GPU 來跑postgresql 威力

+

手邊剛好有一張 geforce gt 720

+

一開始沒想太多,看到有這張卡的驅動程式,然後CUDA也有支援

+

就直接從桌機拔下來,接去LAB Server ,然後就開始一連串的難關了…

- +
@@ -508,12 +502,12 @@ if (!doNotTrack) { - +
- 13 August + 16 August @@ -535,19 +529,20 @@ if (!doNotTrack) {
-

因為實在受夠了現在用的 openwrt + strongswan 建立 IPSec VPN

-

雖然說其實沒有什麼不好,但是畢竟不是我建立的,而當初的文件也都不見了

-

完全沒辦法了解當時設計的邏輯,造成後續debug 困難

-

可以想像一下,一台VPN router ping 不到remote、ping不到internet、甚至ping不到自己 是要怎麼debug !?(翻桌

-

之前買了兩台edgerouter X 拿來玩了一下 wireguard,感覺還不錯,不過只有測試到點對點

-

這次試試看躲在gateway後面,看看能不能建立多點的VPN環境

- - +

最近一直在玩 wireguard ,先前把各個分公司和總部的VPN 改用 wireguard 建立

+

想說再打個VPN tunnel 來當跳板連 ptt 好了

+

因為wireguard 建立很簡單,而且又可以指定想要繞出去的路由,不會影響原本的網路環境

+

本來是在vultr 的VPS上面建立這個tunnel

+

但是那台VPS連去ptt 很頓,卡卡的

+

所以改用google cloud platform 的free tier 來做

+

反正只是拿來當跳板,不會有什麼流量、運算產生,可以一直保持免費的狀態

+ +
@@ -697,7 +692,16 @@ if (!doNotTrack) { - 13 + + + + + + + + + + 14 @@ -841,7 +845,7 @@ if (!doNotTrack) {
- + diff --git a/public/page/8/index.html b/public/page/8/index.html index 530f1067..315e0051 100644 --- a/public/page/8/index.html +++ b/public/page/8/index.html @@ -46,9 +46,9 @@ - + - + @@ -288,12 +288,12 @@ if (!doNotTrack) { - +
- 06 August + 13 August @@ -315,23 +315,19 @@ if (!doNotTrack) {
-

之前總部和分公司之間 是用buffalo 的小AP 灌 openwrt

-

然後用strongswan 來打 IPSEC site to site VPN

-

config 看起來不是很難 (只是看起來)

-

但是實際上已經找不到當初的文件

-

所以要維護很困難(光那些RSA KEY 就不知道為何、如何產生)

-

後來採購了兩台edgerouter X 做測試

-

也用openvpn 成功的建立了 site to site VPN

-

本來想說 openvpn 已經夠簡單了

-

今天看到文章說用wireguard 可以更簡單

-

於是研究了一下,發現還真的很簡單!

- - +

因為實在受夠了現在用的 openwrt + strongswan 建立 IPSec VPN

+

雖然說其實沒有什麼不好,但是畢竟不是我建立的,而當初的文件也都不見了

+

完全沒辦法了解當時設計的邏輯,造成後續debug 困難

+

可以想像一下,一台VPN router ping 不到remote、ping不到internet、甚至ping不到自己 是要怎麼debug !?(翻桌

+

之前買了兩台edgerouter X 拿來玩了一下 wireguard,感覺還不錯,不過只有測試到點對點

+

這次試試看躲在gateway後面,看看能不能建立多點的VPN環境

+ +
@@ -349,12 +345,12 @@ if (!doNotTrack) { - +
- 05 August + 06 August @@ -370,25 +366,29 @@ if (!doNotTrack) { / - ansible + 筆記
-

之前為了能夠在執行完 ansible playbook 後,能有個log 可以看

-

所以在每次執行的時候,都要加入 tee 的指令

-

像是

-
ANSIBLE_CONFIG=/home/D/ansiblecontrol/ansible.cfg /usr/local/bin/ansible-playbook  /home/D/ansiblecontrol/playbook.user_client.yml --vault-password-file=/home/D/ansiblecontrol/vault.passwd -i /home/D/ansiblecontrol/inventory/production -f1 --limit tyuserclients |tee /tmp/tyuserclients.log
-

一直都是放在crontab 裡面執行,也就沒有去管他

-

反正也沒有人關心結果怎樣 (攤手

+

之前總部和分公司之間 是用buffalo 的小AP 灌 openwrt

+

然後用strongswan 來打 IPSEC site to site VPN

+

config 看起來不是很難 (只是看起來)

+

但是實際上已經找不到當初的文件

+

所以要維護很困難(光那些RSA KEY 就不知道為何、如何產生)

+

後來採購了兩台edgerouter X 做測試

+

也用openvpn 成功的建立了 site to site VPN

+

本來想說 openvpn 已經夠簡單了

+

今天看到文章說用wireguard 可以更簡單

+

於是研究了一下,發現還真的很簡單!

- +
@@ -406,12 +406,12 @@ if (!doNotTrack) { - +
- 31 July + 05 August @@ -427,27 +427,25 @@ if (!doNotTrack) { / - 筆記 + ansible
-

最近有個任務,需要大量安裝client

-

想用PXE來處理,只要user開機按F12(acer 桌機) 選擇PXE Boot

-

然後選擇OS版本,就可以自動進行安裝

-

安裝完成後,會自動重新開機,接著就用ansible來做user環境設定

-

PXE的部份本來是沒有什麼問題,自動安裝系統的部份都做好了

-

可是因為這次的量比較多,想說讓每一台在完成PXE安裝後的第一次重開機

-

就送出一封郵件來通知我,說已經完成安裝,可以執行ansible 了

-

看似很簡單的一件事情,卻搞了我兩天….

+

之前為了能夠在執行完 ansible playbook 後,能有個log 可以看

+

所以在每次執行的時候,都要加入 tee 的指令

+

像是

+
ANSIBLE_CONFIG=/home/D/ansiblecontrol/ansible.cfg /usr/local/bin/ansible-playbook  /home/D/ansiblecontrol/playbook.user_client.yml --vault-password-file=/home/D/ansiblecontrol/vault.passwd -i /home/D/ansiblecontrol/inventory/production -f1 --limit tyuserclients |tee /tmp/tyuserclients.log
+

一直都是放在crontab 裡面執行,也就沒有去管他

+

反正也沒有人關心結果怎樣 (攤手

- +
@@ -465,12 +463,12 @@ if (!doNotTrack) { - +
- 23 July + 31 July @@ -486,23 +484,27 @@ if (!doNotTrack) { / - ansible + 筆記
-

因為工作上的需要,要修改client端的 /etc/environment 檔案

-

在有權限使用proxy 服務的user的環境中,加入proxy 的設定

-

原本的清單中,有host/user/ip 這幾個值可以拿來判斷

-

proxy server 那邊是採用ip 來控制,所以這邊也跟著用 ip 來判斷要不要修改 /etc/environment

+

最近有個任務,需要大量安裝client

+

想用PXE來處理,只要user開機按F12(acer 桌機) 選擇PXE Boot

+

然後選擇OS版本,就可以自動進行安裝

+

安裝完成後,會自動重新開機,接著就用ansible來做user環境設定

+

PXE的部份本來是沒有什麼問題,自動安裝系統的部份都做好了

+

可是因為這次的量比較多,想說讓每一台在完成PXE安裝後的第一次重開機

+

就送出一封郵件來通知我,說已經完成安裝,可以執行ansible 了

+

看似很簡單的一件事情,卻搞了我兩天….

- +
@@ -520,12 +522,12 @@ if (!doNotTrack) { - +
- 01 July + 23 July @@ -541,22 +543,23 @@ if (!doNotTrack) { / - Ansible + ansible
-

在ansible中,關於如何引用自定義的變數,一直讓我很頭疼

-

尤其是有牽涉到從外部導入yaml檔案時,更是常常讓我不知道到底該怎麼抓出想要的變數

-

這次還是用selectattr 來處理,希望下次能夠記得…

+

因為工作上的需要,要修改client端的 /etc/environment 檔案

+

在有權限使用proxy 服務的user的環境中,加入proxy 的設定

+

原本的清單中,有host/user/ip 這幾個值可以拿來判斷

+

proxy server 那邊是採用ip 來控制,所以這邊也跟著用 ip 來判斷要不要修改 /etc/environment

- +
@@ -706,7 +709,16 @@ if (!doNotTrack) { - 13 + + + + + + + + + + 14 @@ -850,7 +862,7 @@ if (!doNotTrack) {
- + diff --git a/public/page/9/index.html b/public/page/9/index.html index 593a1897..85a156d6 100644 --- a/public/page/9/index.html +++ b/public/page/9/index.html @@ -46,9 +46,9 @@ - + - + @@ -288,12 +288,12 @@ if (!doNotTrack) { - +
- 20 June + 01 July @@ -309,24 +309,22 @@ if (!doNotTrack) { / - 筆記 + Ansible
-

之前在LAN/windows環境下,一直都是用ultravnc/winvnc/tigervnc之類的VNC軟體

-

但是如果要過 internet ,就會碰到各種開port的問題

-

在這種環境下,就有了當時 teamviewer 的橫空出世

-

解決了開PORT的問題,讓被控端(通常是資訊技術相對弱勢,需要接受幫助的一方)不需要懂太多

-

只要下載teamviewer被控端,開啟後報ID 給協助者就好了

+

在ansible中,關於如何引用自定義的變數,一直讓我很頭疼

+

尤其是有牽涉到從外部導入yaml檔案時,更是常常讓我不知道到底該怎麼抓出想要的變數

+

這次還是用selectattr 來處理,希望下次能夠記得…

- +
@@ -344,12 +342,12 @@ if (!doNotTrack) { - +
- 17 June + 20 June @@ -365,25 +363,24 @@ if (!doNotTrack) { / - Proxmox + 筆記
-

前幾天接的一個case

-

因為費用的關係,所以沒有考慮用傳統定義上的伺服器(DELL R640)

-

改採用比較高階一點的洋垃圾,規格大概是 Intel E5-2680V2 x2 + 64G RAM + 128G SSD x2 (OS) + 960G SSD x4 (raid 10 , zfs)

-

storage 選擇QNAP NAS TS-932X + 960G SSD x 4 (raid 10 , NFS) + QNAP 10G Switch QSW-1280C-8C

-

既然storage這邊選用了10G的機種,伺服器上當然也要增加10G網卡

-

一樣,成本考量,就不用INTEL 了,買了這張 ASUS 10G 網卡

+

之前在LAN/windows環境下,一直都是用ultravnc/winvnc/tigervnc之類的VNC軟體

+

但是如果要過 internet ,就會碰到各種開port的問題

+

在這種環境下,就有了當時 teamviewer 的橫空出世

+

解決了開PORT的問題,讓被控端(通常是資訊技術相對弱勢,需要接受幫助的一方)不需要懂太多

+

只要下載teamviewer被控端,開啟後報ID 給協助者就好了

- +
@@ -401,12 +398,12 @@ if (!doNotTrack) { - +
- 21 May + 17 June @@ -422,21 +419,25 @@ if (!doNotTrack) { / - 筆記 + Proxmox
-

最近一直在玩一些docker,不過老是會碰到歪果扔寫的東西,時區都不一致

-

有的用 UTC,有的用localtime,就是沒碰到用 Asia/Taipei 的….

+

前幾天接的一個case

+

因為費用的關係,所以沒有考慮用傳統定義上的伺服器(DELL R640)

+

改採用比較高階一點的洋垃圾,規格大概是 Intel E5-2680V2 x2 + 64G RAM + 128G SSD x2 (OS) + 960G SSD x4 (raid 10 , zfs)

+

storage 選擇QNAP NAS TS-932X + 960G SSD x 4 (raid 10 , NFS) + QNAP 10G Switch QSW-1280C-8C

+

既然storage這邊選用了10G的機種,伺服器上當然也要增加10G網卡

+

一樣,成本考量,就不用INTEL 了,買了這張 ASUS 10G 網卡

- +
@@ -454,12 +455,12 @@ if (!doNotTrack) { - +
- 17 May + 21 May @@ -475,23 +476,21 @@ if (!doNotTrack) { / - linux + 筆記
-

工作上常會需要用ssh登入遠端主機檢查LOG,有必要的時候,還要把log複製回本機來處理。

-

以前都是傻傻的用 scp 傳檔案

-

之前就記得有這個xclip/xsel 可以用,但是一直沒有弄清楚怎麼執行

-

早上研究了一下,順便做個筆記。

+

最近一直在玩一些docker,不過老是會碰到歪果扔寫的東西,時區都不一致

+

有的用 UTC,有的用localtime,就是沒碰到用 Asia/Taipei 的….

- +
@@ -509,12 +508,12 @@ if (!doNotTrack) { - +
- 23 April + 17 May @@ -530,24 +529,23 @@ if (!doNotTrack) { / - 筆記 + linux
-

最近因為一直碰到硬碟故障的問題,算起來那一批同時購買的5X顆 seagate 2T硬碟,已經有一半以上故障返修了….

-

然後又因為一直沒有添購新的硬碟,只能用這些快過保/已過保的撐著

-

所以最近不斷的在更換機器內的硬碟,而且還沒有熱插拔!

-

也導致原本負責處理盤點資產的同事困擾,因為跟手邊的紀錄已經對不起來了

-

然後就變成要對資產的時候,需要一台一台登入,然後去下不同的指令,取得想要的硬體資訊,超級麻煩的!

+

工作上常會需要用ssh登入遠端主機檢查LOG,有必要的時候,還要把log複製回本機來處理。

+

以前都是傻傻的用 scp 傳檔案

+

之前就記得有這個xclip/xsel 可以用,但是一直沒有弄清楚怎麼執行

+

早上研究了一下,順便做個筆記。

- +
@@ -697,7 +695,16 @@ if (!doNotTrack) { - 13 + + + + + + + + + + 14 @@ -841,7 +848,7 @@ if (!doNotTrack) {
- + diff --git a/public/post/10g-lab-using-proxmox-and-mellanox/index.html b/public/post/10g-lab-using-proxmox-and-mellanox/index.html index 95320dfb..7e77ecb1 100644 --- a/public/post/10g-lab-using-proxmox-and-mellanox/index.html +++ b/public/post/10g-lab-using-proxmox-and-mellanox/index.html @@ -45,9 +45,9 @@ - + - + @@ -723,7 +723,7 @@ title="pinterest icon">
- + diff --git a/public/post/accidentally-typed-an-extra-space-in-ansible-playbook/index.html b/public/post/accidentally-typed-an-extra-space-in-ansible-playbook/index.html index abbf4d19..28c314bc 100644 --- a/public/post/accidentally-typed-an-extra-space-in-ansible-playbook/index.html +++ b/public/post/accidentally-typed-an-extra-space-in-ansible-playbook/index.html @@ -45,9 +45,9 @@ - + - + @@ -661,7 +661,7 @@ title="pinterest icon">
- + diff --git a/public/post/add-system-wide-favorite-apps-in-dconf/index.html b/public/post/add-system-wide-favorite-apps-in-dconf/index.html index 74f6a56b..4059da62 100644 --- a/public/post/add-system-wide-favorite-apps-in-dconf/index.html +++ b/public/post/add-system-wide-favorite-apps-in-dconf/index.html @@ -45,9 +45,9 @@ - + - + @@ -629,7 +629,7 @@ title="pinterest icon">
- + diff --git a/public/post/another-way-to-keep-ansible-log/index.html b/public/post/another-way-to-keep-ansible-log/index.html index 7a0170ea..02b8426a 100644 --- a/public/post/another-way-to-keep-ansible-log/index.html +++ b/public/post/another-way-to-keep-ansible-log/index.html @@ -45,9 +45,9 @@ - + - + @@ -602,7 +602,7 @@ title="pinterest icon">
- + diff --git a/public/post/ansible-get-value-from-loop-register/index.html b/public/post/ansible-get-value-from-loop-register/index.html index fa1fcb5a..f23a227a 100644 --- a/public/post/ansible-get-value-from-loop-register/index.html +++ b/public/post/ansible-get-value-from-loop-register/index.html @@ -45,9 +45,9 @@ - + - + @@ -688,7 +688,7 @@ title="pinterest icon">
- + diff --git a/public/post/ansible-run-task-depends-on-ipaddr/index.html b/public/post/ansible-run-task-depends-on-ipaddr/index.html index e6b4ce15..932783fb 100644 --- a/public/post/ansible-run-task-depends-on-ipaddr/index.html +++ b/public/post/ansible-run-task-depends-on-ipaddr/index.html @@ -45,9 +45,9 @@ - + - + @@ -665,7 +665,7 @@ title="pinterest icon">
- + diff --git a/public/post/ansible-selectattr-filter/index.html b/public/post/ansible-selectattr-filter/index.html index f37af3c3..e0f4d403 100644 --- a/public/post/ansible-selectattr-filter/index.html +++ b/public/post/ansible-selectattr-filter/index.html @@ -45,9 +45,9 @@ - + - + @@ -607,7 +607,7 @@ title="pinterest icon">
- + diff --git a/public/post/ansible-selectattr-from-list-in-dictionary/index.html b/public/post/ansible-selectattr-from-list-in-dictionary/index.html index a8a644bc..de2014b4 100644 --- a/public/post/ansible-selectattr-from-list-in-dictionary/index.html +++ b/public/post/ansible-selectattr-from-list-in-dictionary/index.html @@ -45,9 +45,9 @@ - + - + @@ -658,7 +658,7 @@ title="pinterest icon">
- + diff --git a/public/post/ansible-selectattr/index.html b/public/post/ansible-selectattr/index.html index 532466fa..72dc5408 100644 --- a/public/post/ansible-selectattr/index.html +++ b/public/post/ansible-selectattr/index.html @@ -45,9 +45,9 @@ - + - + @@ -693,7 +693,7 @@ title="pinterest icon">
- + diff --git a/public/post/ansible-ssh-forwardagent/index.html b/public/post/ansible-ssh-forwardagent/index.html index 29e98065..cf0dd102 100644 --- a/public/post/ansible-ssh-forwardagent/index.html +++ b/public/post/ansible-ssh-forwardagent/index.html @@ -45,9 +45,9 @@ - + - + @@ -728,7 +728,7 @@ title="pinterest icon">
- + diff --git a/public/post/auto-fetch-wildcard-ssl-certs-acme-dns-lego/index.html b/public/post/auto-fetch-wildcard-ssl-certs-acme-dns-lego/index.html index 4605a163..ffb9d20c 100644 --- a/public/post/auto-fetch-wildcard-ssl-certs-acme-dns-lego/index.html +++ b/public/post/auto-fetch-wildcard-ssl-certs-acme-dns-lego/index.html @@ -45,9 +45,9 @@ - + - + @@ -770,7 +770,7 @@ title="pinterest icon">
- + diff --git a/public/post/awesome-all-in-one-vpn-server-streisand/index.html b/public/post/awesome-all-in-one-vpn-server-streisand/index.html index e40cff5f..03142e2d 100644 --- a/public/post/awesome-all-in-one-vpn-server-streisand/index.html +++ b/public/post/awesome-all-in-one-vpn-server-streisand/index.html @@ -45,9 +45,9 @@ - + - + @@ -617,7 +617,7 @@ title="pinterest icon">
- + diff --git a/public/post/backup-restore-postgresql-with-pgbackrest/index.html b/public/post/backup-restore-postgresql-with-pgbackrest/index.html index 17906550..5416aa0f 100644 --- a/public/post/backup-restore-postgresql-with-pgbackrest/index.html +++ b/public/post/backup-restore-postgresql-with-pgbackrest/index.html @@ -45,9 +45,9 @@ - + - + @@ -790,7 +790,7 @@ title="pinterest icon">
- + diff --git a/public/post/bencmark-with-external-internal-nvme-ssd-and-external-sata-ssd/index.html b/public/post/bencmark-with-external-internal-nvme-ssd-and-external-sata-ssd/index.html index 8076ecbd..6038532e 100644 --- a/public/post/bencmark-with-external-internal-nvme-ssd-and-external-sata-ssd/index.html +++ b/public/post/bencmark-with-external-internal-nvme-ssd-and-external-sata-ssd/index.html @@ -45,9 +45,9 @@ - + - + @@ -929,7 +929,7 @@ title="pinterest icon">
- + diff --git a/public/post/bookstack-docker/index.html b/public/post/bookstack-docker/index.html index da46b006..ddc1ee7b 100644 --- a/public/post/bookstack-docker/index.html +++ b/public/post/bookstack-docker/index.html @@ -45,9 +45,9 @@ - + - + @@ -653,7 +653,7 @@ title="pinterest icon">
- + diff --git a/public/post/change-preferred-language-in-firefox/index.html b/public/post/change-preferred-language-in-firefox/index.html index 4a1f40ae..3106be2a 100644 --- a/public/post/change-preferred-language-in-firefox/index.html +++ b/public/post/change-preferred-language-in-firefox/index.html @@ -45,9 +45,9 @@ - + - + @@ -626,7 +626,7 @@ title="pinterest icon">
- + diff --git a/public/post/change-timezone-in-docker/index.html b/public/post/change-timezone-in-docker/index.html index 6965c789..432ea3d4 100644 --- a/public/post/change-timezone-in-docker/index.html +++ b/public/post/change-timezone-in-docker/index.html @@ -45,9 +45,9 @@ - + - + @@ -681,7 +681,7 @@ title="pinterest icon">
- + diff --git a/public/post/check-port-speed-in-openwrt/index.html b/public/post/check-port-speed-in-openwrt/index.html index 2d4b2315..6cd2cee6 100644 --- a/public/post/check-port-speed-in-openwrt/index.html +++ b/public/post/check-port-speed-in-openwrt/index.html @@ -45,9 +45,9 @@ - + - + @@ -1030,7 +1030,7 @@ title="pinterest icon">
- + diff --git a/public/post/cloudcmd-web-file-manager/index.html b/public/post/cloudcmd-web-file-manager/index.html index 6dfb4fb0..0a0184a1 100644 --- a/public/post/cloudcmd-web-file-manager/index.html +++ b/public/post/cloudcmd-web-file-manager/index.html @@ -45,9 +45,9 @@ - + - + @@ -619,7 +619,7 @@ title="pinterest icon">
- + diff --git a/public/post/command_to_test_main_ssl/index.html b/public/post/command_to_test_main_ssl/index.html index 18f2426f..1621df1f 100644 --- a/public/post/command_to_test_main_ssl/index.html +++ b/public/post/command_to_test_main_ssl/index.html @@ -45,9 +45,9 @@ - + - + @@ -778,7 +778,7 @@ title="pinterest icon">
- + diff --git a/public/post/config-networkmanager-in-ubuntu-to-stop-modify-resolvconf/index.html b/public/post/config-networkmanager-in-ubuntu-to-stop-modify-resolvconf/index.html index eae1a0e8..527d1d9a 100644 --- a/public/post/config-networkmanager-in-ubuntu-to-stop-modify-resolvconf/index.html +++ b/public/post/config-networkmanager-in-ubuntu-to-stop-modify-resolvconf/index.html @@ -45,9 +45,9 @@ - + - + @@ -626,7 +626,7 @@ title="pinterest icon">
- + diff --git a/public/post/copy_role_in_pgsql/index.html b/public/post/copy_role_in_pgsql/index.html index b0b79f7a..a9caf270 100644 --- a/public/post/copy_role_in_pgsql/index.html +++ b/public/post/copy_role_in_pgsql/index.html @@ -45,9 +45,9 @@ - + - + @@ -604,7 +604,7 @@ title="pinterest icon">
- + diff --git a/public/post/create-portable-vim-environment/index.html b/public/post/create-portable-vim-environment/index.html index 315ddeb1..6b3e93bd 100644 --- a/public/post/create-portable-vim-environment/index.html +++ b/public/post/create-portable-vim-environment/index.html @@ -45,9 +45,9 @@ - + - + @@ -609,7 +609,7 @@ title="pinterest icon">
- + diff --git a/public/post/debian-buster-server-been-hacked/index.html b/public/post/debian-buster-server-been-hacked/index.html index 88220ba6..7792f0da 100644 --- a/public/post/debian-buster-server-been-hacked/index.html +++ b/public/post/debian-buster-server-been-hacked/index.html @@ -45,9 +45,9 @@ - + - + @@ -704,7 +704,7 @@ title="pinterest icon">
- + diff --git a/public/post/do-no-use-10-0-0-0-private-ipaddr-in-gcp/index.html b/public/post/do-no-use-10-0-0-0-private-ipaddr-in-gcp/index.html index db1e18d6..47c4a93c 100644 --- a/public/post/do-no-use-10-0-0-0-private-ipaddr-in-gcp/index.html +++ b/public/post/do-no-use-10-0-0-0-private-ipaddr-in-gcp/index.html @@ -45,9 +45,9 @@ - + - + @@ -655,7 +655,7 @@ title="pinterest icon">
- + diff --git a/public/post/enable-synology-public-ssh/index.html b/public/post/enable-synology-public-ssh/index.html index bf300546..61809f3e 100644 --- a/public/post/enable-synology-public-ssh/index.html +++ b/public/post/enable-synology-public-ssh/index.html @@ -45,9 +45,9 @@ - + - + @@ -652,7 +652,7 @@ title="pinterest icon">
- + diff --git a/public/post/first-try-synology-ha/index.html b/public/post/first-try-synology-ha/index.html index df1980b5..41badc5c 100644 --- a/public/post/first-try-synology-ha/index.html +++ b/public/post/first-try-synology-ha/index.html @@ -45,9 +45,9 @@ - + - + @@ -634,7 +634,7 @@ title="pinterest icon">
- + diff --git a/public/post/fix-zpool-device-busy-using-dmsetup/index.html b/public/post/fix-zpool-device-busy-using-dmsetup/index.html index 5dca8a7d..2b4f1735 100644 --- a/public/post/fix-zpool-device-busy-using-dmsetup/index.html +++ b/public/post/fix-zpool-device-busy-using-dmsetup/index.html @@ -45,9 +45,9 @@ - + - + @@ -633,7 +633,7 @@ title="pinterest icon">
- + diff --git a/public/post/incredibly-slow-mdadm-rebuild/index.html b/public/post/incredibly-slow-mdadm-rebuild/index.html index c87db147..0f5f7067 100644 --- a/public/post/incredibly-slow-mdadm-rebuild/index.html +++ b/public/post/incredibly-slow-mdadm-rebuild/index.html @@ -45,9 +45,9 @@ - + - + @@ -651,7 +651,7 @@ title="pinterest icon">
- + diff --git a/public/post/index.xml b/public/post/index.xml index 5b9764d8..4d0d10a8 100644 --- a/public/post/index.xml +++ b/public/post/index.xml @@ -6,11 +6,29 @@ Recent content in Posts on MC部落 Hugo -- gohugo.io en-us - Thu, 26 Aug 2021 12:08:43 +0800 + Wed, 29 Sep 2021 14:38:10 +0800 + + Init Script in Openwrt to Start Leproxy/在openwrt 新增自動啟動leproxy的script + https://h.cowbay.org/post/init-script-in-openwrt-to-start-leproxy/ + Wed, 29 Sep 2021 14:38:10 +0800 + + https://h.cowbay.org/post/init-script-in-openwrt-to-start-leproxy/ + <p>最近在逐步的把舊有的VPN Router 汰換掉,改用wireguard 來作 full mesh site-to-site VPN</p> +<p>不過這是另外的故事了&hellip;</p> +<p>在把wireguard VPN 都搞定之後,才發現原來 openwrt 的 uhttpd 要加上 letsencrypt 的免費憑證有點難搞</p> +<p>網路上大部分都介紹用 acme.sh ,我是有測試出來啦</p> +<p>但是跟網路上的方法不太一樣了,新增了滿多步驟的,覺得很麻煩</p> +<p>想到向來愛用的 leproxy ,既然是 golang 開發的,又是open source</p> +<p>就拿來compile 給openwrt router 用用看</p> +<p>想不到還真的可以, golang 真是棒!</p> +<p>不過也還是要順手改一些openwrt 東西才行</p> +<p>還是簡單作個筆記好了</p> + + auto fetch Wildcard ssl certs with lego + acme-dns ( Domain Register : Namecheap) https://h.cowbay.org/post/auto-fetch-wildcard-ssl-certs-acme-dns-lego/ diff --git a/public/post/init-script-in-openwrt-to-start-leproxy/index.html b/public/post/init-script-in-openwrt-to-start-leproxy/index.html new file mode 100644 index 00000000..924e1ab9 --- /dev/null +++ b/public/post/init-script-in-openwrt-to-start-leproxy/index.html @@ -0,0 +1,690 @@ + + + + + + + + Init Script in Openwrt to Start Leproxy/在openwrt 新增自動啟動leproxy的script + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Skip to content + + +
+ + + + + + + +
+ +
+ + + + +
+

Init Script in Openwrt to Start Leproxy/在openwrt 新增自動啟動leproxy的script

+
+
+
+
+

最近在逐步的把舊有的VPN Router 汰換掉,改用wireguard 來作 full mesh site-to-site VPN

+

不過這是另外的故事了…

+

在把wireguard VPN 都搞定之後,才發現原來 openwrt 的 uhttpd 要加上 letsencrypt 的免費憑證有點難搞

+

網路上大部分都介紹用 acme.sh ,我是有測試出來啦

+

但是跟網路上的方法不太一樣了,新增了滿多步驟的,覺得很麻煩

+

想到向來愛用的 leproxy ,既然是 golang 開發的,又是open source

+

就拿來compile 給openwrt router 用用看

+

想不到還真的可以, golang 真是棒!

+

不過也還是要順手改一些openwrt 東西才行

+

還是簡單作個筆記好了

+

compile leproxy for arm64

+

當然要先確認好自己的環境有沒有裝了golang 可以用來編譯,這部分就不多提了。

+
下載並編譯 leproxy
+
git clone https://github.com/artyom/leproxy
+cd leproxy
+GOOS=linux GOARCH=arm64 go build .
+mv leproxy leproxy.arm64
+
copy leproxy.arm64 to router
+
scp leproxy.arm64 root@192.168.0.254:/root/leproxy.arm64
+

接著 ssh 登入 router 作相關設定

+

ssh root@192.168.0.254

+
建立/etc/leproxy/mapping.yml
+
mkdir -p /etc/leproxy
+vim /etc/leproxy/mapping.yml
+

內容大概長這樣,一次可以不止一行 +然後要注意 hqvpnrouter.abc.com 這個域名要先存在 A 記錄並指向這臺 router

+
hqvpnrouter.abc.com: 192.168.0.254:81
+

前面是這臺機器的hostname , leproxy 會用這個hostname 去申請免費的憑證 +後面是要把hqvpnrouter.abc.com 的要求轉到哪裡?這邊就是轉到本機(192.168.0.254)的 81 port

+
修改 uhttpd config
+

因為leproxy 會佔用 80 ,443 兩個port +所以要把 uhttpd 改去別的port 工作 +順便把 https 的設定拿掉,讓leproxy 去煩惱

+
# HTTP listen addresses, multiple allowed
+	list listen_http	0.0.0.0:81
+	list listen_http	[::]:81
+
+	# HTTPS listen addresses, multiple allowed
+	#list listen_https	0.0.0.0:443
+	#list listen_https	[::]:443
+
+	# Redirect HTTP requests to HTTPS if possible
+	option redirect_https	0
+

然後先重啟 uhttpd

+
/etc/init.d/uhttpd restart
+

看看 uhttpd 是不是已經改到 port 81

+
[200~root@HQ_VPN_ROUTER:~# netstat -antlp
+netstat: showing only processes with your user ID
+Active Internet connections (servers and established)
+Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
+tcp        0      0 0.0.0.0:81              0.0.0.0:*               LISTEN      1491/uhttpd
+tcp        0      0 10.2.3.2:53             0.0.0.0:*               LISTEN      3540/dnsmasq
+

好,這時候就可以用以下指令來測試leproxy 是不是可以正常運作

+

cacheDir 是會被用來存放leproxy 取得的免費憑證,必須要先存在系統中 +或者是要存放在 /tmp , /root 也都可以

+
/root/leproxy.arm64 -map /etc/leproxy/mapping.yml -email chchang@abc.com -cacheDir /etc/acme/
+
修改 firewall config
+

加入底下這段

+
config redirect
+	option dest_port '443'
+	option src 'wan'
+	option name 'https for leproxy'
+	option src_dport '443'
+	option target 'DNAT'
+	option dest_ip '192.168.0.254'
+	option dest 'lan'
+	list proto 'tcp'
+

重啟 firewall

+

這時候應該可以用 https://vpnrouter.abc.com 的方式來開啟這臺router 的管理界面

+

建立 init script

+

在 /etc/init.d 中新增一個檔案叫 leproxy

+

內容如下

+
#!/bin/sh /etc/rc.common
+# Example script
+# Copyright (C) 2007 OpenWrt.org
+
+START=99
+
+start() {        
+        echo "leproxy starting"
+    	/root/leproxy.arm64 -map /etc/leproxy/mapping.yml -email chchang@abc.com -cacheDir /etc/acme/ > /dev/null 2>&1 &
+        
+}
+stop () {
+	echo "leproxy stopping"
+	killall leproxy.arm64
+	}
+
改一下file permission
+
chmod u+rwx /etc/init.d/leproxy
+
設定開機自動啟動
+
/etc/init.d/leproxy enable
+
啟動leproxy
+
/etc/init.d/leproxy restart
+

開啟 https://vpnrouter.abc.com 再做一次確認

+
+
+ + + + +
+ +
+ + Eric Chang + + + Written by: +
+
+ + +

塵世裡一個迷途小書僮

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ +
+
+ + +comments powered by Disqus + + + + + + +
+
+ + + + + +
+ + + +
+ + + + + + diff --git a/public/post/install-asus-10g-nic-in-proxmox/index.html b/public/post/install-asus-10g-nic-in-proxmox/index.html index bba09d32..c5ad9171 100644 --- a/public/post/install-asus-10g-nic-in-proxmox/index.html +++ b/public/post/install-asus-10g-nic-in-proxmox/index.html @@ -45,9 +45,9 @@ - + - + @@ -675,7 +675,7 @@ title="pinterest icon">
- + diff --git a/public/post/install-it500u-card-reader-in-ubuntu-1804/index.html b/public/post/install-it500u-card-reader-in-ubuntu-1804/index.html index 018ec5b2..2fd56192 100644 --- a/public/post/install-it500u-card-reader-in-ubuntu-1804/index.html +++ b/public/post/install-it500u-card-reader-in-ubuntu-1804/index.html @@ -45,9 +45,9 @@ - + - + @@ -654,7 +654,7 @@ title="pinterest icon">
- + diff --git a/public/post/install-nvidia-driver-cuda-pgstrom-in-ubuntu-1804/index.html b/public/post/install-nvidia-driver-cuda-pgstrom-in-ubuntu-1804/index.html index 12539a76..38061f9e 100644 --- a/public/post/install-nvidia-driver-cuda-pgstrom-in-ubuntu-1804/index.html +++ b/public/post/install-nvidia-driver-cuda-pgstrom-in-ubuntu-1804/index.html @@ -45,9 +45,9 @@ - + - + @@ -758,7 +758,7 @@ title="pinterest icon">
- + diff --git a/public/post/install-postgresql-pg_strom-nvidia_driver-cuda-in-ubuntu-20.04/index.html b/public/post/install-postgresql-pg_strom-nvidia_driver-cuda-in-ubuntu-20.04/index.html index 2e5aeef4..69e49372 100644 --- a/public/post/install-postgresql-pg_strom-nvidia_driver-cuda-in-ubuntu-20.04/index.html +++ b/public/post/install-postgresql-pg_strom-nvidia_driver-cuda-in-ubuntu-20.04/index.html @@ -45,9 +45,9 @@ - + - + @@ -665,7 +665,7 @@ title="pinterest icon">
- + diff --git a/public/post/install-timeshift-on-ubuntu1804/index.html b/public/post/install-timeshift-on-ubuntu1804/index.html index 3ad99239..e94bdb88 100644 --- a/public/post/install-timeshift-on-ubuntu1804/index.html +++ b/public/post/install-timeshift-on-ubuntu1804/index.html @@ -45,9 +45,9 @@ - + - + @@ -1136,7 +1136,7 @@ title="pinterest icon">
- + diff --git a/public/post/install-ubuntu1804-on-dell-6ir-raid-controller/index.html b/public/post/install-ubuntu1804-on-dell-6ir-raid-controller/index.html index 7d7a3023..1c557490 100644 --- a/public/post/install-ubuntu1804-on-dell-6ir-raid-controller/index.html +++ b/public/post/install-ubuntu1804-on-dell-6ir-raid-controller/index.html @@ -45,9 +45,9 @@ - + - + @@ -616,7 +616,7 @@ title="pinterest icon">
- + diff --git a/public/post/inx-collect-detail-hardware-info/index.html b/public/post/inx-collect-detail-hardware-info/index.html index e073a623..5e062e9f 100644 --- a/public/post/inx-collect-detail-hardware-info/index.html +++ b/public/post/inx-collect-detail-hardware-info/index.html @@ -45,9 +45,9 @@ - + - + @@ -690,7 +690,7 @@ title="pinterest icon">
- + diff --git a/public/post/log-all-bash-commands/index.html b/public/post/log-all-bash-commands/index.html index 65c4d513..8a6a83eb 100644 --- a/public/post/log-all-bash-commands/index.html +++ b/public/post/log-all-bash-commands/index.html @@ -45,9 +45,9 @@ - + - + @@ -636,7 +636,7 @@ title="pinterest icon">
- + diff --git a/public/post/multiple-site-to-site-vpn-using-wireguard/index.html b/public/post/multiple-site-to-site-vpn-using-wireguard/index.html index deb7d554..6e5c9eac 100644 --- a/public/post/multiple-site-to-site-vpn-using-wireguard/index.html +++ b/public/post/multiple-site-to-site-vpn-using-wireguard/index.html @@ -45,9 +45,9 @@ - + - + @@ -801,7 +801,7 @@ title="pinterest icon">
- + diff --git a/public/post/nice-du-report-tool-durep/index.html b/public/post/nice-du-report-tool-durep/index.html index e7110d50..7fd29be4 100644 --- a/public/post/nice-du-report-tool-durep/index.html +++ b/public/post/nice-du-report-tool-durep/index.html @@ -45,9 +45,9 @@ - + - + @@ -641,7 +641,7 @@ title="pinterest icon">
- + diff --git a/public/post/pg_auto_failover_in_ubuntu_1804_psql_11/index.html b/public/post/pg_auto_failover_in_ubuntu_1804_psql_11/index.html index 0796ea12..4ad38d68 100644 --- a/public/post/pg_auto_failover_in_ubuntu_1804_psql_11/index.html +++ b/public/post/pg_auto_failover_in_ubuntu_1804_psql_11/index.html @@ -45,9 +45,9 @@ - + - + @@ -1356,7 +1356,7 @@ title="pinterest icon">
- + diff --git a/public/post/pgbarman-in-ubuntu-1804-postgresql-10-via-ssh/index.html b/public/post/pgbarman-in-ubuntu-1804-postgresql-10-via-ssh/index.html index 933b1a3c..be36c3fa 100644 --- a/public/post/pgbarman-in-ubuntu-1804-postgresql-10-via-ssh/index.html +++ b/public/post/pgbarman-in-ubuntu-1804-postgresql-10-via-ssh/index.html @@ -45,9 +45,9 @@ - + - + @@ -696,7 +696,7 @@ title="pinterest icon">
- + diff --git a/public/post/pgbarman-in-ubuntu-1804-postgresql-10/index.html b/public/post/pgbarman-in-ubuntu-1804-postgresql-10/index.html index c7761351..6d799454 100644 --- a/public/post/pgbarman-in-ubuntu-1804-postgresql-10/index.html +++ b/public/post/pgbarman-in-ubuntu-1804-postgresql-10/index.html @@ -45,9 +45,9 @@ - + - + @@ -822,7 +822,7 @@ title="pinterest icon">
- + diff --git a/public/post/postgresql-backup-restore-using-zfs-snapshot/index.html b/public/post/postgresql-backup-restore-using-zfs-snapshot/index.html index 7e2dc384..3ac761d7 100644 --- a/public/post/postgresql-backup-restore-using-zfs-snapshot/index.html +++ b/public/post/postgresql-backup-restore-using-zfs-snapshot/index.html @@ -45,9 +45,9 @@ - + - + @@ -908,7 +908,7 @@ title="pinterest icon">
- + diff --git a/public/post/postgresql-pgbench-benchmark/index.html b/public/post/postgresql-pgbench-benchmark/index.html index ad7b4d62..11173f95 100644 --- a/public/post/postgresql-pgbench-benchmark/index.html +++ b/public/post/postgresql-pgbench-benchmark/index.html @@ -45,9 +45,9 @@ - + - + @@ -666,7 +666,7 @@ title="pinterest icon">
- + diff --git a/public/post/proxmox-with-synology-high-availability/index.html b/public/post/proxmox-with-synology-high-availability/index.html index e155bf4d..225598be 100644 --- a/public/post/proxmox-with-synology-high-availability/index.html +++ b/public/post/proxmox-with-synology-high-availability/index.html @@ -45,9 +45,9 @@ - + - + @@ -625,7 +625,7 @@ title="pinterest icon">
- + diff --git a/public/post/recommended-ulauncher-in-ubuntu-1804/index.html b/public/post/recommended-ulauncher-in-ubuntu-1804/index.html index cacfcde9..02a7d707 100644 --- a/public/post/recommended-ulauncher-in-ubuntu-1804/index.html +++ b/public/post/recommended-ulauncher-in-ubuntu-1804/index.html @@ -45,9 +45,9 @@ - + - + @@ -638,7 +638,7 @@ title="pinterest icon">
- + diff --git a/public/post/remote-management-system-meshcentral/index.html b/public/post/remote-management-system-meshcentral/index.html index 03cf54f1..e4b64022 100644 --- a/public/post/remote-management-system-meshcentral/index.html +++ b/public/post/remote-management-system-meshcentral/index.html @@ -45,9 +45,9 @@ - + - + @@ -659,7 +659,7 @@ title="pinterest icon">
- + diff --git a/public/post/rescue-synology-nas-with-ubuntu-livecd/index.html b/public/post/rescue-synology-nas-with-ubuntu-livecd/index.html index b23ca2f6..5715e8ff 100644 --- a/public/post/rescue-synology-nas-with-ubuntu-livecd/index.html +++ b/public/post/rescue-synology-nas-with-ubuntu-livecd/index.html @@ -45,9 +45,9 @@ - + - + @@ -706,7 +706,7 @@ title="pinterest icon">
- + diff --git a/public/post/send-mail-to-notify-after-pxe-install/index.html b/public/post/send-mail-to-notify-after-pxe-install/index.html index 358fbac2..5419db5c 100644 --- a/public/post/send-mail-to-notify-after-pxe-install/index.html +++ b/public/post/send-mail-to-notify-after-pxe-install/index.html @@ -45,9 +45,9 @@ - + - + @@ -639,7 +639,7 @@ title="pinterest icon">
- + diff --git a/public/post/site-to-site-vpn-using-wireguard-in-two-edgerouters/index.html b/public/post/site-to-site-vpn-using-wireguard-in-two-edgerouters/index.html index 21920541..1eefb302 100644 --- a/public/post/site-to-site-vpn-using-wireguard-in-two-edgerouters/index.html +++ b/public/post/site-to-site-vpn-using-wireguard-in-two-edgerouters/index.html @@ -45,9 +45,9 @@ - + - + @@ -737,7 +737,7 @@ title="pinterest icon">
- + diff --git a/public/post/smartd-failed-to-start-in-freenas/index.html b/public/post/smartd-failed-to-start-in-freenas/index.html index ba62b722..c8dc5b27 100644 --- a/public/post/smartd-failed-to-start-in-freenas/index.html +++ b/public/post/smartd-failed-to-start-in-freenas/index.html @@ -45,9 +45,9 @@ - + - + @@ -602,7 +602,7 @@ title="pinterest icon">
- + diff --git a/public/post/synology-ds415-repair-cost/index.html b/public/post/synology-ds415-repair-cost/index.html index 67acd185..9c63c1b6 100644 --- a/public/post/synology-ds415-repair-cost/index.html +++ b/public/post/synology-ds415-repair-cost/index.html @@ -45,9 +45,9 @@ - + - + @@ -635,7 +635,7 @@ title="pinterest icon">
- + diff --git a/public/post/test-pg_prewarm/index.html b/public/post/test-pg_prewarm/index.html index c831bfde..81485248 100644 --- a/public/post/test-pg_prewarm/index.html +++ b/public/post/test-pg_prewarm/index.html @@ -45,9 +45,9 @@ - + - + @@ -896,7 +896,7 @@ title="pinterest icon">
- + diff --git a/public/post/transfer-cent62-using-rsync/index.html b/public/post/transfer-cent62-using-rsync/index.html index 30a210eb..005bb07b 100644 --- a/public/post/transfer-cent62-using-rsync/index.html +++ b/public/post/transfer-cent62-using-rsync/index.html @@ -45,9 +45,9 @@ - + - + @@ -808,7 +808,7 @@ title="pinterest icon">
- + diff --git a/public/post/transfer-file-content-using-xclip-in-terminal/index.html b/public/post/transfer-file-content-using-xclip-in-terminal/index.html index edaf53e7..3fc1eb77 100644 --- a/public/post/transfer-file-content-using-xclip-in-terminal/index.html +++ b/public/post/transfer-file-content-using-xclip-in-terminal/index.html @@ -45,9 +45,9 @@ - + - + @@ -646,7 +646,7 @@ title="pinterest icon">
- + diff --git a/public/post/ubuntu-1404-preseed/index.html b/public/post/ubuntu-1404-preseed/index.html index 22cec1fd..a72bc6a2 100644 --- a/public/post/ubuntu-1404-preseed/index.html +++ b/public/post/ubuntu-1404-preseed/index.html @@ -45,9 +45,9 @@ - + - + @@ -738,7 +738,7 @@ title="pinterest icon">
- + diff --git a/public/post/ubuntu-1804-install-root-on-raid/index.html b/public/post/ubuntu-1804-install-root-on-raid/index.html index ac39561e..866f052e 100644 --- a/public/post/ubuntu-1804-install-root-on-raid/index.html +++ b/public/post/ubuntu-1804-install-root-on-raid/index.html @@ -45,9 +45,9 @@ - + - + @@ -660,7 +660,7 @@ title="pinterest icon">
- + diff --git a/public/post/ubuntu-1804-preseeds/index.html b/public/post/ubuntu-1804-preseeds/index.html index 9c2f6c77..666dc164 100644 --- a/public/post/ubuntu-1804-preseeds/index.html +++ b/public/post/ubuntu-1804-preseeds/index.html @@ -45,9 +45,9 @@ - + - + @@ -804,7 +804,7 @@ title="pinterest icon">
- + diff --git a/public/post/ubuntu-dconf-proxy-settings/index.html b/public/post/ubuntu-dconf-proxy-settings/index.html index d53d960f..7b77a9fc 100644 --- a/public/post/ubuntu-dconf-proxy-settings/index.html +++ b/public/post/ubuntu-dconf-proxy-settings/index.html @@ -45,9 +45,9 @@ - + - + @@ -621,7 +621,7 @@ title="pinterest icon">
- + diff --git a/public/post/ubuntu-kernel-4-15-0-106-unable-to-start-wireguard-interface/index.html b/public/post/ubuntu-kernel-4-15-0-106-unable-to-start-wireguard-interface/index.html index 38372bde..74eba8e7 100644 --- a/public/post/ubuntu-kernel-4-15-0-106-unable-to-start-wireguard-interface/index.html +++ b/public/post/ubuntu-kernel-4-15-0-106-unable-to-start-wireguard-interface/index.html @@ -45,9 +45,9 @@ - + - + @@ -732,7 +732,7 @@ title="pinterest icon">
- + diff --git a/public/post/ubuntu-letsencrypt-cloudflare-wildcard/index.html b/public/post/ubuntu-letsencrypt-cloudflare-wildcard/index.html index 7a362894..db10be0a 100644 --- a/public/post/ubuntu-letsencrypt-cloudflare-wildcard/index.html +++ b/public/post/ubuntu-letsencrypt-cloudflare-wildcard/index.html @@ -45,9 +45,9 @@ - + - + @@ -691,7 +691,7 @@ title="pinterest icon">
- + diff --git a/public/post/various-self-hosted-file-sharing-system-test/index.html b/public/post/various-self-hosted-file-sharing-system-test/index.html index 2312496f..e0be6cab 100644 --- a/public/post/various-self-hosted-file-sharing-system-test/index.html +++ b/public/post/various-self-hosted-file-sharing-system-test/index.html @@ -45,9 +45,9 @@ - + - + @@ -676,7 +676,7 @@ title="pinterest icon">
- + diff --git a/public/post/weird-client-server-connection/index.html b/public/post/weird-client-server-connection/index.html index 394abf6b..cb03be29 100644 --- a/public/post/weird-client-server-connection/index.html +++ b/public/post/weird-client-server-connection/index.html @@ -45,9 +45,9 @@ - + - + @@ -650,7 +650,7 @@ title="pinterest icon">
- + diff --git a/public/post/what-a-piss-in-synology-document/index.html b/public/post/what-a-piss-in-synology-document/index.html index 9403649a..52b6529b 100644 --- a/public/post/what-a-piss-in-synology-document/index.html +++ b/public/post/what-a-piss-in-synology-document/index.html @@ -45,9 +45,9 @@ - + - + @@ -647,7 +647,7 @@ title="pinterest icon">
- + diff --git a/public/post/wireguard-pihole-in-ubuntu-20.04/index.html b/public/post/wireguard-pihole-in-ubuntu-20.04/index.html index e85add41..e663e4ee 100644 --- a/public/post/wireguard-pihole-in-ubuntu-20.04/index.html +++ b/public/post/wireguard-pihole-in-ubuntu-20.04/index.html @@ -45,9 +45,9 @@ - + - + @@ -793,7 +793,7 @@ title="pinterest icon">
- + diff --git a/public/sitemap.xml b/public/sitemap.xml index 2c8ff3c1..43319081 100644 --- a/public/sitemap.xml +++ b/public/sitemap.xml @@ -3,47 +3,57 @@ xmlns:xhtml="http://www.w3.org/1999/xhtml"> - https://h.cowbay.org/tags/acme/ - 2021-08-26T12:08:43+08:00 + https://h.cowbay.org/categories/ + 2021-09-29T14:38:10+08:00 - https://h.cowbay.org/tags/acme-dns/ - 2021-08-26T12:08:43+08:00 + https://h.cowbay.org/post/init-script-in-openwrt-to-start-leproxy/ + 2021-09-29T14:38:10+08:00 - https://h.cowbay.org/post/auto-fetch-wildcard-ssl-certs-acme-dns-lego/ - 2021-08-26T12:08:43+08:00 + https://h.cowbay.org/tags/openwrt/ + 2021-09-29T14:38:10+08:00 - https://h.cowbay.org/categories/ - 2021-08-26T12:08:43+08:00 + https://h.cowbay.org/post/ + 2021-09-29T14:38:10+08:00 - https://h.cowbay.org/tags/lego/ + https://h.cowbay.org/tags/ + 2021-09-29T14:38:10+08:00 + + + + https://h.cowbay.org/categories/%E7%AD%86%E8%A8%98/ + 2021-09-29T14:38:10+08:00 + + + + https://h.cowbay.org/tags/acme/ 2021-08-26T12:08:43+08:00 - https://h.cowbay.org/post/ + https://h.cowbay.org/tags/acme-dns/ 2021-08-26T12:08:43+08:00 - https://h.cowbay.org/tags/ssl/ + https://h.cowbay.org/post/auto-fetch-wildcard-ssl-certs-acme-dns-lego/ 2021-08-26T12:08:43+08:00 - https://h.cowbay.org/tags/ + https://h.cowbay.org/tags/lego/ 2021-08-26T12:08:43+08:00 - https://h.cowbay.org/categories/%E7%AD%86%E8%A8%98/ + https://h.cowbay.org/tags/ssl/ 2021-08-26T12:08:43+08:00 @@ -142,11 +152,6 @@ 2020-07-15T10:35:01+08:00 - - https://h.cowbay.org/tags/openwrt/ - 2020-07-15T10:35:01+08:00 - - https://h.cowbay.org/post/debian-buster-server-been-hacked/ 2020-07-10T09:48:24+08:00 diff --git a/public/tags/10g/index.html b/public/tags/10g/index.html index 8eccc25d..5b8cddab 100644 --- a/public/tags/10g/index.html +++ b/public/tags/10g/index.html @@ -45,9 +45,9 @@ - + - + @@ -472,6 +472,6 @@ if (!doNotTrack) {
- + diff --git a/public/tags/acme-dns/index.html b/public/tags/acme-dns/index.html index 61e1387b..6e75a812 100644 --- a/public/tags/acme-dns/index.html +++ b/public/tags/acme-dns/index.html @@ -45,9 +45,9 @@ - + - + @@ -466,6 +466,6 @@ if (!doNotTrack) {
- + diff --git a/public/tags/acme/index.html b/public/tags/acme/index.html index 337c7b41..daff1ef7 100644 --- a/public/tags/acme/index.html +++ b/public/tags/acme/index.html @@ -45,9 +45,9 @@ - + - + @@ -466,6 +466,6 @@ if (!doNotTrack) {
- + diff --git a/public/tags/ansible/index.html b/public/tags/ansible/index.html index 5f4302e6..5f524f3b 100644 --- a/public/tags/ansible/index.html +++ b/public/tags/ansible/index.html @@ -45,9 +45,9 @@ - + - + @@ -847,6 +847,6 @@ if (!doNotTrack) {
- + diff --git a/public/tags/backup/index.html b/public/tags/backup/index.html index 35deafdb..84ba202d 100644 --- a/public/tags/backup/index.html +++ b/public/tags/backup/index.html @@ -45,9 +45,9 @@ - + - + @@ -515,6 +515,6 @@ if (!doNotTrack) {
- + diff --git a/public/tags/benchmark/index.html b/public/tags/benchmark/index.html index 9170303b..cd064ba8 100644 --- a/public/tags/benchmark/index.html +++ b/public/tags/benchmark/index.html @@ -45,9 +45,9 @@ - + - + @@ -466,6 +466,6 @@ if (!doNotTrack) {
- + diff --git a/public/tags/bookstack/index.html b/public/tags/bookstack/index.html index 27079a87..b0324915 100644 --- a/public/tags/bookstack/index.html +++ b/public/tags/bookstack/index.html @@ -45,9 +45,9 @@ - + - + @@ -472,6 +472,6 @@ if (!doNotTrack) {
- + diff --git a/public/tags/bsd/index.html b/public/tags/bsd/index.html index ca94b046..1d9122e9 100644 --- a/public/tags/bsd/index.html +++ b/public/tags/bsd/index.html @@ -45,9 +45,9 @@ - + - + @@ -468,6 +468,6 @@ if (!doNotTrack) {
- + diff --git a/public/tags/centos/index.html b/public/tags/centos/index.html index fd0aca07..428e67c7 100644 --- a/public/tags/centos/index.html +++ b/public/tags/centos/index.html @@ -45,9 +45,9 @@ - + - + @@ -465,6 +465,6 @@ if (!doNotTrack) {
- + diff --git a/public/tags/certbot/index.html b/public/tags/certbot/index.html index 42d4e939..3f7bc59a 100644 --- a/public/tags/certbot/index.html +++ b/public/tags/certbot/index.html @@ -45,9 +45,9 @@ - + - + @@ -469,6 +469,6 @@ if (!doNotTrack) {
- + diff --git a/public/tags/cloudcmd/index.html b/public/tags/cloudcmd/index.html index aa42f74b..82a6887b 100644 --- a/public/tags/cloudcmd/index.html +++ b/public/tags/cloudcmd/index.html @@ -45,9 +45,9 @@ - + - + @@ -466,6 +466,6 @@ if (!doNotTrack) {
- + diff --git a/public/tags/cloudflare/index.html b/public/tags/cloudflare/index.html index 1a90f808..7c605ab3 100644 --- a/public/tags/cloudflare/index.html +++ b/public/tags/cloudflare/index.html @@ -45,9 +45,9 @@ - + - + @@ -469,6 +469,6 @@ if (!doNotTrack) {
- + diff --git a/public/tags/cuda/index.html b/public/tags/cuda/index.html index 8214d381..61c97325 100644 --- a/public/tags/cuda/index.html +++ b/public/tags/cuda/index.html @@ -45,9 +45,9 @@ - + - + @@ -465,6 +465,6 @@ if (!doNotTrack) {
- + diff --git a/public/tags/dconf/index.html b/public/tags/dconf/index.html index b6c6a3ff..d3bb6d6a 100644 --- a/public/tags/dconf/index.html +++ b/public/tags/dconf/index.html @@ -45,9 +45,9 @@ - + - + @@ -520,6 +520,6 @@ if (!doNotTrack) {
- + diff --git a/public/tags/debian/index.html b/public/tags/debian/index.html index d8ae2ad0..5d08e1ee 100644 --- a/public/tags/debian/index.html +++ b/public/tags/debian/index.html @@ -45,9 +45,9 @@ - + - + @@ -471,6 +471,6 @@ if (!doNotTrack) {
- + diff --git a/public/tags/docker/index.html b/public/tags/docker/index.html index 12c84633..255f3786 100644 --- a/public/tags/docker/index.html +++ b/public/tags/docker/index.html @@ -45,9 +45,9 @@ - + - + @@ -519,6 +519,6 @@ if (!doNotTrack) {
- + diff --git a/public/tags/du/index.html b/public/tags/du/index.html index cdfc1bed..ec603e4a 100644 --- a/public/tags/du/index.html +++ b/public/tags/du/index.html @@ -45,9 +45,9 @@ - + - + @@ -469,6 +469,6 @@ if (!doNotTrack) {
- + diff --git a/public/tags/edgerouter/index.html b/public/tags/edgerouter/index.html index fa171eb6..7f3b7614 100644 --- a/public/tags/edgerouter/index.html +++ b/public/tags/edgerouter/index.html @@ -45,9 +45,9 @@ - + - + @@ -473,6 +473,6 @@ if (!doNotTrack) {
- + diff --git a/public/tags/failover/index.html b/public/tags/failover/index.html index 3e67a56e..533f07b7 100644 --- a/public/tags/failover/index.html +++ b/public/tags/failover/index.html @@ -45,9 +45,9 @@ - + - + @@ -469,6 +469,6 @@ if (!doNotTrack) {
- + diff --git a/public/tags/file-manager/index.html b/public/tags/file-manager/index.html index 36adf51f..38484141 100644 --- a/public/tags/file-manager/index.html +++ b/public/tags/file-manager/index.html @@ -45,9 +45,9 @@ - + - + @@ -466,6 +466,6 @@ if (!doNotTrack) {
- + diff --git a/public/tags/firefox/index.html b/public/tags/firefox/index.html index 4b27a300..754c7e97 100644 --- a/public/tags/firefox/index.html +++ b/public/tags/firefox/index.html @@ -45,9 +45,9 @@ - + - + @@ -467,6 +467,6 @@ if (!doNotTrack) {
- + diff --git a/public/tags/forwardx11/index.html b/public/tags/forwardx11/index.html index de516476..3e1e9e46 100644 --- a/public/tags/forwardx11/index.html +++ b/public/tags/forwardx11/index.html @@ -45,9 +45,9 @@ - + - + @@ -468,6 +468,6 @@ if (!doNotTrack) {
- + diff --git a/public/tags/freenas/index.html b/public/tags/freenas/index.html index 1bd852ab..5d3db396 100644 --- a/public/tags/freenas/index.html +++ b/public/tags/freenas/index.html @@ -45,9 +45,9 @@ - + - + @@ -467,6 +467,6 @@ if (!doNotTrack) {
- + diff --git a/public/tags/gpu/index.html b/public/tags/gpu/index.html index cda288cd..472073e9 100644 --- a/public/tags/gpu/index.html +++ b/public/tags/gpu/index.html @@ -45,9 +45,9 @@ - + - + @@ -465,6 +465,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/high-availability/index.html b/public/tags/high-availability/index.html index e1d8d23f..8c578e83 100644 --- a/public/tags/high-availability/index.html +++ b/public/tags/high-availability/index.html @@ -45,9 +45,9 @@ - + - + @@ -467,6 +467,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/index.xml b/public/tags/index.xml index 311cf95f..ad2ae112 100644 --- a/public/tags/index.xml +++ b/public/tags/index.xml @@ -6,11 +6,20 @@ Recent content in Tags on MC部落 Hugo -- gohugo.io en-us - Thu, 26 Aug 2021 12:08:43 +0800 + Wed, 29 Sep 2021 14:38:10 +0800 + + openwrt + https://h.cowbay.org/tags/openwrt/ + Wed, 29 Sep 2021 14:38:10 +0800 + + https://h.cowbay.org/tags/openwrt/ + + + acme https://h.cowbay.org/tags/acme/ @@ -164,15 +173,6 @@ - - openwrt - https://h.cowbay.org/tags/openwrt/ - Wed, 15 Jul 2020 10:35:01 +0800 - - https://h.cowbay.org/tags/openwrt/ - - - debian https://h.cowbay.org/tags/debian/ diff --git a/public/tags/inventory/index.html b/public/tags/inventory/index.html index b092735f..a87d1730 100644 --- a/public/tags/inventory/index.html +++ b/public/tags/inventory/index.html @@ -45,9 +45,9 @@ - + - + @@ -468,6 +468,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/launcher/index.html b/public/tags/launcher/index.html index fe114188..9772d38f 100644 --- a/public/tags/launcher/index.html +++ b/public/tags/launcher/index.html @@ -45,9 +45,9 @@ - + - + @@ -465,6 +465,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/lego/index.html b/public/tags/lego/index.html index 09f68bf4..8ac9f8ab 100644 --- a/public/tags/lego/index.html +++ b/public/tags/lego/index.html @@ -45,9 +45,9 @@ - + - + @@ -466,6 +466,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/letsencrypt/index.html b/public/tags/letsencrypt/index.html index babafe5b..8081e44a 100644 --- a/public/tags/letsencrypt/index.html +++ b/public/tags/letsencrypt/index.html @@ -45,9 +45,9 @@ - + - + @@ -469,6 +469,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/linux/index.html b/public/tags/linux/index.html index f4ba2026..ee548da2 100644 --- a/public/tags/linux/index.html +++ b/public/tags/linux/index.html @@ -45,9 +45,9 @@ - + - + @@ -804,6 +804,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/log/index.html b/public/tags/log/index.html index 7d5611b8..560fc431 100644 --- a/public/tags/log/index.html +++ b/public/tags/log/index.html @@ -45,9 +45,9 @@ - + - + @@ -467,6 +467,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/mdadm/index.html b/public/tags/mdadm/index.html index 93e38071..bad13bb9 100644 --- a/public/tags/mdadm/index.html +++ b/public/tags/mdadm/index.html @@ -45,9 +45,9 @@ - + - + @@ -468,6 +468,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/mellanox/index.html b/public/tags/mellanox/index.html index 13afc7bd..2e4581a4 100644 --- a/public/tags/mellanox/index.html +++ b/public/tags/mellanox/index.html @@ -45,9 +45,9 @@ - + - + @@ -472,6 +472,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/meshcentral/index.html b/public/tags/meshcentral/index.html index 00599332..3564a08c 100644 --- a/public/tags/meshcentral/index.html +++ b/public/tags/meshcentral/index.html @@ -45,9 +45,9 @@ - + - + @@ -468,6 +468,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/metabase/index.html b/public/tags/metabase/index.html index 2035a5dd..89570535 100644 --- a/public/tags/metabase/index.html +++ b/public/tags/metabase/index.html @@ -45,9 +45,9 @@ - + - + @@ -467,6 +467,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/nas/index.html b/public/tags/nas/index.html index 09d8109d..835b1f05 100644 --- a/public/tags/nas/index.html +++ b/public/tags/nas/index.html @@ -45,9 +45,9 @@ - + - + @@ -573,6 +573,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/networkmanager/index.html b/public/tags/networkmanager/index.html index e7d85d6c..ef9efc2d 100644 --- a/public/tags/networkmanager/index.html +++ b/public/tags/networkmanager/index.html @@ -45,9 +45,9 @@ - + - + @@ -469,6 +469,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/nvidia/index.html b/public/tags/nvidia/index.html index a96ff12c..c86b1c31 100644 --- a/public/tags/nvidia/index.html +++ b/public/tags/nvidia/index.html @@ -45,9 +45,9 @@ - + - + @@ -514,6 +514,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/nvme/index.html b/public/tags/nvme/index.html index c1f0f86f..8a0be5db 100644 --- a/public/tags/nvme/index.html +++ b/public/tags/nvme/index.html @@ -45,9 +45,9 @@ - + - + @@ -466,6 +466,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/openwrt/index.html b/public/tags/openwrt/index.html index 63aa9bf4..66f42e4b 100644 --- a/public/tags/openwrt/index.html +++ b/public/tags/openwrt/index.html @@ -20,9 +20,9 @@ "publisher": "", "accountablePerson" : "", "copyrightHolder" : "", - "copyrightYear" : "2020", - "datePublished": "2020-07-15 10:35:01 \x2b0800 CST", - "dateModified" : "2020-07-15 10:35:01 \x2b0800 CST", + "copyrightYear" : "2021", + "datePublished": "2021-09-29 14:38:10 \x2b0800 CST", + "dateModified" : "2021-09-29 14:38:10 \x2b0800 CST", "url" : "https:\/\/h.cowbay.org\/tags\/openwrt\/", "wordCount" : "0", "image" : "https://h.cowbay.org%!s(\u003cnil\u003e)"", @@ -45,9 +45,9 @@ - + - + @@ -290,6 +290,61 @@ if (!doNotTrack) { + + + + +
+
+ 29 September 2021 / + + + + + + + + + + + + / + + 筆記 + + +
+ +
+
+

最近在逐步的把舊有的VPN Router 汰換掉,改用wireguard 來作 full mesh site-to-site VPN

+

不過這是另外的故事了…

+

在把wireguard VPN 都搞定之後,才發現原來 openwrt 的 uhttpd 要加上 letsencrypt 的免費憑證有點難搞

+

網路上大部分都介紹用 acme.sh ,我是有測試出來啦

+

但是跟網路上的方法不太一樣了,新增了滿多步驟的,覺得很麻煩

+

想到向來愛用的 leproxy ,既然是 golang 開發的,又是open source

+

就拿來compile 給openwrt router 用用看

+

想不到還真的可以, golang 真是棒!

+

不過也還是要順手改一些openwrt 東西才行

+

還是簡單作個筆記好了

+ + +
+
+
+ + + + +
+ + + + @@ -474,6 +529,6 @@ if (!doNotTrack) {
- + diff --git a/public/tags/openwrt/index.xml b/public/tags/openwrt/index.xml index 22a1daf7..28039374 100644 --- a/public/tags/openwrt/index.xml +++ b/public/tags/openwrt/index.xml @@ -6,11 +6,29 @@ Recent content in openwrt on MC部落 Hugo -- gohugo.io en-us - Wed, 15 Jul 2020 10:35:01 +0800 + Wed, 29 Sep 2021 14:38:10 +0800 + + Init Script in Openwrt to Start Leproxy/在openwrt 新增自動啟動leproxy的script + https://h.cowbay.org/post/init-script-in-openwrt-to-start-leproxy/ + Wed, 29 Sep 2021 14:38:10 +0800 + + https://h.cowbay.org/post/init-script-in-openwrt-to-start-leproxy/ + <p>最近在逐步的把舊有的VPN Router 汰換掉,改用wireguard 來作 full mesh site-to-site VPN</p> +<p>不過這是另外的故事了&hellip;</p> +<p>在把wireguard VPN 都搞定之後,才發現原來 openwrt 的 uhttpd 要加上 letsencrypt 的免費憑證有點難搞</p> +<p>網路上大部分都介紹用 acme.sh ,我是有測試出來啦</p> +<p>但是跟網路上的方法不太一樣了,新增了滿多步驟的,覺得很麻煩</p> +<p>想到向來愛用的 leproxy ,既然是 golang 開發的,又是open source</p> +<p>就拿來compile 給openwrt router 用用看</p> +<p>想不到還真的可以, golang 真是棒!</p> +<p>不過也還是要順手改一些openwrt 東西才行</p> +<p>還是簡單作個筆記好了</p> + + [筆記] 在openwrt 中檢查網路埠的連接速度/ Check Port Speed in Openwrt https://h.cowbay.org/post/check-port-speed-in-openwrt/ diff --git a/public/tags/pg_strom/index.html b/public/tags/pg_strom/index.html index 5a7e89eb..4b5f3691 100644 --- a/public/tags/pg_strom/index.html +++ b/public/tags/pg_strom/index.html @@ -45,9 +45,9 @@ - + - + @@ -465,6 +465,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/pgbarman/index.html b/public/tags/pgbarman/index.html index d1acd4a6..e9b0ed3d 100644 --- a/public/tags/pgbarman/index.html +++ b/public/tags/pgbarman/index.html @@ -45,9 +45,9 @@ - + - + @@ -513,6 +513,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/pgbench/index.html b/public/tags/pgbench/index.html index 4c186d4f..643dd36f 100644 --- a/public/tags/pgbench/index.html +++ b/public/tags/pgbench/index.html @@ -45,9 +45,9 @@ - + - + @@ -467,6 +467,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/pihole/index.html b/public/tags/pihole/index.html index b2958262..235aa0db 100644 --- a/public/tags/pihole/index.html +++ b/public/tags/pihole/index.html @@ -45,9 +45,9 @@ - + - + @@ -469,6 +469,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/postgresql/index.html b/public/tags/postgresql/index.html index 429dc6cc..446030c4 100644 --- a/public/tags/postgresql/index.html +++ b/public/tags/postgresql/index.html @@ -45,9 +45,9 @@ - + - + @@ -853,6 +853,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/preseeds/index.html b/public/tags/preseeds/index.html index ded93ef6..961310e5 100644 --- a/public/tags/preseeds/index.html +++ b/public/tags/preseeds/index.html @@ -45,9 +45,9 @@ - + - + @@ -466,6 +466,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/proxmox/index.html b/public/tags/proxmox/index.html index 4f4438c3..11c73e9a 100644 --- a/public/tags/proxmox/index.html +++ b/public/tags/proxmox/index.html @@ -45,9 +45,9 @@ - + - + @@ -518,6 +518,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/ps/index.html b/public/tags/ps/index.html index 08e35748..560ff2ac 100644 --- a/public/tags/ps/index.html +++ b/public/tags/ps/index.html @@ -45,9 +45,9 @@ - + - + @@ -418,6 +418,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/psql/index.html b/public/tags/psql/index.html index 9a70c86b..dfe8080a 100644 --- a/public/tags/psql/index.html +++ b/public/tags/psql/index.html @@ -45,9 +45,9 @@ - + - + @@ -467,6 +467,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/pxe/index.html b/public/tags/pxe/index.html index a51b525c..1618ed61 100644 --- a/public/tags/pxe/index.html +++ b/public/tags/pxe/index.html @@ -45,9 +45,9 @@ - + - + @@ -568,6 +568,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/raid/index.html b/public/tags/raid/index.html index 7aef976f..f921a8bb 100644 --- a/public/tags/raid/index.html +++ b/public/tags/raid/index.html @@ -45,9 +45,9 @@ - + - + @@ -466,6 +466,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/remote/index.html b/public/tags/remote/index.html index 8347f6a1..dcc042d2 100644 --- a/public/tags/remote/index.html +++ b/public/tags/remote/index.html @@ -45,9 +45,9 @@ - + - + @@ -468,6 +468,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/resolv.conf/index.html b/public/tags/resolv.conf/index.html index 83735e5b..d18c756d 100644 --- a/public/tags/resolv.conf/index.html +++ b/public/tags/resolv.conf/index.html @@ -45,9 +45,9 @@ - + - + @@ -469,6 +469,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/restore/index.html b/public/tags/restore/index.html index 84d00d6e..2b24b9c2 100644 --- a/public/tags/restore/index.html +++ b/public/tags/restore/index.html @@ -45,9 +45,9 @@ - + - + @@ -466,6 +466,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/ssh/index.html b/public/tags/ssh/index.html index 3bc510c3..ddf022d1 100644 --- a/public/tags/ssh/index.html +++ b/public/tags/ssh/index.html @@ -45,9 +45,9 @@ - + - + @@ -522,6 +522,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/ssl/index.html b/public/tags/ssl/index.html index ead86268..38423869 100644 --- a/public/tags/ssl/index.html +++ b/public/tags/ssl/index.html @@ -45,9 +45,9 @@ - + - + @@ -466,6 +466,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/synology/index.html b/public/tags/synology/index.html index e0c638ae..5aa01df1 100644 --- a/public/tags/synology/index.html +++ b/public/tags/synology/index.html @@ -45,9 +45,9 @@ - + - + @@ -722,6 +722,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/timezone/index.html b/public/tags/timezone/index.html index 72bef89c..6722cbd4 100644 --- a/public/tags/timezone/index.html +++ b/public/tags/timezone/index.html @@ -45,9 +45,9 @@ - + - + @@ -465,6 +465,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/ubuntu/index.html b/public/tags/ubuntu/index.html index 810e41a3..73a139cd 100644 --- a/public/tags/ubuntu/index.html +++ b/public/tags/ubuntu/index.html @@ -45,9 +45,9 @@ - + - + @@ -917,6 +917,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/vim/index.html b/public/tags/vim/index.html index 40f98df9..31418800 100644 --- a/public/tags/vim/index.html +++ b/public/tags/vim/index.html @@ -45,9 +45,9 @@ - + - + @@ -467,6 +467,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/vpn/index.html b/public/tags/vpn/index.html index 88401605..c00e8142 100644 --- a/public/tags/vpn/index.html +++ b/public/tags/vpn/index.html @@ -45,9 +45,9 @@ - + - + @@ -625,6 +625,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/wireguard/index.html b/public/tags/wireguard/index.html index e712a940..07c405e9 100644 --- a/public/tags/wireguard/index.html +++ b/public/tags/wireguard/index.html @@ -45,9 +45,9 @@ - + - + @@ -671,6 +671,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/zfs/index.html b/public/tags/zfs/index.html index d3c2cd22..5fa91577 100644 --- a/public/tags/zfs/index.html +++ b/public/tags/zfs/index.html @@ -45,9 +45,9 @@ - + - + @@ -514,6 +514,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/短今/index.html b/public/tags/短今/index.html index 84d7a269..8e56db71 100644 --- a/public/tags/短今/index.html +++ b/public/tags/短今/index.html @@ -45,9 +45,9 @@ - + - + @@ -418,6 +418,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/筆記/index.html b/public/tags/筆記/index.html index 9747b7b2..5efeeeed 100644 --- a/public/tags/筆記/index.html +++ b/public/tags/筆記/index.html @@ -45,9 +45,9 @@ - + - + @@ -727,6 +727,6 @@ if (!doNotTrack) { - + diff --git a/public/tags/群暉/index.html b/public/tags/群暉/index.html index 31247192..97073e5a 100644 --- a/public/tags/群暉/index.html +++ b/public/tags/群暉/index.html @@ -45,9 +45,9 @@ - + - + @@ -471,6 +471,6 @@ if (!doNotTrack) { - + diff --git a/themes/hugo-curious b/themes/hugo-curious deleted file mode 160000 index 0157eaa1..00000000 --- a/themes/hugo-curious +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0157eaa1cf0d7c047b6ea977d04311ba7a98c9f5