# 幫Switch開VPN ```mermaid graph TD; 小烏龜---Router---端末 ``` > 端末: 泛指各種裝置 Switch也包含在這 > Router : 另外接的Wifi分享器 > 這邊圖上Router如果有支援VPN的功能,可以去使用其功能(e.g. VPN Fusion, OpenVPN...) > 沒有Router,或分享器沒有VPN功能的,可以看我接下來的分享 ## 旁路由 * 這邊採用openwrt做為系統 * 透過VM(虛擬機來安裝openwrt)作為旁路由 * VPN 採用 [ProtonVPN](https://protonvpn.com/) > : VM > : VPN * 簡圖  1. 這邊黑色線就是原本網路出去的途徑 2. 紅色線是我們要做的事情 3. 加上手動設定switch網路就可以讓switch走VPN連線 ### Hyper-V 安裝 > 這邊是選我平常有在使用的VM Hyperviser > 也可以使用 VirtualBox, VMWare 等軟體 1. 控制台 ---> 程式與功能  2. 開啟或關閉Windows 功能 3. 找到Hyper-V 這一項  4. 將其勾起 5. 確定 6. 重新啟動 ### Openwrt 安裝 1. 開啟 Hyper-V管理員  2. 建立虛擬交換器  | 連線類型 | 描述 | | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 外部 | 讓虛擬機器能夠存取實體網路,以便與外部網路上的伺服器和用戶端通訊。 允許相同 Hyper-V 伺服器上的虛擬機器彼此通訊。 | | 內部 | 允許在相同 Hyper-V 伺服器上的虛擬機器之間,以及虛擬機器與管理主機作業系統之間的通訊。 | | 私人 | 只允許在相同 Hyper-V 伺服器上的虛擬機器之間進行通訊。 私人網路會與 Hyper-V 伺服器上的所有外部網路流量隔離。 當您必須建立隔離的網路環境,例如隔離的測試網域時,這種類型的網路非常有用。 |  > 給個示意圖 大概的感覺會是這樣 > **在這邊"外部" 是有勾選 "允許管理作業系統共用此網路介面卡" 這個選項的** 3. 這邊我們希望,虛擬機(VM) 可以直接跟Nintendo Switch通訊,故選擇外部 > 在其他虛擬機軟體上應該可以在網卡設定的部分找到"與實體網路介面卡橋接"的選項,這部分再麻煩自行去尋找  * 允許管理作業系統共用此網路介面卡,這個選項記得要勾,除非你希望網路介面卡(網孔)由Hyper-V Switch獨佔(或是你有其他網路介面卡 那可以不勾) > Memo : 之前有試過,與Hyper-V共享無線網路卡,網路會卡到不太能用,如果有知道為什麼的,再麻煩各位留言告訴我 > 允許管理作業系統共用此網路介面卡 : 如果您想要允許 Hyper-V 主機與虛擬機器共用虛擬交換器和 NIC 或 NIC 小組的使用,請選取此選項。 啟用此功能後,主機可以使用您為虛擬交換器設定的任何設定,例如服務品質 (QoS) 設定、安全性設定,或 Hyper-V 虛擬交換器的其他功能。 4. 下載 Openwrt系統 https://downloads.openwrt.org/releases/22.03.2/targets/x86/64/openwrt-22.03.2-x86-64-generic-squashfs-combined-efi.img.gz 下載後可以用 [7-zip](https://www.developershome.com/7-zip/) 解壓縮 > https://www.cpci.dev/virt-load-img/ ... 這邊hyper-v 不吃img檔 所以要透過 [qemu-img](https://www.qemu.org/download/#windows) 去轉檔成VHDX ```bash qemu-img convert -f raw -O vhdx openwrt-21.02.0-rc3-x86-64-generic-squashfs-combined-efi.img openwrt-efi.vhdx ``` > 這邊附上轉好的檔案 若有安全疑慮的朋友就照上方的方法自己轉一份 > https://mega.nz/file/OQgESACT#thuCVSFEpmJfDZ5CK5tGZzrnoZ7j43SAoWpV7rvyXWw 5. 安裝Openwrt  * **這邊安全開機要取消勾選** * 然後下面的網路選擇剛剛建立的外部虛擬交換機 > Memo: 我也不清楚有沒有勾選安全開機的差別 6. 然後開機   * 這邊可以看到預設的IP為 `192.168.1.1` 我們直接把他改掉 ```bash uci set network.lan.ipaddr='192.168.2.1' # 設定lan IP uci commit # 保存設定 /etc/init.d/network restart # 重新啟動網路介面 ```  7. 新增IP * 我們找到網路介面卡  * 修改IP  8. 進 GUI介面設定 PPPoE連線 > 這邊會看到網頁用 192.168.3.1 在寫文之前已經用了192.168.2.1 故改成192.168.3.1 > 預設無密碼  * Network-> Interface 此時應該會只有一個Interface(介面)  > br-XXX : br代表bridge 這邊可以當作把網孔直接相連,彼此互通 > 進到Devices標籤可以看到br-lan只有綁一個eth0的實體介面卡 >  > 這邊我會把DHCP 關掉 避免在同一個網路環境中有兩台DHCP server * 新增PPPoE Interface > 這邊有設定過分享器或Router應該知道,網路連線是需要設定固定IP或以PPPoE驗證跟電信商要求IP的  > 這邊username 和password就要請各位找中華電信的帳號密碼小卡來做填寫了  * Firewall Settings這頁要套 wan的firewall-zone  * 設定完成  > 在這邊PPPoE介面是紅色 > 是因為我已經將其套上Wan的Policy 方便我電腦拿著 192.168.3.X的IP寫這篇文章 > 這樣應該要可以上網了 9. 安裝openvpn套件及VPN連線 * System->Software  * 按一下 Update-lists(綠色按鈕) 下面就會出現很多可以安裝的Package * Filter欄位輸入**openvpn**  * 我們需要安裝 openvpn-openssl 及 luci-app-openvpn * 安裝完成後 重新整理 上方會出現 VPN  * 裡面會有三個範例  * 這邊我們不用這些 我們用ProtonVPN > 從這邊下載設定檔  * 上傳ovpn設定  > ProtonVPN 教學 > https://protonvpn.com/support/how-to-set-up-protonvpn-on-openwrt-routers/ > 借一張圖 * 這邊需要修改設定檔裡面其中一行 ``` auth-user-pass ``` ``` auth-user-pass /etc/openvpn/FR.auth ```  並在下面的欄位 輸入  可以在protonVPN那邊找到 > https://account.protonvpn.com/account#openvpn * 勾起Enabled --> Save& Apply  * 如果VPN連線成功了,這時候應該會不能上網,我們需要到 Network->Firewall,將VPN Interface下放到wan zone裡面  * Edit-> Advanced Setting * Cover devices-->tun0  * Save * Save & Apply * 要讓Nintendo Switch使用這個軟路由上網的話記得要去switch上設定IP <a href="https://www.buymeacoffee.com/virgil246" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up