前言
在中國以外的地方就不使用V2Ray了,改用Wireguard
參考資料
- WireGuard-ArchWiki
- WireGuard VPN 設定與使用教學
- How to easily configure WireGuard
- How to easily configure WireGuard的翻譯
作法
Docker-compose.yml內容
1 | services: |
參數說明
| 參數 | 定義內容 |
|---|---|
| SERVERURL | 等於就是定義你的endpoint,你的外部IP或是Domain |
| SERVERPORT | 定義要使用的udp port,基本上跟後面ports要mapping的以及你的最外側FW設定要能對的起來 |
| PEERS | 你要用的peers,可以直接用名字命名然後在docker-compose up的時候會自動生成 |
| PEERDNS | 在Wireguard環境中你要用的DNS ip |
| INTERNAL_SUBNET | 預設的子網路,定義好後Server會用這個子網路的第一個IP,Peers就會依序用後面的 |
| ALLOWEDIPS | 這是你打算使用wireguard連上的範圍,0.0.0.0/0就是全流量走wireguard,可以定義一個subnet就只有這個subnet走wireguard |
使用說明
Android
基本上就是安裝同名子的App然後刷QR code就可以用了,Linuxserver.io的這個image很貼心的會幫你產生只要
docker logs wireguard就會看到各個peers的QR code,把圖片照下來或是存下來甚至是做了放到網頁上都可以(不過這個一個peer只允許一個連線也沒必要這樣)
Linux(Manjaro 21)
有蠻多種方式可以使用的,可以單純用network-manager這個GUI程式直接設定(不過ip的部份因為他不吃DHCP,所以要手動設定)
或是可以用wg-quick的方式,甚至可以先把wg0.conf寫好都確定了在import到network-manager裡面
wg-quick方式
1 | sudo pacman -S wireguard-tools |
需要先安裝module&tools
然後
1 | sudo mkdir /etc/wireguard |
其實在docker的設定檔(default in my docker-compose.yml is /var/lib/docker/volumes/config)內就有已經可以用的設定檔你可以把整個peer_$(Name)抓下來放到/etc/wireguard內把過於複雜的檔名改一下,基本上你用XXX.conf這個XXX就是你的interface_name
確定都好了之後
1 | sudo wg-quick up XXX |
這樣就會預設去找在/etc/wireguard/內名叫XXX的XXX.conf
確認連線都ok後就好了
不連了就
1 | sudo wg-quick down XXX |
把設定好的檔案import到Network-manager
1 | sudo nmcli connection import type wireguard file /etc/wireguard/${your_conf} |
就好了之後就可以滑鼠來操作
注意事項
- AllowIPs
若是你沒有在外側架設任何服務的話,是可以用0.0.0.0/0,這代表所有的封包都走wireguard從Server那邊出去,但是當你這樣設定的時候架在同個ip上的其他服務就會連不上,所以建議若你的網路上掛了其他服務,還是單純的定義某些區段走wireguard就好
- 若你不是直接拿server上產生的檔案來用的話,那就要很注意設定的內容務必要正確
1 | #Client設定範例 |