WireGuard Use Notes

Sonui發表於2024-07-17

由於家庭和公司各存在一套開發環境,同時外出時需要能夠連線至某臺伺服器上進行工作,所以需要一個組網的方案,考慮到安全性及效能選擇了 WireGuard。

說明

家庭網路

家庭網路中有一個 PVE 伺服器,開啟了兩個虛擬機器分別是 windows 10 和 Ubuntu 22.04;Widows 10 透過將顯示卡直通進去,用於遊戲娛樂;Ubuntu 22.04 作為開發機。由於手頭的 mac 裝置記憶體不夠,所以所有環境都是透過 VS Code Remote SSH 到 開發機上進行工作。

公司網路

公司網路透過一個獨立路由器建立出來一個子網,實體機安裝了 Ubuntu 22.04 作為開發機,同樣透過 VS Code Remote SSH 到開發機上進行工作。

網路拓撲

network topology diagram

搭建 WireGuard

為了方便管理,使用了 wg-easy 這個工具,具體的安裝和使用可以參考 wg-easy

CIDR 選擇了 192.168.3.0/24

compose.yaml

version: "3.8"

services:
  wg-easy:
    environment:
      - WG_HOST=x.x.x.x
      - PASSWORD=xxxx
      - WG_PERSISTENT_KEEPALIVE=15
      - WG_MTU=1420
      - WG_DEFAULT_ADDRESS=192.168.3.x
      - WG_ALLOWED_IPS=192.168.3.0/24
    image: myHarbor/sonui/wg-easy
    container_name: wg-easy
    hostname: wg-easy
    volumes:
      - ./data:/etc/wireguard
    ports:
      - "51820:51820/udp"
      - "127.0.0.1:51821:51821"
    restart: unless-stopped
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.ip_forward=1
      - net.ipv4.conf.all.src_valid_mark=1
  • 注:如果選擇 Podman 作為容器執行時會出現無法連通的問題,猜測需要配置網路

測試

對各裝置分配固定 IP 及配置啟動後控制皮膚如下

device list

在 MacBook 上配置好 SSH config

SSH config

ssh dev 連線到家庭網路的開發機,檢視 session 資訊

ssh session info

連線成功,可以看到 IP 地址是 192.168.3.7,說明
wg 組網成功

相關文章