跳至正文

為第一條連線設定路由 ​

完成快速入門後,保持 honk 運作並以管理員身分登入。準備可用的 HTTP 或 HTTPS 訂閱 URL,以及閘道器的 shell 存取權限。本教學將 example.com 送入名為 proxy 的新群組,其他流量保持直連。訂閱名稱使用 harbor。

從直連組態開始:使用 fallback: direct,沒有 DNS 區塊,也沒有既有的 harbor 訂閱或 proxy 群組。將 API 憑證放在獨立的引入檔案,讓主檔案保持可編輯;見組態範例。此時 example.com 使用 direct 回退。第 3 步新增代理規則後,在第 6 步確認其出站為 proxy。

1. 新增訂閱 ​

開啟節點頁,選擇新增訂閱。在名稱中填寫 harbor,在訂閱網址中填寫供應商的 URL,然後選擇新增。doona 會寫入宣告並請求更新。

檢查成功通知是否顯示節點數,再選擇 harbor 檢視其節點。如果宣告已儲存但擷取失敗,先解決回報的錯誤,再選擇卡片上的更新 harbor。訂閱包含代理節點後再繼續。

控制項無法使用時,請查閱節點與訂閱條件或更新條件。

2. 建立群組 ​

開啟策略頁,選擇新增群組。在群組名稱中填寫 proxy,將選擇方式設為平均最快。在訂閱中選擇 harbor,檢查符合的節點後選擇建立。

頁面應出現 proxy 卡片,其中包含訂閱成員。展開卡片,檢視所選成員及其延遲或健康狀態。群組內沒有節點時請勿繼續。控制項無法使用時,見群組建立與編輯條件。

3. 將測試網域送入群組 ​

開啟規則 → 路由規則。如果顯示檢視切換,先選擇進階,再選擇新增規則。

欄位值
條件寫法選擇
依據完整網域
值example.com
出站proxy
插入位置最後(fallback 之前)

選擇對話框中的新增規則,立即寫入並重載。檢查新規則已生效通知及新增規則:

dae
domain(full: example.com) -> proxy

保留 fallback: direct。新增功能無法使用時,見路由規則條件。

4. 定義 DNS 上游 ​

開啟組態 → 設定檔,在設定檔中選擇 /etc/honk/config.dae,將以下區塊附加到現有區塊之後。保留剛才建立的訂閱、群組和路由規則。

dae
# 透過代理群組傳送指定的 DNS 請求。
dns {
    # 使用數字伺服器位址,避免依賴其網域的初始解析。
    upstream {
        remote_dns: 'https://1.1.1.1/dns-query' -> proxy
    }
    # 保留其他請求的原目的地。
    routing {
        request {
            fallback: asis
        }
    }
}

選擇套用,等待檔案已寫入、組態已重載的通知。重新開啟檔案,檢查 remote_dns 是否存在。編輯器或套用無法使用時,見組態寫入條件。

5. 新增並套用 DNS 規則 ​

開啟規則 → DNS 規則,在request 規則中選擇新增規則。將依據設為完整網域,在值中填寫 example.com,在動作中選擇 remote_dns,將插入位置設為最後(fallback 之前)。

選擇新增規則以寫入並重載。檢查新規則已生效通知及請求規則:

dae
qname(full: example.com) -> remote_dns

路由規則選擇流量使用的群組;DNS 規則選擇解析器,該解析器的請求也經過此群組。以上每次儲存都會單獨生效。新增功能無法使用時,見 DNS 規則條件。

6. 用追蹤模擬驗證規則 ​

在規則頁開啟追蹤模擬。將網路協定設為 TCP,網域填寫 example.com,目的連接埠填寫 443。目的 IP留空,在解析模式中選擇不解析(none),再選擇開始追蹤。

結果應符合你的網域規則,出站為 proxy,節點鏈中包含 harbor 的節點。改用 example.net 再執行一次,出站應為 direct。追蹤只模擬規則評估,不建立連線,也不能證明代理可以存取網站。控制項無法使用時,見路由追蹤條件。

7. 觀察真實連線 ​

發出請求前先開啟連線頁。在閘道器執行:

sh
curl --http1.1 --limit-rate 32 https://example.com/ -o /dev/null

傳輸期間,在連線頁找到 example.com 並開啟對應列。檢查節點鏈是否包含 proxy 和 harbor 的某個節點。短連線可能在檢視前已經結束,必要時再次發出請求。傳輸成功表示此路由能承載真實流量。頁面無法使用時,見連線條件。

代理流量由使用者空間處理,會出現在連線頁。直連流量由核心轉送,不會出現在該頁。使用追蹤檢查直連回退,或檢視組態參考中的完整檔案範例。


來源:doona 上游文件,採用 CC BY 4.0 授權條款。