# 幫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
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.