使用 AppleScript 一次打開多個 SSH 連線

​ 之前會使用 Royle TSX 或者 ServerCat 來 SSH 連到伺服器上面管理 不過後來感覺這些軟體都有點重,但其實是我用不到這麼多功能就是了 😭 所以就改回 iTerm 這種獨立輕巧的 app 上面來用了,最近還看到有人推薦使用 GPU 加速的 WezTerm 又更讚啦! ​ 不過用回這些終端 app 就少了一些我經常會用到的功能,其中一個就是快速打開某群組的多台伺服器 像是我會依照不同的客戶機器來做群組分類,A 客戶的群組裡面有三台伺服器,B 客戶的群組裡面有五台伺服器之類的 以前點兩下就能快速打開多個 tab 分別用不同 session 連上,就可以馬上在不同 tab 切換下開始工作 現在用 WezTerm 就算配好 SSH Config,也要一台一台自己手動連,原本想這樣將就將就就算了,但我就懶… 所以還是爬爬網路其他人作法,發現可以寫個簡單的 AppleScript 的指令來快速完成此功能 😬 ​ 首先伺服器多的話都會寫個 SSH Config 來管理,先不分類把每一台伺服器都寫進去再說 關於 SSH Config 的更多說明可以參考: https://chusiang.gitbooks.io/working-on-gnu-linux/content/20.ssh_config.html 我們下面弄個簡單範本,先新建一個檔案 ~/.ssh/config # A1 Host A1 # 代號 Hostname 23.18.111.19 # IP or Domain name Port 22 # 指定埠口 User loltt # 使用者名稱 identityfile ~/.ssh/id_rsa_a # 指定金鑰 # A2 Host A2 # 代號 Hostname 19.18.11.35 # IP or Domain name Port 9553 # 指定埠口 User loltt # 使用者名稱 identityfile ~/.ssh/id_rsa_a # 指定金鑰 # A3 Host A3 # 代號 Hostname 39.38.51.51 # IP or Domain name Port 8569 # 指定埠口 User loltt # 使用者名稱 identityfile ~/.ssh/id_rsa_a # 指定金鑰 # B1 Host B1 # 代號 Hostname 1.8.11.25 # IP or Domain name Port 22 # 指定埠口 User cat33 # 使用者名稱 identityfile ~/.ssh/id_rsa_b # 指定金鑰 # B2 Host B2 # 代號 Hostname 10.83.21.95 # IP or Domain name Port 22 # 指定埠口 User cat33 # 使用者名稱 identityfile ~/.ssh/id_rsa_b # 指定金鑰 ​ ...

February 12, 2023 · 2 min · jkgtw

利用 Surge for iOS 根據網路環境自動切換 DNS 服務

​ 關於 Surge 自動切換 DNS 的文章,這篇已經是第三篇,沒意外應該也是最後一篇關於此功能的文章 😂 因為之前寫的 DNS 腳本,我發現還有人在繼續使用 現在開發者已經把這個功能內建到 Surge app 裡面,無需另外在靠腳本來實作,所以就另外寫一篇來更新一下 ​ Surge 在幾個月前的版本更新後,新增 Subnet Settings(子網設定覆蓋)的相關設定 所以很輕鬆就能做到之前需要依靠 DNS 腳本才能做到的事情 💪 ​ 我的需求跟之前一樣 在家以及在辦公室使用熟悉 WiFi 時候切換到內網 DHCP Server 指定的 DNS Server(自建的 AdGuard Home) 其餘情況(使用行動網路以及連上不認識的 WiFi 等等)都使用 NextDNS 的加密 DNS 服務 ​ 首先我們先把預設要用的 NextDNS 加密 DNS 設定好,打開 Surge 以後找到「DNS 設定」 先把預設的 DNS 改成 NextDNS 加密服務,如下圖 ​ ​ 接著如下圖,到更多設定裡面找到子網設定覆蓋的選項 ​ ​ 最後如下圖,把你家中 WiFi SSID 設定好,以及「覆蓋 DNS 設定」跟「覆蓋加密 DNS 設定」改成下圖那樣即可 ​ ​ 如上圖那樣設定後,只要 Surge 連到你設定的 WiFi SSID,就會覆蓋掉你原本的設定 當然你要指定成 system 以外的也可以,自己依照自己需求填寫 如果你有一個以上 SSID 需要修改,那就重複上面步驟來新增設定即可 ...

February 6, 2023 · 1 min · jkgtw

Surge 全自動每日博客來簽到

​ 博客來這個 Surge 自動化腳本寫好一段時間了,最開始因為經驗不足沒注意到幾個簽到關鍵的值 所以剛開始只有前一兩天可以正常簽到,不過現在已經修好,在群內也穩定測試好幾天了,於是就拿出來給大家玩玩 廢話不多說,下面直接切正題 😳 ​ 👆 如果經常在博客來買書的話,簽到贈送的閱讀里程可以換折價券跟優惠序號 ​ 在開始安裝模組以前,請先確認你博客來 app 已經正常登入能正常使用,然後先把博客來 app 往上滑(完整退出) 再來就可以開始安裝模組,請先到皮樂大大的 Surge 腳本收集網站: https://kinta.ma/surge/ 找到博客來自動簽到,按一下就能拷貝模組安裝的網址,接著請直接到 Surge app 裡面貼上安裝 安裝模組完畢後,重新打開博客來 app,馬上到「會員專區」->「E-Coupon」按下去 ​ 👆 如跳出保存 Cookie 成功即可 ​ 以後只要每天凌晨你 Surge 有在背景執行的情況下,就會在每日凌晨自動幫你到博客來簽到了,就是這麼簡單~ 🖖 ​ ​ 友情提示 任何自動化腳本都有可能會被官方偵測到,就看官方要不要抓而已 被抓到最嚴重可能會封號,所以要不要用請自行考慮

September 27, 2021 · 1 min · jkgtw

如何更新 Surge for iOS 裡安裝的各種模組與外部資源腳本?

​ 是的,沒想到我會寫這一篇。。。 最近似乎使用 Surge 的人變多了,許多人都還是新手搞不清楚如何更新模組跟腳本 因為被問到有點多,所以乾脆寫一篇圖文教學好了 🤦‍♂️ ​ 如何更新 Surge 裡安裝的模組? 打開 Surge 的首頁欄位,找到「模組」按下去,接著找到你想要更新的模組,往左滑就能出現「更新」的選項 按下「更新」就會開始更新該模組了 ​ 👆 如上圖,往左滑就會看見「更新」與「刪除」的選項 ​ 是的,就是這麼簡單 🤭 ​ 如何更新 Surge 模組裡安裝的外部資源腳本? 外部資源腳本就藏比較隱祕了,很多人以為更新模組就可以了 但其實有時候作者只更新腳本,所以還是也要跑個外部資源腳本的更新比較穩妥 ​ 同樣在 Surge 首頁欄位,左上角顯示的是你目前使用的設定檔名稱 在名稱的地方按下去就會出現「配置列表」的選項,就能看見「外部資源」,具體如下圖 ​ ​ 到「外部資源」後,最底下有個「全部更新」的按鈕,用力按下去即可! (另外「文字模式編輯」也在上圖的位子,有時候需要一次大量快速編輯設定,可以用此模式) ​ ​ 以上就是本篇教學全部內容,我們下篇文章見! 🖖

September 3, 2021 · 1 min · jkgtw

使用 Surge 全自動無人值守幫你蝦皮每日簽到爽領金幣

​ 2021/08/20 update 皮樂大大改寫一個全自動版本,不用每七天需要手動打開 app 去抓一次 cookie 功能是一樣的,除了簽到領蝦幣以外,也會自動開蝦幣寶箱 推薦可以使用皮樂大大的版本: https://hiraku.tw/2021/08/6606/ 👍 ​ Surge 是一個 iOS / macOS 平台非常強大的網路工具,之前已經有介紹過多次 Github 上面有眾多 Surge 自動化腳本可以使用與參考,但是主要都是中國網站居多,台灣常用網站很少 最近爬一爬看到有某人寫了越南蝦皮的簽到腳本,拿來參考一下,發現修改一下台灣蝦皮也能通用 於是就動動手搬運,並製作成模組方便安裝 ​ Surge 模組的安裝網址在下面: https://raw.githubusercontent.com/jkgtw/Surge/master/Modules/AutoShopeeCheckin.sgmodule 直接拷貝整段網址然後貼到 Surge 模組裡面安裝,記得打開 Surge 規則模式、腳本與 MitM 的功能 另外還要打開 Surge 的通知功能,在 Surge app 裡面右下角的「更多」->「通知」->「允許通知」 ​ 安裝完畢,也確定更新外部資源成功後,再來需要手動先去抓取保存你蝦皮帳號的 Cookie 2021/02/11 update 蝦皮 Cookie 有時效性,每隔七天左右就會失效 直接在蝦皮 App 裡面點一下「蝦皮會員」即可保存新 Cookie 如下圖,A 或者 B 兩個挑一個點就可以了,點了就會保存,順便還可以去領會員優惠券 ​ ​ 至此準備工作已經完成了,每天早上七點只要你手機開機著,並且 Surge 也是在背景開啟狀態下 Surge 就會自動幫你去執行蝦皮簽到腳本,並且會 Push 通知你領取了多少金幣 如果收到 Push 通知是 Cookie 過期,那麼只要重新登入一次上面的步驟即可重新保存新的 Cookie ​ 2021/08/31 update 腳本小改版一下,新增「蝦幣寶箱」自動領取的功能,之前安裝過的人重新更新一下模組跟外部資源即可 現在除了每天早上會自動簽到以外,還會自動去領「蝦幣寶箱」 每日「蝦幣寶箱」雖然大部分只有 0.01 蝦幣,但是聚少成多囉~ ​ 如果你對於以上設定沒有信心,你可以繼續依照下面步驟檢查簽到腳本是不是能正常工作 ...

August 31, 2021 · 1 min · jkgtw

從此不斷簽!使用 Surge 幫你在巴哈姆特自動完成每日獎勵!

​ 之前有介紹過 Surge 自動蝦皮領每日金幣,最近又看到有大神寫了巴哈姆特的腳本 測試一下非常好用,目前除了巴哈網站的自動每日簽到以外,還順便會幫你把公會簽到以及動畫瘋每日問題都一起完成 不過好像有人有使用困難,所以就寫一篇來手拉手圖文教學一下怎麼使用這個好用的腳本 ​ 根據大神作者的說明,這個腳本除了可以在 Surge 跑以外,還可以在 Quantumult X 跟 Loon 通用 不過我只有 Surge,所以這篇就只有介紹如何在 Surge 上面操作,其他 App 請自行摸索,應該都大同小異 另外要說明的是如果你巴哈姆特帳號有啟用兩步驗證,需要關閉才能正確運作 2021/07/27 update 大神更新已經加上兩步驗證支援以及另外一個隱藏功能 懂的人請自己看程式碼,就是填上資料、把 false 改成 true 之類的而已 🙄 巴哈姆特也有一篇公告在介紹簽到有什麼獎勵:【公告】簽到功能上線 ​ 2021/09/03 update 原版通知是簡體中文,我搬運一下把內容都改為繁體中文而已 之前安裝過的,可以用下面新網址複製所有內容,重新設定安裝即可 🥺 開始設定之前請記得先設定與打開 Surge 規則模式、腳本與 MitM 的功能 另外還要打開 Surge 的通知功能,在 Surge app 裡面右下角的「更多」->「通知」->「允許通知」 接著打開這個網址,複製裡面全部腳本的內容(不是複製網址): https://raw.githubusercontent.com/jkgtw/Surge/master/JS/BahamutDailyBonus.js ​ 複製腳本完畢後,打開 Surge,然後新增一個本機腳本(如下圖) ​ 新的腳本請依照下圖數字一步一步設定,到第 7 的步驟時候,把剛剛複製的腳本全部貼上 注意一下 3 的 CRON 表達式,每個字元中間要加一個空格 ​ 貼上所有腳本程式碼以後,找到第 39 行跟第 42 行 把 YourUserName 換成你的巴哈帳號,把 YourUserPassword 換成你巴哈密碼,其他不用動 之後按下右上角的 10 完成即可,到此就已經完整安裝完畢 ​ 如果你沒把握也可以先在設備上執行一次腳本測試看看能不能正常運作 同樣回到 Surge 首頁,點腳本的編輯器,然後載入剛剛新增的 BahamutDailyBonus.js ...

July 25, 2021 · 1 min · jkgtw

使用 Surge 在網路變化時,自動切換 AdGuard Home 與 NextDNS

​ 注意 此方法已經過時,Surge 新版已經內建此功能,可以到這邊看如何使用 👌 之前有寫到一篇介紹 Surge 根據 WiFi 環境變化來自動選擇使用 DNS Server 的文章 每次域名查詢都要去跑一次 Script,先不論有無額外效能損耗,這樣似乎有點不太優雅 前兩天在 Surge 支援論壇裡面,看到某大神寫的一段範例,剛好可以完美解決這個自動切換 DNS 需求 Surge 只有在網路發生變化的時候才會觸發一次,並根據環境自動將 DoH 啟用或者關閉,非常不錯 所以就稍微拿來改一下,用了幾天沒出現什麼問題,就順便在此篇分享並記錄下來 ​ 先說一下我自己的需求,我在家中以及常待的辦公室都有自建 AdGuard Home 在 WiFi 局域網內 所以在認識的 WiFi SSID 下的時候,就用 DHCP Server 指定的 AdGuard Home 即可 只有外出使用行動網路或者不認識 WiFi 時候會需要自動切換啟用 NextDNS DoH 服務 清楚明白自己需求後,就可以開始實作了 😚 ​ 👆 Surge 的 DNS 設定改成預設,DoH 留空白不填 ​ 接著新建一個本機模組,可以啟用 / 關閉 NextDNS DoH 的模組 Surge App -> 模組 -> 建立本機模組,模組內容如下: 1 2 3 4 5 #!name=NextDNS #!desc=啟用 DoH 加密解析 [General] doh-server = https://apple.dns.nextdns.io/######## 以上第 5 行 ## 部分請自己改成自己的 NextDNS ID,如果你不是用 NextDNS 也可以改成其他 DoH 網址 ...

April 12, 2021 · 2 min · jkgtw

使用 Surge DNS Script 自動切換本地 DNS

​ 注意 此方法已經過時,Surge 新版已經內建此功能,可以到這邊看如何使用 👌 最近在 iPhone 跟 iPad 上都是使用 Surge 來最佳化設備上的網路與調整線路 而因為在家中跟辦公室都有搭建自己本地的 AdGuard Home,外出時想要連到 NextDNS DoH 自己每次動手切換實在太煩了,也不可能每次都記得 Surge 目前版本還沒有內建提供自動根據網路環境切換 DNS Server 的功能 所以昨天在推特上亂入問了作者,作者回覆可以使用 Surge DNS Script 來完成這個功能 ​ 於是就自己動手寫一段簡單 Script 來完成 下面就記錄一下設定過程,有需要的人可以照著設定即可 ​ 首先先設定一下會在外出時要連線的 DoH,推薦 NextDNS 或者 FutaDNS,也可以同時設定兩組互相備援 ​ ​ 接下來新增一個 DNS Script 進去,請先拷貝下面的 Script 其中第一行的「SSID1」跟「SSID2」請根據你的實際的 SSID 來修改 寫在這裡的 SSID,Surge 會直接使用該網路內 DHCP Server 分發下來的 DNS Server 來解 不會連到你上面設定的 DoH Server,如此即可做到根據 SSID 來自動切換 DNS Server 的簡易功能 ​ if ($network.wifi.ssid === 'SSID1' || $network.wifi.ssid === 'SSID2') { $done({servers:$network.dns}) } else { $done({}) } ​ 拷貝以上內容後,接著回到 Surge 準備新增一個本機腳本 ​ ​ 繼續如下圖步驟設定 ​ ​ 如上圖,看著數字步驟設定即可,再次提醒:步驟 4 貼上的 Script SSID 請記得修改成你自己的 ...

August 15, 2020 · 1 min · jkgtw

蘋果生態圈的網路神器 Surge 4 for iOS 簡易入門教學

​ 我最早接觸 Surge 是在 2015 年 iOS App Store 剛上架就第一批入手了~ 當時我人在中國,翻牆就跟吃飯、喝水、睡覺一樣是每天都需要的 記得當時蘋果 iOS 8 剛剛開放了 NetworkExtension framework Surge 橫空出世最早支援 NetworkExtension,多樣且自由的網路策略非常強大,也是當時最佳 iOS 翻牆工具 隨著時間也有其他開發者也漸漸投入研究蘋果這種系統等級的網路框架,App Store 上漸漸多了許多選擇~ 像是小火箭(Shadowrocket)、小氣球(Loon)或者圈叉(Quantumult X),都是同類相當不錯的競品 其中又以圈叉特別厲害,最早開始支援 Scripting 的功能 後來 2016 年時候我因為搬回台灣,台灣網路無需翻牆,所以瞬間就沒有繼續用下去的動力了。。。 ​ Surge 作者在去年的時候推出一個密碼管理工具「Elpass」 所以從去年那時候開始我又會三不五時看到作者在 Surge 開發的相關進度 最近會又開始用回 Surge 是因為發現作者加入一系列強大功能 如支援 MitM、Scripting、專屬 Snell 協議與快速設定的 Module 功能。。等等 玩法已經不僅僅是翻牆代理工具而已,已經是一個功能強大完整的「網路工具」了~ ​ 強大的 iOS 平台網路工具一下吸引許多寫 Script 的大佬們投入研究,像是有針對 Netflix 的 Script 在非越獄情況下可以在官方 Netflix App 影片介紹頁,直接顯示 imdb 與 douban 的第三方評分分數 ​ 👆 如上,左邊是原本 App 內的樣子,右邊是開啟 Script 以後的樣子,紅色框框就是 ​ 類似像這種強大 Script 都有人分享在 Github 上面,沒事去多搜尋一下,你會發現新大陸~ ...

April 20, 2020 · 3 min · jkgtw