本參考資料中針對 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 bashdocker 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