一鍵連回家里內網:OpenWRT上部署Wireguard VPN服務器的三個要點、減少折騰時間

因爲請了工人姐姐,小U在自家新裝了5部IPCAM(爲了美觀,我辛苦找到了隱藏式類針孔POE IPCAM)。同時出於網路安全考量,小U把所有IPCAM都設置爲只有內網才能訪問,杜絕影像流出的問題。而爲了在街上都能看到工人和BB,我就要爲家裏路由器加裝Wireguard VPN server,在街上用手機4G連回家裏的路由器,就可以睇到IPCAM。本文寫給有同樣需要的網友,總結我在Openwrt上部署Wireguard的經驗重點,幫你減少折騰的時間!

閱讀全文: 一鍵連回家里內網:OpenWRT上部署Wireguard VPN服務器的三個要點、減少折騰時間

爲什麼選擇Wireguard而不是OpenVPN?

Wireguard的性能比起OpenVPN快幾倍

Wireguard作爲OpenVPN的繼承者,在相同路由器硬件配置下的運行速度比起OpenVPN要快上幾倍,這篇文章:The Hunt for the Best Gigabit Home Network VPN (lopp.net) 和Wireguard官網 (Performance – WireGuard)測試Wireguard在相同硬件能達到1000Mbps的情況下OpenVPN只能達到可憐的258Mbps,相差4倍。

WIREGUARD VS OPENVPN Performance 性能對比

小U還在用幾年前的紅米AC路由器,硬件性能是上世紀了,所以用Wireguard是必然選擇。

WireGuard全圖形界面設置,不再需要打命令行

本次在OpenWRT上設置Wireguard VPN server,小U用圖形界面完成,全程沒有打command 沒SSH,實在方便。

要實現在OpenWRT圖像界面設置Wireguard VPN 伺服器,要從Software頁面安裝以下套件:

  • wireguard-tools 核心套件
  • luci-app-wireguard 圖形界面
  • qrencode 生成QR code讓手機可以scan 來添加Wireguard client的設定

小U參考了多篇Wireguard server的設定教程,其中這幾篇寫得比較好的:

小U還是在折騰中走了彎路。以下就是三個我認爲可以大大減少你在OpenWRT路由器上部署Wireguard的要點。

WireGuard Server 設置三個要點

1. Wireguard有自己的網段

Wireguard隧道本身就要和路由器LAN的網域分隔開,就如同VLAN的概念一樣,不能夠直接將Wireguard設置在路由器LAN的網段上。

例如上圖Interfaces頁面可見小U的LAN網域是在192.168.1.x/24,所以WireGuard VPN(wg0)的隧道網域設定了在10.0.0.x/24。

IP最後的/24是什麼意思?

這是CIDR notation,用於標註和分隔不同的Subnet IP範圍,數字越小,範圍越大。簡單講/24是IP最後那個點後的數字範圍是1~254,如果/32的話就只有一個值,不存在範圍。自己玩一下最實際:CIDR to IPv4 Address Range Utility Tool | IPAddressGuide

2. Wireguard隧道和路由器溝通需要設置防火牆放行

因爲Wireguard設立了一個新的VLAN,OpenWRT的路由和防火牆的默認設置是不認得Wireguard,是要人手設置讓Firewall放行Wireguard的數據。這裏有三個地方需要設置:

  1. Firewall – Zone Settings
  2. Port Forward 端口映射
  3. Traffic Rule

Firewall – Zone Settings

允許lan zone 和 wireguard zone互相傳輸數據

Port Forward 端口映射

把WAN口的wireguard端口開放並映射給本機(路由器自身)

Traffic Rule

放行從wan上的wireguard端口的數據給本機

提一下,很多教程都有提到設定一條防火牆規則,類似:

iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o br-lan -j MASQUERADE

這一條並不是必須的,如果需要用Wireguard連到家裏Router來上internet才需要這一條,只訪問家的內網就不需要。

3. Allow IPs / IP Address 的不同意義

最後說一下Wireguard 設置中在不通位置會多次碰到關於IP的設置,但他們的定義有不同,設置亂了就可能導致連不上或者連上了但沒流量。

第一個碰到的地方是Interfaces新建Wireguard interface的主設定頁面:IP Addresses那裏。意思是Wireguard隧道的IP和Wireguard伺服器本身的IP,所以/32結尾的是指定伺服器本身,而/24結尾的是指定Wireguard的網域範圍,類似DHCP的地址池。

第二個碰到地方是新增Peer (client)的頁面,Allowd IPs是指分派給這個Peer的IP,類似DHCP的指定地址。

第三個碰到IP的地方是在手機上設定Wireguard APP的時候,有一項是Allow IPs,這裏是指allow什麼IP會經過Wireguard VPN隧道,如果不在Allow IPs裏面的地址,就不會繞道Wireguard,直接用手機的網絡連線。實現分流。

例如小U的用途是只用Wireguard來看家裏的IPCAMs,那麼我的Allow IPs 就只設定爲內網網段:10.0.0.0/24和192.168.1.0/24。那麼我即使連線了Wireguard,但是用其他APP、普通上網都不會經過Wireguard繞道家裏。

經過這樣的設置,我就可以24小時都連着Wireguard,隨時開APP可以看到家裏的IPcam,存取NAS等等,但是不影響日常的上網瀏覽操作。

歡迎留言討論~

補充:Persistent KeepAlive的重要性?

小U增添了電犀牛R68S作爲主路由,萬年的紅米AC2100只作爲無線AP,所以WIREGUARD要重新設置過,我發現如果Peer中的Persistent Keep Alive 不設置,無法連線,設置成爲25可以正常連線。

2 Comments

你可以一針見血

by Upsangel
Logo