安卓自带的vpn怎么用
Android 提供的 API 可讓開發人員建立虛擬私人網路 (VPN) 解決方案閱讀本指南後,您將瞭解如何開發及測試 Android 裝置專用的 VPN 用戶端
Android 內建 (PPTP 和 L2TP/IPSec) VPN 用戶端, 稱為舊版 VPNAndroid 4.0 (API 級別 14) 導入了 API,讓該應用程式 開發人員可以自行提供 VPN 解決方案將 VPN 解決方案封裝成套件 吸引使用者安裝到裝置上的應用程式。開發人員通常會建構 VPN 出現以下任一原因:
本指南的其餘部分會說明如何開發 VPN 應用程式 (包括永久連線個別應用程式VPN) 未涵蓋 內建 VPN 用戶端
Android 提供使用者介面 (UI) 可協助他人設定、啟動 並停止 VPN 解決方案系統 UI 也會讓使用者使用裝置 且用戶端會接收到有效的 VPN 連線Android 會顯示下列應用程式的 UI 元件: VPN 連線:
VPN 應用程式首次啟用前,系統會先顯示 「連線要求」對話方塊。對話方塊會提示使用該裝置的使用者 確認他們信任 VPN 並接受要求。
VPN 設定畫面 (設定
網路和網際網路
連線處於下列狀態時,「快速設定」匣會顯示資訊面板 有效。輕觸標籤即可顯示對話方塊安卓自带的vpn怎么用,當中含有更多資訊和連結 然後前往「設定」頁面
應用程式還必須提供 UI,讓裝置使用者 設定服務選項。舉例來說,您的解決方案可能需要 擷取帳戶驗證設定。應用程式應會顯示以下 UI:
您的應用程式為使用者連結系統網路 (或利用工作 設定檔) 連線至 VPN 閘道。每位使用者 (或工作資料夾) 都能執行 不同的 VPN 應用程式您會建立一個 VPN 服務,供系統用於啟動 停止 VPN,並追蹤連線狀態。你的 VPN 服務沿用自VpnService。
這項服務也是 VPN 閘道連線的容器 本機裝置介面服務執行個體呼叫VpnService.Builder方法,用於建立新的本機介面。
如要為應用程式新增 VPN 服務,請建立VpnService。在應用程式中宣告 VPN服務加入以下程式碼的資訊清單檔案:
現在應用程式已宣告服務,系統可能會自動啟動 並視需要停止應用程式的 VPN 服務。例如系統控制項 以便啟用永久連線 VPN服務。
如要讓應用程式成為使用者目前的 VPN 服務,請呼叫VpnService.prepare()。如果裝置的使用者尚未 授予應用程式權限後,該方法會傳回活動意圖。 您可以使用此意圖啟動要求權限的系統活動。 系統會顯示類似於其他權限對話方塊的對話方塊,例如 相機或聯絡人存取權如果您的應用程式已備妥,此方法會傳回null。
只有一個應用程式可以是目前準備的 VPN 服務。一律撥打電話VpnService.prepare(),因為使用者可能有不同設定 設為 VPN 服務。詳情請參閱:「服務生命週期」部分。
當服務開始執行後,您可以建立新的本機介面 連線至 VPN 閘道要求權限並連線至服務 VPN 閘道,您必須按照下列順序完成步驟:
VPN 閘道通常會在期間建議本機 TUN 介面的設定 就是雙手應用程式會呼叫VpnService.Builder方法來設定 ,如以下範例所示:
「個別應用程式 VPN」部分的範例顯示 IPv6 設定,包括: 您必須新增下列VpnService.Builder值 才能建立新介面:
新增至少一個 IPv4 或 IPv6 位址,以及系統的子網路遮罩 指派為本機 TUN 介面位址。應用程式通常會接收 握手期間來自 VPN 閘道的位址和子網路遮罩。
如果您希望系統透過 VPN 傳送流量,請至少新增一條路徑 存取 API依據目的地地址篩選路徑。如要接受所有流量,請設定 開啟路線,例如
您的應用程式應追蹤系統所選 VPN 的狀態和任何啟用中狀態 連線狀態。更新應用程式的使用者介面 (UI),讓使用者繼續使用 清楚掌握任何變更
裝置的使用者可以透過應用程式的 UI 停止服務。停止 服務,而非只是關閉連線。同時,也會停止執行中的 連線時,裝置使用者在 VPN 畫面中執行下列操作時連線 然後關閉裝置的「設定」應用程式:
系統會呼叫服務的onRevoke()方法,但這場呼叫 而不是在主執行緒上發生當系統呼叫此方法時, 替代網路介面已負責轉送流量。您可以放心丟棄 以下資源:
Android 可以在裝置啟動時開啟 VPN 服務,並在啟動後保持運作 。這項功能稱為「永久連線 VPN」, Android 7.0 (API 級別 24) 以上版本。Android 負責維護服務 也就是私人 VPN 閘道 以獲得最佳效能和最安全的連線此外,永久連線 VPN 也可能會封鎖未使用 VPN 的連線。
在 Android 8.0 以上版本中,系統會顯示下列對話方塊, 裝置的使用者是否知道永久連線 VPN:
永久連線 VPN 連線中斷或無法連線時,使用者會看到 此通知不得關閉。輕觸通知會顯示對話方塊 。VPN 重新連線或他人時,通知就會消失 關閉永久連線的 VPN 選項。
永久連線 VPN 可讓使用者封鎖任何網路 未使用 VPN 連線啟用這個選項後 應用程式在 VPN 開啟前,警告使用者未連上網際網路 以獲得最佳效能和最安全的連線「設定」應用程式會提示使用裝置的使用者繼續操作,或是 cancel。
您也可以使用受管理的設定來設定 以獲得最佳效能和最安全的連線受管理設定可協助 IT 管理員從遠端設定 VPN。
Android 不包含用於確認系統是否啟動 VPN 的 API 課程中也會快速介紹 Memorystore 這是 Google Cloud 的全代管 Redis 服務不過,當應用程式標記啟動的任何服務執行個體時,您可以假設 系統針對永久連線 VPN 啟動了未標記的服務。範例如下:
使用裝置的使用者或 IT 管理員可強制所有流量使用 VPN。 系統會封鎖所有未使用 VPN 的網路流量。使用 裝置可以在 VPN 選項中找到「封鎖沒有 VPN 的連線」切換鈕 面板。
如果應用程式目前不支援永久連線 VPN,你可以選擇停用 (適用於 Android 裝置) 8.1 以上版本),方法是將SERVICE_META_DATA_SUPPORTS_ALWAYS_ON敬上 傳送至false。以下應用程式資訊清單範例說明如何新增 中繼資料元素:
VPN 應用程式可以篩選哪些已安裝的應用程式可透過 以及 VPN 連線您可以建立允許清單 但不能同時採用兩者如果您沒有建立允許或不允許的清單,系統會 通過 VPN 處理的所有網路流量
VPN 應用程式必須在建立連線前設定清單。如果發生以下情況: 需要變更清單,建立新的 VPN 連線應用程式必須是 。
如要將應用程式加入允許清單,請呼叫VpnService.Builder.addAllowedApplication()。如果 清單包含一或多個應用程式,只有清單上的應用程式會使用 VPN。 所有其他 (不在清單上的應用程式) 會將系統網路當做 VPN 使用 代表系統並未執行如果許可清單沒有內容,所有應用程式都會使用 VPN。
您的 VPN 可讓應用程式略過 VPN 並選取自己的網路。目的地: 略過 VPN,在下列情況下呼叫VpnService.Builder.allowBypass()建立 VPN 介面開始評估後即無法變更這個值 以及 VPN 服務如果應用程式未將程序或通訊端繫結至特定的 網路,應用程式的網路流量仍會透過 VPN 繼續。
Android 開放原始碼計畫包含名為ToyVPN的範例應用程式。 這個應用程式說明如何設定及連結 VPN 服務。
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。