終端機用 Bash 代理包裝工具

讓單一指令走代理,不必改動 Shell 環境。

hamta 會在代理環境中包裝單次指令:讀取 JSON 設定、匯出常用代理變數、視需要驗證出口國家,再執行指令。不必修改 Shell,也不留下全域狀態。

env 模式取決於應用程式是否支援代理;proxychains 模式只攔截受支援的 TCP 流量,並非全系統 VPN。

功能

一個指令、獨立代理、驗證出口。

01

單一指令專用代理

在支援的指令前加上 hamta,即可讓該次執行走代理,不必全域匯出變數,也不會弄亂目前的 Shell 工作階段。

02

env 或 proxychains 模式

會遵循 HTTP_PROXY / HTTPS_PROXY / ALL_PROXY 的應用程式可用 env 模式;忽略環境變數且受支援的 TCP 命令列工具則可用 proxychains 模式。

03

出口國家驗證

執行指令前可選擇透過 ipinfo.io 檢查公開 IP 所在國家,確認流量確實從預期地點送出。

使用流程

一分鐘內從安裝到執行第一個代理指令。

步驟 1

透過 Homebrew 安裝

先執行 brew trust andrewmmc/tap 信任 tap,再執行 brew install andrewmmc/tap/hamta,安裝 hamta 及執行時相依套件 jq 與 curl。

步驟 2

建立設定檔

執行 hamta init 建立 ~/.config/hamta/config.json,再設定代理 URL、模式及預期出口國家。

步驟 3

在指令前加上 hamta

執行 hamta curl https://ipinfo.iohamta npm install react,或其他與所選模式相容的指令。

設計理念

小巧、簡單、行為可預期。

hamta 專注做好一件事:讓單一指令走你的代理。整套工具只是一支可一次讀完的短腳本,搭配任何文字編輯器都能修改的純 JSON 設定;沒有常駐程式、背景服務或意外行為。

hamta 的設計重點

  • scope一個指令、一個代理
  • safety先驗證出口國家
  • clarity純 JSON 設定
  • portabilitybash + jq + curl

指令參考

hamta 的完整用法。

建立、檢視、診斷、驗證,或代理任何受支援的指令。

hamta init

在 ~/.config/hamta/config.json 建立預設設定檔。

hamta config

顯示目前設定。

hamta doctor

檢查相依套件、設定、代理連線及目前出口 IP。

hamta verify

不執行其他指令,單獨測試代理驗證。

hamta [--mode env|proxychains] [--] <command> [args...]

透過設定的代理執行指令,並可單次覆寫模式。

hamta --help

顯示指令用法與選項。

hamta --version

顯示已安裝的 hamta 版本。

安裝

免費,透過 Homebrew 安裝。

hamta 是開放原始碼軟體。信任 tap 一次後,Homebrew 會安裝 hamta 及必要的 jq、curl 相依套件。

常見問題

常見問題。

hamta 適合用在哪裡?

讓單次指令走代理,且不污染 Shell 環境。適合程式開發代理、套件管理器、命令列工具,或任何只想在單次執行時使用特定出口 IP 的工具。

這和直接匯出 HTTP_PROXY 有何不同?

hamta 將代理環境限制在單一指令,可先驗證出口國家,也為忽略環境變數的應用程式提供 proxychains 模式;呼叫 proxychains4 前還會清除衝突的代理變數。

env 與 proxychains 模式有何差異?

env 模式會匯出 HTTP_PROXY / HTTPS_PROXY / ALL_PROXY / npm 代理變數並直接執行指令。proxychains 模式則使用產生的設定透過 proxychains4 執行,適合忽略代理環境變數且受支援的 TCP 命令列工具。

支援哪些代理 URL 格式?

支援 http://socks4://socks5://socks5h://。在 proxychains 模式中,socks5h:// 會寫成 SOCKS5 代理,DNS 洩漏防護則由 proxy_dns 提供。

hamta 能防止 DNS 洩漏嗎?

env 模式不能,因為它只能設定代理環境變數。proxychains 模式會啟用 proxy_dns,讓攔截到的主機名稱查詢透過代理;這可降低許多 TCP 應用程式的 DNS 洩漏風險,但並非全系統保證。

執行時需要哪些相依套件?

必須安裝 jqcurl;透過 Homebrew 安裝 hamta 時會自動一併安裝。Proxychains 模式另需 proxychains-ng 4.16 或更新版本,請另外執行 brew install proxychains-ng

hamta 採用什麼授權?

hamta 是開放原始碼軟體,詳細條款請參閱 GitHub 儲存庫中的 LICENSE 檔案(英文)。

立即試用 hamta。

一個指令即可安裝;加上一個前綴,就能讓受支援的工具走代理。不需修改 Shell,也不留下全域狀態。