Wireguard 客戶端啟動後無法從本地網路存取時的解決方案 (搭配 Nextcloud)

您好,我是無能。
Wireguard 雖然方便又實用,但有時會遇到無法進行本地通訊的問題,這讓人很困擾。
特別是現在我正嘗試建置 DLNA/UPnP 伺服器等,如果無法使用本地通訊會非常麻煩。
因此,我將嘗試解決這個問題。
使用 `netstat -nr` 檢查 `wg-quick` 啟動和停止 Wireguard 後的路由。
wg-quick up wg0
netstat -nr
目標站點 閘道 網路遮罩 標誌 MSS 視窗 irtt 介面
0.0.0.0 192.168.10.1 0.0.0.0 UG 0 0 0 eth0
999.999.0.0 0.0.0.0 255.255.0.0 U 0 0 0 wg0
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 wg0
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
哦。※我會隱藏一些可能需要隱藏的部分。
wg-quick down wg0
netstat -nr
目標站點 閘道 網路遮罩 標誌 MSS 視窗 irtt 介面
0.0.0.0 192.168.10.1 0.0.0.0 UG 0 0 0 eth0
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
這樣看來,`wg0` 和 `eth0` 可能存在衝突,或者說 Wireguard 啟動後覆寫了路由設定。
如果追求最高安全性,這樣做是沒問題的,但即使不進行家用路由器的埠映射,只要 Wireguard 連線成功,它就能運作,因此本地安全性應該能得到一定程度的保護。所以,我將更改 Wireguard 的 IP。
伺服器端
sudo vi /etc/wireguard/wg0.conf
[Interface]
Address = 10.1.0.1/24
PrivateKey = xxx
ListenPort = 51820
[Peer]
PublicKey = xxx
PreSharedKey = xxx
AllowedIPs = 10.1.0.2/32
PersistentKeepalive = 25
客戶端
sudo vi /etc/wireguard/wg0.conf
[Interface]
PrivateKey = xxx
Address = 10.1.0.2/24
DNS = 8.8.8.8
[Peer]
PublicKey = xxx
PreSharedKey = xxx
Endpoint = xxx:51820
AllowedIPs = 10.1.0.0/24
PersistentKeepalive = 25
在兩端輸入以下內容並重新啟動
sudo wg-quick down wg0 && sudo wg-quick up wg0
伺服器端
目標站點 閘道 網路遮罩 標誌 MSS 視窗 irtt 介面
0.0.0.0 192.168.10.1 0.0.0.0 UG 0 0 0 eth0
999.999.0.0 0.0.0.0 255.255.0.0 U 0 0 0 wg0
10.1.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wg0
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
完美。
這樣就成功存取了本地機器的 IP。
因此,現在可以順暢地在本地觀看完全自製的 YouTube 影片和音樂了。
而且音樂播放也非常流暢。
從家裡上傳影片等內容,如果透過 VPS 在 VPN 上傳,不僅浪費頻寬,最重要的是太耗時了。
現在,大約 5GB 的影片也能在不到 2 分鐘內上傳,這非常方便。
那麼,下次再見。
請多指教。