申請
原本上網都是利用Cloudflare提供的Warp+/Zero Trust稍微保護一下,
但是由於某些網站限制地區內容觀看,Warp只是隱藏IP,地區還是無解。
試著用了幾個VPN服務,影音播放還是被擋,只好自己弄一個。
Oracle很早以前就提供了Cloud Free Tier,有AMD跟ARM機器。
AMD的是VM.Standard.E2.1.Micro: 免費兩臺各1CPU & 1GB Ram;
ARM的是VM.Standard.A1.Flex: 最多 4CPU & 24GB Ram。
弄好AMD機器後,發現速度感人
只好選擇ARM機器。
ARM
創建ARM,選VM.Standard.A1.Flex
最多可選到4核&24GB Ram
Wireguard
機器跑起來後,登入系統,我選的是ubuntu 22.04。
安裝
sudo apt update
sudo apt install wireguard
產生密鑰
sudo -i
cd /etc/wireguard/
wg genkey | tee server.key | wg pubkey > server.pub # 產生server密鑰
wg genkey | tee client1.key | wg pubkey > client1.pub # 產生client1密鑰
wg genkey | tee client2.key | wg pubkey > client2.pub # 產生client2密鑰
設定伺服器
編輯/etc/wireguard/wg0.conf
[Interface]
Address = 172.16.0.1/24 # 記得選一個不同於現有的網段
SaveConfig = false
ListenPort = 123456 # 自定Port
PrivateKey = server.key # server私鑰
PostUp = /etc/wireguard/add-nat-routing.sh
PostDown = /etc/wireguard/remove-nat-routing.sh
[Peer]
PublicKey = client1.pub # Client1 公鑰
AllowedIPs = 172.16.0.2/32
[Peer]
PublicKey = client2.pub # Client2 公鑰
AllowedIPS = 172.16.0.3/32
新增兩個檔案add-nat-routing.sh和remove-nat-routing.sh
# add-nat-routing.sh
#!/bin/bash
IPT="/sbin/iptables"
#IPT6="/sbin/ip6tables" # 沒用到IPV6可以關掉
IN_FACE="ens3" # 記得更改成系統中網卡
WG_FACE="wg0" # WG NIC
SUB_NET="172.16.0.0/24" # WG IPv4 sub/net aka CIDR
WG_PORT="123456" # WG 自定port
#SUB_NET_6=":::/64" # WG IPv6 sub/net
## IPv4 ##
$IPT -t nat -I POSTROUTING 1 -s $SUB_NET -o $IN_FACE -j MASQUERADE
$IPT -I INPUT 1 -i $WG_FACE -j ACCEPT
$IPT -I FORWARD 1 -i $IN_FACE -o $WG_FACE -j ACCEPT
$IPT -I FORWARD 1 -i $WG_FACE -o $IN_FACE -j ACCEPT
$IPT -I INPUT 1 -i $IN_FACE -p udp --dport $WG_PORT -j ACCEPT
## IPv6 (Uncomment) ##
#$IPT6 -t nat -I POSTROUTING 1 -s $SUB_NET_6 -o $IN_FACE -j MASQUERADE
#$IPT6 -I INPUT 1 -i $WG_FACE -j ACCEPT
#$IPT6 -I FORWARD 1 -i $IN_FACE -o $WG_FACE -j ACCEPT
#$IPT6 -I FORWARD 1 -i $WG_FACE -o $IN_FACE -j ACCEPT
# remove-nat-routing.sh
#!/bin/bash
IPT="/sbin/iptables"
#IPT6="/sbin/ip6tables"
IN_FACE="ens3" # NIC connected to the internet
WG_FACE="wg0" # WG NIC
SUB_NET="172.16.0.0/24" # WG IPv4 sub/net aka CIDR
WG_PORT="123456" # WG 自定port
#SUB_NET_6="::::/64" # WG IPv6 sub/net
# IPv4 rules #
$IPT -t nat -D POSTROUTING -s $SUB_NET -o $IN_FACE -j MASQUERADE
$IPT -D INPUT -i $WG_FACE -j ACCEPT
$IPT -D FORWARD -i $IN_FACE -o $WG_FACE -j ACCEPT
$IPT -D FORWARD -i $WG_FACE -o $IN_FACE -j ACCEPT
$IPT -D INPUT -i $IN_FACE -p udp --dport $WG_PORT -j ACCEPT
# IPv6 rules (uncomment) #
#$IPT6 -t nat -D POSTROUTING -s $SUB_NET_6 -o $IN_FACE -j MASQUERADE
#$IPT6 -D INPUT -i $WG_FACE -j ACCEPT
#$IPT6 -D FORWARD -i $IN_FACE -o $WG_FACE -j ACCEPT
#$IPT6 -D FORWARD -i $WG_FACE -o $IN_FACE -j ACCEPT
更改/etc/sysctl.conf
net.ipv4.ip_forward=1
權限設好後,測試
sysctl -p
wg-quick up wg0
wg-quick down wg0
順利啟動後,註冊系統服務
systemctl start [email protected]
systemctl enable [email protected]
systemctl status [email protected]
設置防火牆
到Oracle網頁中,Coputer>Instances>Instance details
Primary VNIC裡的subnet>Default Security List 新增規則
開放WiredGuard用到的port,允許連入0.0.0.0/0,Portocol選UDP
測試連線
客戶端設定檔
[Interface]
Address = 172.16.0.2/32
PrivateKey = client1.key # client1 私鑰
DNS = 1.1.1.1, 1.0.0.1
[Peer]
AllowedIPs = 0.0.0.0/0
Endpoint = 123.456.789.xxx:123456 # serverip:port
PublicKey = server.pub # server公鑰
最後重開試一下,應該可以自動啟動服務。
參考