Microsoft 隧道閘道的命令列參考

本參考資料中針對 Microsoft Tunnel Gateway 的資訊,旨在支援在您的環境中安裝與維護隧道安裝。

mst-cli 命令列工具 for Microsoft Tunnel Gateway

Mst-CLI 是用於 Microsoft Tunnel Gateway 的命令列工具。 此工具在隧道完成安裝後可在 Linux 伺服器上使用,網址為 /usr/sbin/mst-cli。 你可以用這個工具完成的一些任務包括:

  • 取得關於隧道伺服器的資訊。
  • 設定或更新隧道伺服器的設定。
  • 重新啟動隧道伺服器。
  • 卸載隧道伺服器。

以下是該工具常見的命令列用途。

命令列介面

  • mst-cli –help - 用法: mst-cli [命令]

    命令

    • agent - 操作代理元件。
    • server - 操作伺服器元件。
    • uninstall - 卸載 Microsoft 隧道。
    • eula - 展示 EULA (End-User 授權協議) 。
    • import_cert - 匯入或更新 TLS 憑證。
  • mst-cli agent –help - 使用方式: mst-cli agent [指令]

    指令:

    • logs - 給特工記錄看。 (請使用 「-h 」以獲得更多資訊 )
    • status - 顯示特工狀態。
    • start - 啟動代理服務。
    • stop - 停止代理服務。
    • restart - 重新啟動代理服務。
  • mst-cli agent logs help - 使用方式: mst-cli 代理日誌 [標記]

    警示:

    • -f, --follow - 追蹤日誌輸出。 預設值為假。
    • --since string - 顯示自時間戳記以來的日誌。
    • --tail uint - 在日誌結束時輸出指定數量的 LINES。 預設為零 (0) ,這會印出所有行。
    • -t, --timestamps - 輸出日誌中的時間戳記。
  • mst-cli agent status - 以下回報是您可能看到的結果範例:

    • 狀態:跑步
    • 健康:健康
  • mst-cli agent start - 如果停了,它會啟動代理。

  • mst-cli agent stop - 阻止了特工。 停止後必須手動啟動。

  • mst-cli agent restart - 重新啟動代理。

  • mst-cli server --help - 使用方式: mst-cli 伺服器 [命令]

    指令:

    • logs - 顯示伺服器日誌。 請使用 -h 以獲得更多資訊。
    • status - 顯示伺服器狀態。
    • start - 啟動伺服器服務。
    • stop - 停止伺服器服務。
    • restart - 重新啟動伺服器服務。
    • show - 顯示各種伺服器統計數據。請使用 -h 以獲得更多資訊。
  • mst-cli server logs –help - 使用方式: mst-CLI 伺服器日誌 [標記]

    警示:

    • -f, --follow - 追蹤日誌輸出。 預設值為假。
    • --since string - 顯示自時間戳記以來的日誌
    • --tail uint - 在日誌結束時輸出指定數量的 LINES。 預設為零 (0) ,這會印出所有行。
    • -t, --timestamps - 輸出日誌中的時間戳記。
  • mst-cli server status - 以下回報是您可能看到的結果範例:

    • 狀態:跑步
    • 健康:健康
  • mst-cli server start - 如果伺服器停止,它會啟動。

  • mst-cli server stop - 伺服器停了。 停止後必須手動啟動。

  • mst-cli server restart - 重新啟動伺服器。

  • mst-cli server show

    • show status - 列印伺服器的狀態與統計資料。
    • show users - 列印連接的使用者。
    • show ip bans - 列印被禁的 IP 位址。
    • show ip ban points - 列印所有已知且有分點的 IP 位址。
    • show iroutes - 列印伺服器使用者提供的路由。
    • show sessions all - 列印所有會話 ID。
    • show sessions valid - 列印所有用於重新連線會話的有效資料。
    • show session [SID] - 列印指定會話的資訊。
    • show user [NAME] - 列印指定使用者的資訊。
    • show id [ID] - 列印指定 ID 上的資訊。
    • show events - 提供連接使用者的資訊。
    • show cookies all - 所有表演時段的別名。
    • show cookies valid - 節目會議的別名有效。

環境變數

以下是你在 Linux 伺服器安裝 Microsoft Tunnel Gateway 軟體時,可能想設定的環境變數。 這些變數可在環境檔案 /etc/mstunnel/env.sh 中找到:

  • http_proxy=[address] - 你代理伺服器的 HTTP 位址。
  • https_proxy=[address] - 你代理伺服器的 HTTPs 位址。

資料路徑

路徑/檔案 描述 權限
/.../mstunnel 所有設定的根目錄。 擁有者根,群組 mstunnel
/.../mstunnel/admin-settings.json 包含伺服器安裝的設定。  Intune 會管理這個檔案,不應該手動編輯
/.../mstunnel/certs 儲存 TLS 憑證的目錄。  擁有者根,群組 mstunnel
/.../mstunnel/private 存放 Intune 代理憑證和 TLS 私鑰的目錄。  擁有者根,群組 mstunnel

Files 在伺服器安裝時新增

/etc/mstunnel

  • admin-settings.json

    • 包含 Intune 的序列化伺服器設定
    • 伺服器註冊後建立。
  • agent-info.json

    • 註冊完成後會建立。
    • AgentId、IntuneTenantId、AADTenantId,以及代理證書 RenewalDate。
    • 更新代理人證書更新情況。
  • private/agent.p12

    • 用於 Intune 代理認證的 PFX 憑證。
    • 自動續約。
  • version-info.json

    • 包含各元件的版本資訊。
    • ConfigVersion、DockerVersion、AgentImageHash、AgentCreateDate、ServerImageHash、ServerCreateDate。
  • ocserv.conf

    • 伺服器設定
  • Images_configured

用於建立容器的 Docker 映像

  • agentImageDigest
  • 伺服器影像摘要

admin-settings.json範例

{
"PolicyName": "Auto Generated Policy for rh7vm",
   "DisplayName": "rh7vm Policy",
   "Description": "This policy was auto generated for rh7vm",
   "Network": "169.100.0.0/16",
   "DNSServers": ["168.63.129.16"],
   "DefaultDomainSuffix": "nmqjwlanybmubp4imht0k2b4qd.xx.internal.cloudapp.net",
   "RoutesInclude": ["default"],
   "RoutesExclude": [],
   "ListenPort": 443
}
管理員設定 描述
PolicyName 設定政策名稱。 你可以選擇名字。
DisplayName 簡短的顯示名稱。 你可以選擇名字。
描述 原則的描述。 你可以選擇描述。
網路 用於分配虛擬位址的網路與遮罩。 除非你有衝突,否則這個設定不需要改變。 此設定可支援多達 64,000 名客戶端。
DNSServers 客戶端應該使用的 DNS 伺服器清單。 這些伺服器可以解析內部資源的位址。
DefaultDomainSuffix 客戶端在嘗試解析資源時,會在主機名稱後加上的 Domain 後綴。
路線包括 透過 VPN 路由的路由清單。 預設是所有路線。
路線不列 應該繞過 VPN 的路由清單。
聆聽港 VPN 伺服器接收流量的埠口。

Docker 指令

以下是 Docker 常見的指令,如果你必須調查隧道伺服器的問題,這些指令會很有用。

注意事項

大多數 Linux 發行版都使用 Docker。 不過,像 Red Hat Enterprise Linux (RHEL) 8.4 這類版本不支援 Docker。 這些發行版改用 Podman。 欲了解更多支援發行版及各自 Docker 或 Podman 需求,請參閱 Linux 伺服器

為 Docker 撰寫的參考與命令列可以透過將 docker 替換成 podman 來使用 Podman

命令列介面:

  • docker ps –a – 查看所有容器。

    • mstunnel-server – 此容器運行 ocserv 伺服器元件,並使用 inbound Port 443 (預設) ,或自訂埠配置。
    • mstunnel-agent - 此容器運行 Intune 連接器,並使用出站埠 443。
  • 重新啟動 Docker

    • systemctl restart docker
  • 要在容器中運行東西

    • docker exec –it mstunnel-server bash
    • docker exec –it mstunnel-agent bash

Podman 指揮

以下是 Podman 的指令,如果你必須調查隧道伺服器的問題,這些指令會很有用。 想了解更多可用於 Podman 的指令,請參見 Docker 指令

  • sudo podman images - 列出所有運行中的容器。
  • sudo podman stats - 顯示容器 CPU 利用率、MEM 使用率、網路及區塊輸入輸出。
  • sudo podman port mstunnel-server- 列出從隧道伺服器到本地 Linux 主機的埠映射。

Linux 指令

以下是你在隧道伺服器上常用的 Linux 指令。

  • sudo su – 讓你對盒子發熱。 在執行以下指令之前,以及執行 mstunnel-setup 之前,請先使用這個指令。

  • ls – 列出目錄內容。

  • ls – l – 列出目錄內容,包括時間戳記。

  • cd – 切換到另一個目錄。 例如, cd /etc/test/stuff 將你從 目錄改到 etc 子資料夾 > ,再到 test 子資料夾 > ,然後再到 stuff 資料夾。

  • cp <source> <destination> - 有助於將憑證複製到正確位置。

  • ln –s <source> <target> - 建立軟連結。

  • curl <URL> – 檢查網站存取權限。 例如:curl https://microsoft.com

  • ./<filename> - 跑個腳本。

手動載入ip_tables

請使用以下指令檢查,必要時手動載入Linux伺服器核心中的ip_tables。 請參考 sudo 的上下文:

  • 驗證伺服器上是否有ip_tables: lsmod |grep ip_tables
  • 建立一個設定檔,當伺服器開機時將ip_tables載入核心: echo ip_tables > /etc/modules-load.d/mstunnel_iptables.conf
  • 要立即將ip_tables載入核心: /sbin/modprobe ip_tables