這幾天在設定家裡的防火牆政策,順便盤點家中的設備,看有沒有人偷連我家的 Wifi 然後心血來潮設定一下 Fortigate 的 SSL-VPN 偶爾可以連回家中的設備 比起將設備整個開放在網路上安全一點 規格 Firewall: FortiGate 60D v6.0.4 步驟一 開啟 VPN 功能 從 進階功能開關,開啟 VPN 功能
步驟二 建立用戶 從 用戶認證 新增使用者
選擇 本地用戶
創建用戶名稱及密碼
依照需求進行聯絡資訊設定,或者無需進行設定
設定 啟用 帳戶
步驟三 建立群組 從 用戶群組 進行新增群組
設定群組名稱,型式選擇 防火牆,選擇剛剛建立的用戶
步驟四 設定 SSL-VPN 入口頁面 從 SSL-VPN 入口頁面,編輯 tunnel-access
關閉切分支通道
步驟五 設定 SSL-VPN 進入 SSL-VPN設定
紅圈: 介面監聽 - WAN
橘圈: VPN Port - 建議不要使用預設設定
藍圈: 限制存取 - 允許從任何主機訪問
黃圈: 地址範圍 - 自動分配地址
自己私架的 Gitlab 獨自使用的時候沒什麼差 當要給其他人共同使用的時候,發現這個問題其實挺毛躁的 所以就想說還是把介面克隆網址無法對應連線網址這個問題解決 簡單架構 經由 Caddy 反向代理至內部 Gitlab
網域為 www.example.com,內部 Gitlab IP/Port 為 192.168.0.1:8080
問題狀況 網址和 Gitlab 介面上的是不一致的,但是實際 Repository 是需要透過 https://www.example.com 連線
Gitlab URL: https://www.example.com Gitlab Repository: http://www.example.com:8080
修正方法 Gitlab 使用 Https 步驟1. 產生憑證及密鑰 1 2 3 4 5 6 7 $ openssl genrsa -out gitlab.key 2048 $ openssl req -new -key gitlab.key -out gitlab.csr $ openssl x509 -req -days 3650 -in gitlab.csr -signkey gitlab.key -out gitlab.crt $ openssl dhparam -out dhparam.
繼上次嘗試 Zserge 的 Lorca 後,作者還有另一個專案 WebView 而且作者在 Lorca 有說,想要更好的控制視窗,推薦使用 WebView 或其他 API 就來使用 WebView 的操作和呈現是否會更好 安裝 WebView 未開啟 GO111MODULE = off
1 $ go get -u https://github.com/zserge/webview 有開啟 GO111MODULE = on
在專案目錄中初始化 Go模組管理環境
1 2 3 $ go mod init $ go get -u https://github.com/zserge/webview 入門 作者透過直接嵌入 Wiki 的頁面,而且非常迅速且簡單
就顯示網頁的呈現來說,感覺沒什麼問題,而且沒有 Google Chromium/Chrome Swipe 的問題
1 2 3 4 5 6 7 8 9 package main import "github.com/zserge/webview" func main() { // Open wikipedia in a 800x600 resizable window webview.
Golang 本身是沒有自帶官方 GUI 給使用者開發,有 Qt、TK、Electron 各種不同實現的GUI實現方式桌面應用程式 當然較為可靠的是 Flutter for Desktop 來進行建構,畢竟背後是富爸爸 Google 進行維護 但是這次先不提 Flutter,想透過 WebView 來進行桌面應用程式開發 最初想要 HTML 嵌入顯示畫面,通常想到的都是使用 Electron 來實現
後來在 Github 上面找到 Lorca 使用 HTML5 + Golang 就能實現,不必須要 Electron
Lorca 依賴於 Chrome/Chromium 實現 UI 層,並且不需要CGO
跟 Electron 相比肯定比原本來的更輕巧,所以一直想嘗試嘗試
限制 Chrome/Chromium >= 70 安裝 Lorca 未開啟 GO111MODULE = off
1 $ go get -u https://github.com/zserge/lorca 有開啟 GO111MODULE = on
在專案目錄中初始化 Go模組管理環境
1 2 3 $ go mod init $ go get -u https://github.
最近開始上班,使用 Markdown 撰寫一些學習時整理的資料 原本是使用 MacDown 撰寫,但是文件多了,整理起來十分不方便 原本想說用 Evernote 來保存整理,但是本身不支援 MarkDown 需要安裝插件 後來找 Boostnote 外觀看起來挺簡約,就來嘗試嘗試 基本上 Boostnote 如同多數的文件編輯軟體一樣,分為三大區塊的常見介面
第一天使用,我個人就挺上手的了,雖然 MacDown 的顯示主題的風格我更喜歡一點
但是不礙於我對 Boostnote 的使用,光是多了筆記整理、標籤、分類、介面等等
就足夠吸引我從 MacDown 轉換至 Boostnote
安裝 透過 官網 下載安裝,手機版正在準備中
目前我是用起來挺上手的,而且介面很乾淨
Tag 除了最基本的文章資料夾分類外,還有 Tag 功能,可以對每篇文章
附加 Tag 再更一步方便進行搜尋,這個功能我很喜歡
透過左側功能列表欄的標籤按鈕進入標籤列表
左側就會顯示標籤列表,會顯示已經設定好的標籤及對應的數量
軟體設定 透過左側功能列表欄右上角的設定按鈕進入軟體設定頁面
對語言上面有困難的朋友,Boostnote 也支援繁體中文
除此之外有許許多多的主題類型可以設定
全螢幕 當然不會只有小小的區塊進行撰寫
可以透過快捷鍵 Command ⌘ + B 或右上角的全螢幕按鈕進入全螢幕狀態
程式碼片段 Snippets 除了支援 MackDown 以外,還支援程式碼片段 (Snippets)
方便工程師們儲存程式片段,這真的是非常方便的一個功能
藍圈設定程式碼片段說明
紅圈雙擊右鍵編輯,給予程式碼命名,偵測副檔名來給程式碼以高亮顯示
橘圈可以新增多個程式碼片段集中在一個筆記中
例如: 同一個功能不同程式碼版本
雲端同步 Boostnote 目前並沒有提供線上雲端空間進行同步
不過 官方 有第三方的雲端同步方法進行教學
最近辦了一張國泰的VISA金融卡,終於有了郵局以外的卡片了 想起 Apple Pay 可以使用,便把卡片加入 IPhone 錢包裡面 預設是密碼付款,不過如果不小心掉手機後 又不小心被看到付款的密碼,感覺就很不安全 依稀記得可以使用 Face ID 付款,想轉換成 Face ID 提高一點安全性 最初未啟用 Face ID 的 Apple Pay 是使用密碼付款
順便秀一下可愛的拉拉熊
尋找思路 最初我是在錢包中尋找 Face ID 的啟用
很直覺得往錢包中尋找設定
不過並沒有找到 Face ID 的相關設定
啟用 Face id 付款 換個思路尋覓,從設置中進入 Face ID
居然把 Face ID 付款功能設置在這裡,某種意義上放在這邊確實沒錯
只是其他 APP 都直接在 APP 的設定頁面中
結語 找了老半天終於找到設置位置,當功能太多確實會越來越雜亂
不過只放在這裡貌似也沒錯,單純思路沒考慮到
後來看了一下,官方原來有講在哪裡 😳
參考資料 https://support.apple.com/zh-tw/HT208109
很多命令工具會產生藝術感的空心線條大字 banner,所以我在想寫一些命令工具的時候 也可以增加一點藝術和專業的感覺,雖然我很貧弱但還是想營造一點氣氛 :D figlet Command 介紹 Figlet 是一個將英文文字轉會成空心線條大字的工具
作者是 Frank Sheeran、Ian Chai、Glenn Chappell,以三人的姓名字母所命名
FIGlet 很有趣,光是看大字體的產生,就會很滿足
安裝 Figlet 透過以下各種系統的套件管理工具進行 figlet 的安裝
1 2 3 4 5 6 7 8 # Mac $ brew install figlet # Ubuntu $ sudo apt-get install figlet # CentOS $ sudo yum install figlet 使用操作 最簡單的操作方式,就是在指令後輸入欲轉換的英文字
就會得照一串賞心悅目的大字,看到這種藝術文字總會覺得很高級的錯覺
1 2 3 4 5 6 7 8 9 $ figlet CodyChen figlet CodyChen ____ _ ____ _ / ___|___ __| |_ _ / ___| |__ ___ _ __ | | / _ \ / _` | | | | | | '_ \ / _ \ '_ \ | |__| (_) | (_| | |_| | |___| | | | __/ | | | \____\___/ \__,_|\__, |\____|_| |_|\___|_| |_| |___/ 如果想連續輸入,就直接執行指令
程式撰寫好的時候,總是會想測試一下執行時間 以望都是在程式中加入開始時間及結束時間來進行判斷 但是在閱覽文章的時,發現 time 這個方便的指令 time 指令可以計算程序需要運行多長的時間,用於測試指令的性能很方便
可以拿來比較版本、優化前後的差異,就能使用 time 指令來確認執行時間
1 $ time command Time 版本 bash 和 zsh 這兩個 Linux Shell 分別有自己的 time command 版本
可以使用 type 來確認 time 的版本
1 2 3 4 5 6 7 # bash $ type time > time is a shell keyword # zsh $ type time > time is a reserved word time 說明 bash 產生時間報告
real 指令執行到結束的時間,包含所有的程序佔用、阻塞時的時間 user 指令花費在使用者中的CPU時間,只有執行指令程序的時間 sys 指令花費在內核模式的CPU時間,內核執行指令程序的時間 zsh