Weil Jimmer's BlogWeil Jimmer's Blog


Category:OpenWrt

Found 7 records. At Page 1 / 2.

拋棄 OpenWrt 遷移到 pfSense:搭建 Wireguard VPN 與 VLAN 網路隔離實戰筆記

No Comments
-
更新於 2025-09-20 00:12:30

前言

用了將近一兩年的 Openwrt 後,個人覺得 Openwrt 還是有不少令人遺憾的點,正因為這些原因我才遷移到 pfSense。

首先是 Openwrt 對於防火牆規則設置的侷限性,優先級有點混亂,讓我又愛又恨,不能說多糟糕,但一旦網路規則一多後,實在沒有 pfSense 那麼好用,pfSense 對於規則的優先級比較簡單明瞭。

第二點,也是我遷移的最主因,對於雙層路由器的網路結構來說,在 Openwrt 設置 VPN 路由會很麻煩很麻煩。

所以我就搬到 pfSense 了,剛開始會有一天的陣痛期,因為要熟悉新的設定,而且 pfSense 太多太多設置可以調了,非常非常的細,很多非常專業的功能。設置沒有像 Openwrt 那樣容易上手。但熟悉後,就會覺得很舒服了。

雖然 pfSense 太過專業複雜,但我最終還是選用了 pfSense。

網路配置

首先介紹帶有 VPN 的基礎網路配置:(如下圖)

希望實現的目標

  1. 在 LAN1 下,所有設備能夠通過路由器上設置的 VPN 上網。
  2. 在 LAN1 下,限制特定的 PC 才有權限訪問一級路由所在的網段 (192.168.0.0/24)。
  3. 在 LAN2 下,所有設備走正常的 WAN 路由上網,不經過 VPN。

Openwrt 的行為

在這種狀況下,一旦設置完 wg0 (VPN)介面,會路由 0.0.0.0/0 的流量,導致,PC (192.168.10.100) 將會失去能夠連線 192.168.0.0/24 的能力,Openwrt 會根據路由規則把目的地為 192.168.0.1 的封包送到遠端伺服器(VPN伺服器)。那自然而然會無法訪問 192.168.0.1。

如果要允許 192.168.10.100 前往 192.168.0.1 該怎麼辦?在開啟 kill-switch 時,防火牆規則是禁止 LAN1 轉發到 WAN 的,所以需要再新增規則允許 192.168.10.100 轉發到 192.168.0.1。不過,即使這麼設置仍然也不能訪問 192.168.0.1。

新增好防火牆規則,只是理論上轉發封包到 192.168.0.1,實際上要不要轉發封包到 WAN 並不是單單依靠防火牆規則。因為路由規則不是這樣寫的,所以實際上不會轉發封包到 WAN。所以還要再裝其他東西,例如 Policy Base Routing,非常的繁瑣,安裝好後,還要再一個一個輸入 IP 和目的地,很麻煩。

不然就是要建立一個新的路由表,指定 192.168.0.0/24 要走 WAN 介面,然後把這個路由規則套用在 LAN1 下,並且優先級要高於預設的路由表,如此一來才會生效。

但這些設置非常靠北,最終讓我棄坑 Openwrt。而 pfSense 呢?非常簡單,也無需再安裝第三方路由規則的套件。

pfSense 的行為

首先介紹一下 pfSense 的優勢。

pfSense 的防火牆規則可以使用別名將 IP 段綁成一起,並且也能再把多個別名綁定成一組別名,所以要設置防火牆非常輕鬆。

第二點,pfSense 可以在防火牆 NAT 轉換那邊直接設置轉發 LAN1 的流量到 wg0。這個設定並不會影響 LAN1 能不能前往 192.168.0.0/24 的能力,如果有設置允許的規則的話,仍然是可以正常訪問到 192.168.0.0/24,我覺得光是這一點就已經贏了 Openwrt。

完全不需要再去考慮的路由的問題,畢竟底層已經不是 iptables,而是 FreeBSD 的 Packet Filter (PF)。

因此,我只要在 NAT 設定 LAN1 轉發到 WG0,然後允許 LAN1 前往 * (任意地址),這樣 LAN1 也能訪問一級路由器的網段,可以自由的到 Server-1、Server-2,而且訪問網際網路時,遠端伺服器看到 LAN1 PC 的 IP 會是 VPN 伺服器的 IP。

可以完美實現我想要的功能,並且幾乎不需要什麼太難的設定,也不用燒腦的思考路由規則。在 pfSense 的防火牆規則中,最上面先寫的,優先級最高,逐一往下執行,如果規則匹配該流量,就直接執行該規則,進行放行或阻止。

下面介紹怎麼配置。

設置 Wireguard

新增 Tunnel

如下圖範例,我已經先創建了,基礎的 Tunnel,並填入 Private Key。

建立 Peer

將伺服端 IP (EndPoint) 和公鑰填入。Allowed IP 可以放心的填 0.0.0.0/0,不用像 Openwrt 會需要搞一堆麻煩的路由規則。

建立 WG0 介面

將 tun_wg0 加入到自己建立的介面 WG0 中。

建立 Gateway

需要在 Gateway 新增新的 wg0 介面,作為 WAN 端的可選路由,之後可以在 NAT 中選擇。

需要注意的一點是:必須打勾 Disable Gateway Monitoring Action,No action will be taken on gateway events. The gateway is always considered up.,打勾這個選項才能避免當 VPN 連線中斷時,被切換到 WAN 的流量,導致 IP 洩漏。

基本上 Wireguard VPN 到這步就差不多準備就緒。

設置 NAT

在我這裡,我將 LAN 用 VLAN 分割成五個網段,其中 OPT1 就是 LAN1,直接在 NAT address 那設定成 WG0 address,其餘其他內網維持 WAN address 就相當於沒有走 VPN 的通道。

設置防火牆規則

這裡我的設定非常簡單。

  1. 第一條,允許 LAN1 到 LAN1。
  2. 第二條,允許管理員的 IP 可以訪問到上級網段。
  3. 第三條,禁止 LAN1 訪問所有內部網路 (例如 LAN1、LAN2、LAN3 等等)。
  4. 第四條,允許 LAN1 到任何地方。

稍微介紹一下為何這麼設定。

首先 PF 默認是全部拒絕,所以如果沒有設定允許訪問外網的規則的話,會不能上網。因此規則裡面必須要有一條是允許前往任何地方,這條規則就是第四條,被我擺在最後面。

再來就是,因為 PF 沒有【網路隔離】的概念,如果設置了允許前往任何地方,那麼 LAN1 也能訪問 LAN2 也能訪問 LAN3 等等,而我需要隔離所有內網,所以我設定了第三條規則,禁止訪問內部網路。

最後,因為禁止訪問內部網路,所以 LAN1 也無法訪問 LAN1,因此需要再加一條 LAN1 可以訪問 LAN1 的規則,我放在第一條,所以會被最優先執行。

至於第二條允許管理員 IP 訪問上游網路,則是用來指定特定的 IP 可以訪問 192.168.0.0/24 網段,避免下面的裝置有能力對我其他網路設備展開攻擊或滲透。

測試

下圖中,vm301 是一台虛擬機器,位於 192.168.10.100 (LAN1),如果我給它加入到管理員 IP 白名單中的話,它就能夠 ping 通上級網路 (192.168.0.0/24)。

並且在外網來看,它的真實 IP 為 185.xxx.xxx.xxx (是 VPN 的 IP)。我自己的公網 IP 是 220 開頭。

如果我將 vm301 的內網 IP 從管理員白名單中移除,它就沒辦法訪問 192.168.0.0/24 的網段,而且從外網看,它的真實 IP 仍然是 185.xxx.xxx.xxx (是 VPN 的 IP)。

總結

經過幾個月的使用體驗後,pfSense 的防火牆規則給我的感覺是非常的非常的舒服,不像 Openwrt 那樣太簡陋,pfSense 防火牆非常多設定可以設置,既強大又簡單明瞭。

By Weil Jimmer


This entry was posted in General, Experience, The Internet, Note, OpenWrt By Weil Jimmer.

使用 PVE 與 OpenWrt 23.05 實現鏈路聚合 LACP 及 VLAN 建立多個虛擬區域網路的踩坑經驗

No Comments
-
更新於 2024-05-04 19:51:27

前言

按照最近的慣例,開頭要先說一段廢話,最近因為家裡空間不夠放交換器,於是訂了一個機櫃,打算重新整理我亂七八糟的網線和複雜的網路環境,以及升級我的 OpenWrt 版本,下為我房間的機櫃照。

花了我滿長的時間在進行除錯,裝設機櫃反而沒什麼,最大的問題在於用 OpenWrt 設定 VLAN。

先前我灌了 ImmortalWrt 23.05.2,想說我之前裝的 OpenWrt 有點舊,而且還是當時的 SNAPSHOT 版本,已經遇到過好幾次要安裝什麼軟體包,出現內核版本過新或過舊的問題,實在不能接受,所以趁這個時機升級一下。

然後在 ImmortalWrt 安裝鏈路聚合所需要的軟體:

opkg update
opkg install kmod-bonding luci-proto-bonding

試了老半天,都沒有成功耶,在交換器那邊總是顯示 Blocking,害我在思考是不是交換器的問題,但是後來我在 NAS 上設置成功,所以我覺得是 ImmortalWrt 的問題。

直到一天後,我才終於意識到問題出在哪裡,在於那個被我遺忘的 PVE 阿!原來我一直錯怪了 ImmortalWrt。

因為底層是 PVE,我在虛擬機中設置鏈路聚合只是在它的虛擬網卡上聚合而已啊,所以應該在 PVE 上設置

在 PVE 上建立 Linux Bond

首先到你的資料中心,然後選擇你的「節點」,再選擇 System → Network,點 Create 選擇 「Linux Bond」。

Slaves 輸入你想要聚合的網卡,我目前軟路由上有四張網卡,但我只選擇其中三張聚合,其中一張要給 WAN 使用,而且 PVE 也使用這張網卡,設定下去的話,會失去 PVE 的連線,因此我只選中三張。

模式就用 LACP,接著直接創建即可,之後你多出來一個 bond0 網卡,就是你聚合後的結果。

接著就到你的交換器上設定鏈路聚合(Link Aggregation, LACP),LACP 是我比較推薦的模式。

在 PVE 上建立 Linux Bridge

建立一個虛擬網橋 vmbr1,作為我的 LAN 區網用,這裡有一步驟很重要,那就是要把 VLAN aware 打勾

回想起幾個月前,第一次在 ImmortalWrt 設定的時候,老是出問題,其實就是 PVE 沒設定好,那時候沒有打勾這個選項(我也根本沒注意到這選項),自然 VLAN 接口收不到封包阿。

到這步,PVE 設定完之後就沒 PVE 的事了。

開啟 OpenWrt 23.05

這次我安裝的版本是 OpenWrt 官方的 openwrt-23.05.3-x86-64-generic-squashfs-combined-efi.img

手動裝了一些軟體包,比如主題 (Argon)、和繁體中文。

建立 VLAN 裝置

鑒於有了先前的經驗,基本駕輕就熟。直接到 網路 → 介面 → 裝置 → 加入裝置設定。

這邊直接選擇 VLAN (802.1q),預設值應該已經有了,新版本的 OpenWrt 已經拔掉了 Switch,所以很多文章和教學都過時了,很少人提到新版本的 OpenWrt VLAN 的設置。

VLAN ID,按照我這邊的環境,就是 10、20、30、40、50,直接重複五次,建好建滿。即使網路孔位沒有那麼多也沒關係,這邊已經虛擬化了。

像這樣,我建立了 VLAN 10~50 的網路裝置。

建立網卡介面

到「介面」列表,點「新增新介面」,靜態位址,選擇各自的 VLAN 裝置。

比如 LAN 配 eth0.10,LAN2 配 eth0.20,LAN3 配 eth0.30…

IP 的話,按照慣例,根據 VLAN TAG 定義 Gateway IP,VLAN 10 的話,設定 192.168.10.1/24。

然後是巨坑,防火牆要建立一個新的 Zone,如果沒設定防火牆是不會通的,沒有路由的話,DHCP Server 連分配 IP 都不會分配!

然後是必須的 DHCP 伺服器,直接點安裝即可。

這邊都不需要動,維持預設就可以了。

為了防止意外,建議開啟這個功能,「強制」DHCP,以防詭異的狀況發生。

建立防火牆規則

這裡就是老話重談了,為每個新創建的區域網路新增規則,允許轉發到 WAN。

我這邊比較特別,LAN 轉發到 WG0,是 VPN 通道,這個不是通常操作。而 LAN5,我是想建立一個隔離的網路,所以沒有轉發的能力。

建立 DNS 伺服器

建立好網路後,記得要在監聽介面打開剛剛新建的所有介面,否則即使有連線遠端 IP 的能力,卻沒辦法解析網域。

到這步,基本就大功告成。

接下來就是配置交換器,設置路由器所連接的 3 個 Port 為 TRUNK 接口。

同時給予其接口為 VLAN 10、20、30、40、50 的成員。

之後有空,會再補篇關於 VLAN 的基礎知識的文章。

By Weil Jimmer


This entry was posted in General, Experience, The Internet, OpenWrt By Weil Jimmer.

在區域網路中使用 OpenWrt 的 LuCI 介面實現喚醒電腦 Wake on LAN (WOL)

No Comments
-
更新於 2023-09-17 22:24:56

前言

昨天剛睡醒躺在床上看小說的時候,內心一直有個聲音是:好想開電腦聽音樂喔,但是我卻很懶得爬起床。

想到我應該寫個 Web API 用區網 (Wi-Fi) 就可以啟動音樂播放軟體阿!後來仔細想了想,電腦如果是關機狀態的話,即便寫了,也還是沒有用。

於是才突然想到,可以嘗試看看 Magic Packet 喚醒功能 (Wake-on-LAN) 阿。於是就有了這篇文章,懶惰是促使人進步的動力來源。

原則上這篇文章沒有甚麼技術成分。僅僅是記錄我的操作過程。

設定網卡

這非常簡單設置,基本上就是直接從 Windows 中控制台找到網路介面卡,打勾選項,點確定而已。

設定開啟。

這裡是關機時的網卡速度,正處於關機狀態時,用不到那麼大的頻寬,可以設定成最低,也就是 10 Mbps。

設定允許這個裝置喚醒電腦。

接著重新啟動,到主機板 BIOS 設定允許我現在的網卡喚醒電腦。

設定 OpenWrt

開啟登入 OpenWrt,安裝 WOL 的相關套件。

opkg install etherwake luci-app-wol

重啟 OpenWrt 軟路由,應該會在服務的 tab 下面找到 Wake on LAN。

測試

在關機狀態下,可以從交換器中看到 Port 3 (也就是連接電腦網卡的接口),它此時的速度只有 10M,跟上面所設定的一模一樣。

如果沒有設定 WOL 的話,你關機後,Port Status 會直接顯示成 Down (下線)。

之後就可以將電腦關機,然後直接透過手機連到 OpenWrt 發送 Magic 封包叫醒電腦。

按下發送鍵後,就會看到封包的資料,結構很簡單,類別 0x0842,內容給定 ffffffffffff 之後,再重複目標 MAC 地址十六次。

DA     (6)        | SA     (6)        | Type WOL (2)
3c 52 a1 29 6d 9e | 26 62 d2 e3 a6 83 | 08 42

Sync stream       | Repeat 16 times of MAC
ff ff ff ff ff ff | 3c 52 a1 29 6d 9e 3c 52 a1 29 6d 9e
3c 52 a1 29 6d 9e 3c 52 a1 29 6d 9e 3c 52 a1 29 6d 9e
3c 52 a1 29 6d 9e 3c 52 a1 29 6d 9e 3c 52 a1 29 6d 9e
3c 52 a1 29 6d 9e 3c 52 a1 29 6d 9e 3c 52 a1 29 6d 9e
3c 52 a1 29 6d 9e 3c 52 a1 29 6d 9e 3c 52 a1 29 6d 9e
3c 52 a1 29 6d 9e 3c 52 a1 29 6d 9e 

當網路介面卡收到這「魔法封包」後,電腦就會自己開機,進入 Windows 登入畫面!而此時交換器中 Port 3 的狀態也會恢復成正常的 1000M。

順帶一提,我網卡本身是 2.5 Gbps,但交換器只有支援 1 Gbps,所以上限 1000M 是正常的。

By Weil Jimmer


This entry was posted in Experience, The Internet, Note, OpenWrt By Weil Jimmer.

在 OpenWrt 設定 WireGuard VPN 白名單繞過本地網路 並且維持 Kill Switch 開啟

No Comments
-
發布於 2023-08-31 21:12:17

前言

這是我第四篇有關於軟路由的文章,上篇文章討論到如何設置 WireGuard VPN 介面,以及如何開啟 Kill-Switch。而這篇文章是接續上次的設定,做出延伸,在此分享心得給大家。

目標

為了讓自己的電腦所屬的區域網路 LAN 的流量只通過 WG0,而不通過 WAN,設置了防火牆規則當作 Kill-Switch,同時間啟動特定的路由表,讓 LAN 的網路 0.0.0.0/0 只走 WG0,這導致了一個問題:其他介面的流量進不來 LAN 中

以上是之前介紹過的家庭網路的示意圖。

在這種情況下,因為已經不走 WAN 了,同時間被路由表影響到,當電腦要訪問一級路由器 (也就是 192.168.0.1) 時也會被 block 掉流量,因為 192.168.0.1 是走 WG0 的,自然而然是不可能找得到目的地。從而 block 掉流量,其他地方來的也是,電腦可以收到封包,但是卻沒辦法回傳任何封包,因為沒有路由到那些地方。

為了解決這問題,必須得設定一個近網不走 VPN 的白名單規則,這樣才有機會讓 WAN 的流量到 LAN 中,或是讓 LAN2 的流量到 LAN 中。

安裝

為了解決上述情境,必須安裝一個軟體,VPN Policy-Based Routing。

opkg update
opkg install vpn-policy-routing luci-app-vpn-policy-routing

安裝完後重啟你的介面應該能在 VPN 中看到 VPN Policy-Based Routing 的 WebUI。

在這邊先設定要被 bypass 的路由規則。

這裡,我的電腦 IP 為 192.168.10.100,我設定 192.168.0.1 和 192.168.0.10 和 192.168.0.11 … 等不走 VPN 介面 (wg0)。

這裡只是路由策略,還記得上篇文章提到,我已經設定了 Kill-Switch,防火牆已經擋掉了 LAN 轉發到 WAN。所以,得到防火牆的通訊規則,新增例外。

設定允許 LAN 到 WAN (一級路由的網段下,也就是 192.168.0.0/24) 的一些位置,例如到路由器,到交換器,以及到我的手機。

到這步原則上就 OK 了,如果要到其他介面,例如 LAN2,可以參考下面的配置,不只是要設定 LAN 到 LAN2,同時間也要設定 LAN2 到 LAN,因為這是兩回事。

如果只設定一個方向的話,那就只有單向的訪問能正常運作,例如:當我設定 LAN 可轉發到 LAN2,那麼 PC 訪問 LAN2 下的設備是可以的,但反過來,LAN2 主動訪問 PC 會被拒絕。

這邊我防火牆規則並沒有設定到 192.168.0.11,所以我自然是沒辦法訪問到 192.168.0.11,即便我上面 VPN 設定 192.168.0.11 走 WAN 的路由。

因為 Kill-Switch 的關係,在防火牆規則裡面 LAN 不可以轉發到 WAN,所以沒辦法到 192.168.0.11,會被防火牆擋住(Kill-Switch)。但是可以到 192.168.0.150,因為防火牆規則中允許。

如果,我在防火牆通訊規則也加上允許轉發到 192.168.0.11 的話,那 PC 就可以成功訪問。VPN 路由策略和防火牆規則兩個都要設定,任何一者沒設定都沒辦法成功訪問。

這麼一來就可以不用關閉 wg0 也不用 關閉 kill-switch 就可以到軟路由的上層網段。

By Weil Jimmer


This entry was posted in General, Experience, The Internet, OpenWrt By Weil Jimmer.

使用 OpenWrt 與 WireGuard 實現 NordVPN、雙層 NAT、特定區域網路 VPN 與 Kill Switch

No Comments
-
更新於 2023-08-31 21:19:07

前言

繼上次玩 OpenWrt 的第三篇,這次是設定 WireGuard VPN,我查了不少文章,感覺很少人遇到我這問題,我覺得應該是我的網路配置的關係,在這邊分享踩坑經驗出來。

如果你的網路配置比較單純的話,不需要做太多設定,我是比較特殊一點,搞了很複雜的網路環境。

網路環境

首先介紹我家網路配置,多了交換機後有點複雜,下圖現實接線的示意圖,圖中的顏色用以區分網段,而粗細用以區分層級。

目前會想這樣設計,主要是想要隔離我家人與我的網路環境,讓他們干擾不到我,其實一台交換機就夠了。

不過交換機可沒有強大的防火牆阿,軟路由的防火牆才是真的強大。而且只有軟路由才可以辦得到我這複雜的需求。

下面一張圖是化簡後的網路布局,把交換器拔掉(實際上是接著的)的虛擬網路圖。

ASUS 硬路由在這邊是一級路由,而軟路由則是二級路由,透過軟路由的虛擬區網,已經做到兩個區域網路各自隔離(LAN 藍色、LAN2 紅色)。

目的

我的主要目的是想要我常用的電腦,也就是 LAN(藍色),加上 VPN,使我連線到公網是走 NordVPN 的路線。

不過這步有點小麻煩,因為 NordVPN 並沒有提供 WireGuard 的金鑰,但你還是有機會可以實現。

取得 NordVPN 的連線資訊

第一步,先在 Linux 環境中安裝工具包以及 NordVPN。

sudo apt install wireguard curl jq net-tools
sh <(curl -sSf https://downloads.nordcdn.com/apps/linux/install.sh)

第二步,連線到 NordVPN。

# 登入 NordVPN
sudo nordvpn login
# 設定協議
sudo nordvpn set technology nordlynx
# 連線
sudo nordvpn c 

第三步,取得金鑰(公鑰與私鑰)。

# 顯示私鑰
sudo wg show nordlynx private-key
# 顯示公鑰 與 伺服器資訊
curl -s "https://api.nordvpn.com/v1/servers/recommendations?&filters\[servers_technologies\]\[identifier\]=wireguard_udp&limit=1"|jq -r '.[]|.hostname, .station, (.locations|.[]|.country|.city.name), (.locations|.[]|.country|.name), (.technologies|.[].metadata|.[].value), .load'

上圖是我在 Kali Linux 中輸入指令的示意圖。

最後記得要中斷 NordVPN 的連線。

sudo nordvpn d

設置 OpenWrt

如果你的 OpenWrt 還不支援 WireGuard,請先安裝。

opkg install kmod-wireguard luci-app-wireguard luci-proto-wireguard wireguard wireguard-tools

設置 WireGuard

如果前面都沒問題,這裡就是關鍵步驟了。還記得先前拿到的私鑰和公鑰嗎?

第一步,開啟 OpenWrt 接口畫面 (Interface)。

第二步,添加新的接口,通常取名為為 wg0。按照你習慣設定即可。選好協議 WireGuard VPN 點添加。

第三步,一般設定中,填入你剛剛取得的私鑰,不要點到「生成密鑰」

IP 地址,就從你剛剛連線 NordVPN 的介面卡中取得(ifconfig)。

設定好後,就可以開啟下個介面,對端 (EndPoint),我一直覺得這翻譯很怪,總之就是遠端 Server 的意思,路由器本身當 Client 端連上 遠端 VPN Server。

第四步,填入剛剛取得的公鑰,允許的 IP 輸入 0.0.0.0/0

路由允許的 IP 這裡是一個大坑,如果你的網路環境很單純,直接打勾就可以了。這邊我暫時不打勾,因為我要自己設定路由。

如果你的軟路由是二級路由器,也不應該打勾,因為你會到不了 Gateway ,0.0.0.0/0 會路由你的 Gateway 地址,導致迴圈,封包出不去外網,至少我這邊的情況是這樣。

端點主機就填入 NordVPN 的主機位置。

端口保持預設值 51820,Keep-Alive 設定 25。

設定到這邊,VPN 的部分基本上就完工了!如果沒有生效,請重新開機。只要有動到路由表,建議都重新啟動軟路由會比較好。

路由表設定

# 新增路由表300,設定 wg0 路由 0.0.0.0/0
uci add network route
uci set network.@route[-1].interface="wg0"
uci set network.@route[-1].target="0.0.0.0"
uci set network.@route[-1].netmask="0.0.0.0"
uci set network.@route[-1].table="300"

# 新增 IP 網路規則,LAN 接口查詢路由表300
uci add network rule
uci set network.@rule[-1].in="lan"
uci set network.@rule[-1].lookup="300"

# 儲存網路規則 並 重啟網路
uci commit network
/etc/init.d/network restart

防火牆設定

首先一般情況,應該設定 lan 可以轉發到 wan 以及 wg0,如下圖。

到這裡,就算是完工了。但如果你要設定 Kill-Switch,就必須要把 wan 移出允許轉發到的目標區域。

設定防火牆 Kill-Switch (選)

要開啟 Kill-Switch 就必須把 lan 轉發到 wan 的選項移除掉,只能轉發到 wg0,這樣 lan 不走 VPN 就永遠到不了外網。

這是示意圖,直接把 LAN 到 WAN 的路由,用防火牆轉發規則擋掉,這樣 LAN 就出不去。

檢查

現在的 IP 應該是剛剛設定的 VPN Server 的 IP,如果不是,代表你某步驟做錯。

如果你有開啟 Kill-Switch,可以連上 wan 確認 Kill-Switch 有沒有工作。在這裡我的 WAN 是 192.168.0.1 (一級路由)。

或是你可以停止 wg0 接口,當 wg0 接口被切斷,那你會默認轉發到 wan,如果你可以成功上網,而且 IP 是你原本的真實 IP,那麼代表你 Kill-Switch 沒有設定成功。

測速

到了最令人振奮的時刻,軟路由進行對岸所謂的「科學上網」,最重要的就是性能了,根據你的軟路由 CPU 的好壞,可以決定你的網速可以跑到多快。

聽說 x86 CPU 是很不錯的,所以我也選擇了 Intel 的 J4125。

下面是我的測速結果:兩次測速,下載約 470 Mbps、上傳約 74 Mbps。

如果沒有連線 wg0,使用 wan 接口上網,(無 VPN)的結果如下,大概是直接跑滿目前申裝的網路,500 Mbps 上/下傳 。

參考資料:
https://www.ivpn.net/setup/router/openwrt-wireguard/
https://hiy.tw/2021/06/nordvpn_wireguard/

其他文章:
軟路由初體驗 在 PVE 8.0 上安裝 OpenWrt 22.03
使用 OpenWrt 踩坑經驗與心得 設置虛擬區域網路進行隔離
在 OpenWrt 設定 WireGuard VPN 白名單繞過本地網路 並且維持 Kill Switch 開啟

By Weil Jimmer


This entry was posted in General, Experience, The Internet, OpenWrt By Weil Jimmer.

 1 2 /2 頁)下一頁

Visitor Count

pop
nonenonenone

Note

不要和愚蠢的人發生爭執。

支持網路中立性.
Support Net Neutrality.

支持臺灣實施
無條件基本收入

今天是世界郵政日。

Quotes

我一定會老。

我一定會病。

我一定會死。

人生終須一別。

我們是業的主人。

Search

Music

Life Counter

22970days



Breaths between now and when I die.

Blogging Journey

4787days

since our first blog post.

Words Quiz


Quotes

The strong do what they can and the weak suffer what they must.

Privacy is your right and ability to be yourself and express yourself without the fear that someone is looking over your shoulder and that you might be punished for being yourself, whatever that may be.

It is quality rather than quantity that matters.

I WANT Internet Freedom.

Reality made most of people lost their childishness.

Justice,Freedom,Knowledge.

Without music life would be a mistake.

Support/Donate

This site also need a little money to maintain operations, not entirely without any cost in the Internet. Your donations will be the best support and power of the site.
MethodBitcoin Address
bitcoin1gtuwCjjVVrNUHPGvW6nsuWGxSwygUv4x
buymeacoffee
Register in linode via invitation link and stay active for three months.Linode

Support The Zeitgeist Movement

The Zeitgeist Movement

The Lie We Live

The Lie We Live

The Questions We Never Ask

The Questions We Never Ask

Man

Man

THE EMPLOYMENT

Man

In The Fall

In The Fall

Categories

Android (8)

Announcement (4)

Arduino (2)

Bash (2)

C (3)

C# (5)

C++ (1)

Experience (55)

Flash (2)

Free (13)

Functions (36)

Games (13)

General (65)

Git (3)

HTML (7)

Java (13)

JS (7)

Mood (24)

NAS (2)

Note (35)

Office (1)

OpenWrt (7)

PHP (9)

Privacy (5)

Product (12)

Python (4)

Software (11)

The Internet (27)

Tools (17)

VB.NET (8)

VR (1)

WebHosting (7)

Wi-Fi (5)

XML (4)