起心動念

約一個月之前在架設網站時, 老同事 江龍 提到美西有免費的雲端主機可以用。當時抱著好奇心也去申請了, 參考 “甲骨文Oracle永久免費主機安裝WordPress-介紹與註冊帳號“。

申請之後只是粗略地試用了一下便擱置了, 想說遷移網站(WordPress+mySQL Database+修改網址名稱)也是很費功夫,再說 “樹梅派” 也吃不了多少度電,同時手邊也有一些令人 “好奇和懷念” 的事想要做 (CircuitLab,不需安裝, 只要有網路帳號就能做簡點的電路模擬了), 就先讓 “樹梅派” 撐一撐吧。時間很快, 一個月過去了, Oracle 來信通知試用期結束了!? 那100美元的信用我一毛都還沒用到耶!雖然是人家送的, 但還是覺的可惜。儘管試用到期, Oracle 還是信守承諾 (Always Free) , 目前我刻了兩台虛擬主機各有 50GB 的硬碟空間, 網速 2Gb, 還在免費額度之內。想一想, 拿來做什麼好呢?之前 DVD 有 “區碼”, 現在的 Netflix 好像也有分區, 有一些 ”美劇” 在台灣似乎看不到, 那就用 VPN 把虛擬主機拿來當作跳板吧!

參考

申請

參考

關於細節, 以上三篇貼文介紹很詳細, 最大坎是自己敢不敢寫下信用卡的卡號, 雖然只是像徵性的預刷一塊美金, 而且會退還, 但還是令人心裡糾結好久!

剛開始時, 關於CPU, 我選 AMD, 最後我都改選ARM. 總的運算效能不會差太多, 但後者搭配的記憶體和網速實在太 “夢幻” 了! 加總的記憶體有 24GB, 網速 2Gb, 硬碟 100GB! 前前後後建了四台虛擬主機, 由於手殘和思慮不周終結了兩台, 所以還在Always Free 額度之內。

我的雲端主機概況

ORACLE Cloud Compute Overview Instances Dedicated Virtual Machine Hosts Instance Configurations Instance Pools Cluster Networks Autoscaling Configurations Capacity Reservations Custom Images Search resources, services, documentation, and marketplace Instances in richrichhuang (root) Compartment US west (Phoenix) v An instance is a compute host. Choose between virtual machines (VMS) and bare metal instances. The image that you use to launch an instance determines its operating system and other software. O Each tenancy gets the first 3,000 OCPIJ hours and 18,000 GS hours per month for free to create Ampere Al Compute instances using the VM.Standard.A1 -Flex shape (equivalent to 4 OCPUs and 24 Ga of memory). Each tenancy also gets two VM.Standard.E2.1 .Mlcro instances for free. Learn more about Alwavs Free resources Create instance Name wula-vm State Running Running Public IP Private IP 10.0.0.15 10.0.0.112 Shape VM.Standard.A1 .Flex VM.Standard.A1 Flex OCPLJ count 2 2 Memory (GB) 12 12 Availabil AD-I

Oracle 在輔助建置時都用日期當作流水號, 好處是讓用戶知道這一些物件是何時建立的, 個人除了主機名稱是自己命名之外, 其他的就交給 Oracle去處理

帳單檢視

雖然終結了兩台虛擬主機, 但還是怕超額, 趕快看一下帳單

x ORACLE Cloud Search Databases Analytics & Al Developer Services Identity & Securiw Observability & Management Hybrid Migration Billing & Cost Management Governance & Administration Search resources, services, documentation, and market @ Billing & Cost Management Billing Invoices Payment History Upgrade and Paynænt Cost Management Cost Analysis Cost and Usage Reports

費用分析

Cost Management Cost Analysis Cost and Usage Reports Budgets Cost Analysis Reports Costs by Service Start date (LJTC) Jul 1, 2022 Save as New Report End date (UTC) Jul 8, 2022 Report Actions Granularity Daily Show Cost

ORACLE Cloud Search resources, services, documentation, and marketplace US West (Phoenix) v Date (UTC) Jul 8, 2022 Jul 7, 2022 Jul 6, 2022 Jul 5, 2022 Jul 4, 2022 Jul 3, 2022 Jul 2, 2022 Jul 1, 2022 Total (SGD) I Block Storage 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 C ompute Total (SGD) 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Telemetry 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 • Virtual C 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

虛擬主機建制之後, 最好再新增一組帳號, 以防操作失誤時可用來救援, 例如

sudo adduser rich

啟動帳密登入功能

sudo vim /etc/ssh/sshd_config

加註井字號, 取消 “不要” 就是要的意思

#PasswordAuthentication no

主機底定之後, 更新升級系統軟件

sudo apt update

sudo apt upgrade

安裝 OpenVPN 套件

參考

除了參考以上的貼文之外, 我個人的做法如下

先在 Windows 11的 WSL2 (Windows Linux Subsystem), 安裝 easy-rsa

sudo apt install easy-rsa

然後產生 OpenVPN 伺服端和用戶端所需要的相關憑證和密鑰 (這些事在虛擬主機做, 太慢, 會做很久! 如果做錯了還需要重做, 在虛擬主機做很費時! ), 加密演算法, 我選 ECC (橢圓曲線加密), 不選 RSA, 產出相關的憑證和密鑰之後, 再用 xftp 分別傳送到 “伺服端” 和 “用戶端”

例如 :

伺服端

ubuntu@wula-vm:~/easy-rsa$ ls /etc/openvpn

ca.crt client dh2048.pem myserver.conf server server.crt server.key ta.key

伺服端的設定

複製OpenVPN提供的範例

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/myserver.conf

ubuntu@wula-vm:~/easy-rsa$ grep -v “#” /etc/openvpn/myserver.conf | grep -v “;”

底下是修改過的, 有顏色的地方範例裡是注釋掉的, 我因應我的需求取消注釋

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
push "redirect-gateway def1 bypass-dhcp"
keepalive 10 120
cipher AES-256-CBC
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log /var/log/openvpn/openvpn.log
log-append /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1

基本上照OpenVPN的組態範例就可以了,

為了查找問題, 打開黃色的部分

為了當作網際網路路由, 打開橙色的部分

修改之後, 需重新啟動OpenVPN, 修改才會生效

sudo systemctl restart openvpn@myserver (myserver 對應 myserver.conf)

讓虛擬主機做為跳板, 還需要額外設定

sudo vim  /etc/sysctl.conf , 取消下列的井字號, 以便啟動 ip forwarding (啟動路由)

#net.ipv4.ip_forward=1

執行下列命令, 讓設定生效

sudo sysctl -p /etc/sysctl.conf

檢視虛擬主機的網路介面

ubuntu@wula-vm:~/easy-rsa$ ip addr 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast state UP group default qlen 1000
link/ether 02:00:17:08:ee:d6 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.15/24 metric 100 brd 10.0.0.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::17ff:fe08:eed6/64 scope link
valid_lft forever preferred_lft forever
5: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 500
link/none
inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
valid_lft forever preferred_lft forever
inet6 fe80::f134:3916:e2f8:a6d3/64 scope link stable-privacy
valid_lft forever preferred_lft forever

enp0s3” 是虛擬主機的雲端網路介面, 屬私人IP網段, 目前個人架設的虛擬主機類似下圖的第二種。OpenVPN跑起來之後, 會再新增一個介面 “tun0

OCI Region , VCN : 172.16.0.0/16 Public Subnet 172.16.0.0/24 Bare Metal Compute Private Subnet 172.16.1.0/24 Bare Metal Compute Block Storage ______j Block Storage -j Internet Internet Gateway NAT Gateway

防火牆

Oracle 的雲端網路已經架設了防火牆 (Security List), 作業系統ubuntu本身也啟動了防火牆, 選一個就可以了, 建議用雲端網路的防火牆即可, 所以關掉作業系統內的防火牆

#Flush iptables

sudo iptables -F

#List iptables, for double check

sudo iptables -L

因為 OpenVPN 使用 port 1194, UDP 進行連線, 所以要在雲端網路的防火牆開 port 1194, UDP, 如下

x Free Trial has You Can continue to Always Free resources. Unless you ORACLE Cloud Networking ApplicaOM Acceleration Load TSG Keys & Adnunisüa6«1

Resources Subnets (I) CIOR BlockslPrefrxes (1) Route Tables (I) Internet Gateways (1) Dynamic gateways Attachments (0) Network Security Groups (O) Security Lists (I) Security Lists in richrichhuang (root) Compartment Create Security List Available

Resources Ingress Rules (4) Egress Rules (1 ) Ingress Rules Add Ingress Rules 0.00.0,'0 000.0/0 10,000/16 O Selected port Ran ICMP ICMP UDP Destination Port Ran 1194 Al IOW. TCP traffic lor ports 22 SSH Re mote protocol ICMP tramc for: 3, 4 Destination eded and Dont was ICMP tramc for: 3 Destination U nreachable UDP tramc ports 1194 Shcnving 4 Items < lofl>

最後, 在作業系統內要新增一條 nat 規則

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o enp0s3 -j MASQUERADE

這一條規則告訴作業系統, 從 ens0s3 介面送出去的網路封包要進行 “轉址” 動作, 因為如果沒有 “轉址”, 當封包抵達目的地時, 目的地的回應封包會不知道要往哪裡送

用下列命令檢視確認一下

sudo iptables -t nat -L

如果沒有問題, 用下列命令儲存設定

sudo netfilter-persistent save

用戶端

在個人電腦安裝 應用程式OpenVPN

把 ca.crt, client.crt, client.key 串成一個檔案, 例如 ruma.ovpn, 方便 OpenVPN 應用程式使用

ruma.ovpn - client dev tun proto udp float nobind cipher AES-256-CBC ; comp-Izo adaptive ;comp-lzo no resolv-retry infinite remote-cert-tis server persist-key persist-tun remote 1194 tls-auth ta .key 1 auth-nocache - EGIN CERTIFICATE---- DzENMAsGAIUEAwwEcnVtYTAeFweymjA3MDcwND14NTVaFwezmjA3MDQwND14NTVa LSHv71LAcpctHFVf+5JzKxcueVNrEFIDduGC7Hx21eJYjkAHE+Rc3vopuhP5d7Ck IATa8ZJ7MXUET9c5mwDoFt9FjHLEQGCiSFx5YmcXEr4ioRZzFRuA5GPgVGdU+6DS 779kXafSRJ1eaeoDteknZXFqtDIAS2gSQA28TJ1/VaOBiTCBhjAdBgNVHQ4EFgQU ei2r4EVFTxeT1i3xuaom7Rfw6rewsgYDVRejBEmwQYAuei2r4EVFTxeT1i3xuaom 7Rfw6r2hE6QRMA8xDTALBgNVBAWBHJ1bWGCFF7mms7fHA13Pec6DV77Gz2E9ire MAwGAIUdEwQFMAMBAf8wCwYDVRePBAQDAgEGMAoGCCqGSM49BAMEA4GMADCBiA3C AfcwPKj26Ksxm+hwye14G99z+WSdVkgsxi1jotcf9f0FgDAtqdxouuvrKthbd5Je --END CERTIFICATE----- Unix (IF) o UTF-8 x

把設定檔移動到個人家目錄的 OpenVPN\config資料夾下, 如下

OS RichHuang OpenVPN config ruma_ovpn c 2022/7/8 12:45 2022/7/7 02:24 openVPN config File KEY

測試

VPN 連線前:

WiFi是我目前的網際網路

TP-Link 7E4g SG Ethernet 3 07 : 57 2022/7/8

網際網路從我的分享器((TP Link AX50)進出

IPv4 127.0-0.1 127.255 . 255 172.18.240.0 172.18.240. ı 172.18.240.1 172.18.240.1 172.18.255.255 172.18.240.1 192.168.3.0 192. 168.3. 105 192.168.3.255 192.168.56.0 192.168.56.1 192.168.56.255 224.0.0 0 224.0.o:o 224.0.0.0 224.0.0.0 255 .255 . 255 . 255 255 . 255 . 255 . 255 255 . 255 . 255 . 255 255 . 255 . 255 . 255 255 .255 . 255 . 255 255 . 255 . 255 . 255 255.255.240.0 255 . 255 . 255 . 255 255 . 255 . 255 . 255 255 . 255 . 255 -o 255 . 255 . 255 . 255 255 . 255 . 255 . 255 255 . 255 . 255 -o 255 . 255 . 255 . 255 255 . 255 . 255 . 255 240.0.0.0 240.0.0.0 240.0.0.0 240.0.0.0 255 .255 . 255 . 255 255 . 255 . 255 . 255 255 . 255 . 255 . 255 255 . 255 . 255 . 255 127*0.011 127.0.0.1 192. 168.3. 105 192. 168.3. 105 192. 168.3. 105 192.168.56.1 192.168.56.1 192.168.56.1 127.0-0.1 192. 168.56.1 192. 168.3. 105 172.18.240.1 127.0-0.1 192. 168.56.1 192. 168.3. 105 172.18.240.1 331 331 5256 5256 5256 291 291 291 281 281 281 331 281 291 5256 331 281 291 5256

ip location 顯示我的 ip 地址是在台灣台北

c 9 iplocation.net/ip-lookup?query= 125.224.65.102 iplocation IP TRACKER BETA MY IP HIDE IP CHANGE IP Where is Geolocation of an IP Address? Your public IP Address is 125.224.65.102. Hide IP with VPN IP Location Finder IPv4, IPv6 or Domain Name Signu REVIEWS VPN IP Lookup Here are the results from a few Geolocation providers. Is the data shown below not accurate enough? Please read geolocation accuracy info to learn why. Do you have a problem with IP location lookup? Report a problem. Geolocation data from IP2Location (Product: DB6, updated on 2022-7-1) IP Address 125.224.65.102 h'.tps•//vvw.•.• Inlocatlan net Country Taiwan (Province of China) O nization Region Taipei Latitude City Taipei Lon itude

SPEEDTEST, 我的 HiNet 方案是 100Mb下行, 40Mb上行 , 測試數據破表了!

@ SPEEDTEST speedtest.net/result/13382333061 SHARE Apps Result ID 13382333061 Analysis Network RESULTS Developers SETTINGS @ DOWNLOAD Mbps 109 61 Ping Connections Multi 0 12 o UPLOAD Mbps 45.59 @ 35 0 37 HOW LIKELY IS IT THAT YOU WOULD RECOMMEND HINET TO A FRIEND OR GO COLLEAGUE? 10 Extremely Likely 2 Asia Pacific Telecom Hsinchu Change Server HiNet 125.224 65.102 Not at all likely Having Internet Problems?

進行VPN連線 :

點擊OpenVPNGUI執行用戶應用程式

、 ◎ い ~ 0 0 ) 斎 第 を 内 を 当 、 当 一 「 一 d Ope 一 、 N

0 2 2 / 8

Reconnect 示 狀 示 紀 存 碼 Import 圁 英 ㄅ 下 午 0 & 08 0 2022 / 8

連線中…

OpenVPN (ruma) Fri Jul 8200900 2022 '•Mndows version 10.0 (%ndows 10 or greater) 64bit Fri Jul g 200900 openssL 3 May2022, LZ0210 Fri Jul 8 2022 TCP'UDP: Preserving recent* used remote address: IAF_lNET112g.146.182.214: 1 1 g Fri Jul 82009002022 UDP link (not bound) Fri Jul g UDP link remote 146, 18221471194 Fri Jul 8 200901 2022 Peet connection Initiated with (AF_lNET112g_ 146.182214:1194 Fri Jul 8200901 2022 open_tun Fri Jul g 200901 2022 TAP-%ndows6] opened Fri Jul 8 2022 Notited TAP-Windows driver to set a DHCP IPJnetmask 01108.0_61255.255255252 Fri Jul 8200901 2022 Successfu ARP Flush on *Iterface [54] (OE9FD9B7.BCAB4C57-9E6D086AID6El Fri Jul g 200901 set to 1500 on interface 54 using service Bytes B out 42 B openVPN 11.2900/257

連線成功

丿 丨 丨 「 N GI.JI -z,tgG4:ruma 自 : 2022 / / 8 下 081 〕 9 - 108DE 下 午 0810 ㄅ 0 圁 英 2022 / 8

VPN 連線後

網際網路的圖示改變了

Network 5 TP-Link 7E48 5G Ethernet 3 —F F 08:10 2022/7/8

ipconfig /all, 檢視Windows主機的網路介面

, 命 提 示 不 明 的 (_)penVPN TAP-Windows6: 連 線 特 定 DNS 尾 碼 描 述 實 體 位 址 DHCP 已 啟 用 自 動 設 定 啟 用 連 結 - 本 機 IPv6 位 址 . 月 月 四 好 日 日 項 午 午 選 下 下 IPv4 位 址 子 網 路 遮 罩 租 用 取 得 租 用 到 期 預 設 閘 道 DHCP 伺 服 器 DHCPv6 IAID DHCPv6 用 戶 端 DUID. 卜 0 卜 卜 0 卜 29-07- | 8 - 3A - - 7D -64- E3 -93 - | 5 . 啟 用 NetBIOS over Tcpip 無 線 區 域 網 路 介 面 卡 Local Area Connection* | : 媒 體 狀 態 . 媒 體 已 中 斷 連 線 連 線 特 定 DNS 尾 碼 描 述 . Microsoft Wi-Fi Direct Virtual Adapter 實 體 位 址 - 7D -64- E3 -93 - | 6 DHCP 已 啟 用 是 自 動 設 定 啟 用 是 無 線 區 域 網 路 介 面 卡 Local Area Connection* 2 : 體 中 坤

route print, 檢視Windows主機的路由表

IPv4 0.0.0.0 0.0.00 10.8. 10.8.0.6 10.8. 0.1 192.168.3.1 127. 127. 0. 4 7 0.0.0 0. 255 . 255 . 255 . 252 255 . 255 . 255 . 255 255 . 255 . 255 . 255 255.0.0 0 255 .255 . 255 . 255 255 . 255 . 255 . 255 128.0.00 255 .255 . 255 . 255 255.255.240.0 255 . 255 . 255 . 255 255 . 255 . 255 . 255 255 . 255 . 255 -o 255 . 255 . 255 . 255 255 . 255 . 255 . 255 255 . 255 . 255 -o 255 . 255 . 255 . 255 255 . 255 . 255 . 255 192. 168.3. 105 10.8.0. 10.8.0. 10.8.0. 6 6 6 6 127. 127. 127. 10.8.0. O.O. I O.O. I O.O. I 35 281 291 127.255 . 255 . 255 128.0.00 2i4 129. 146. 182. 172. 18.240.0 172. 18.240.1 172. 18.255.255 192.168.3.0 192. 168.3. 105 192.168.3.255 192.168.56.0 192.168.56.1 192.168.56.255 224. 224. 224. 224. 22-1 0.0.0 0.0.0 0.0.0 0.0.0 000 240. 240. 240. 240. 0.0.0 0.0.0 0.0.0 0.0.0 10.8.0.5 192. 168.3.1 192. 168.3.105 172. 18.240.1 172. 18.240.1 172. 18.240.1 192. 168.3. 105 192. 168.3. 105 192. 168.3. 105 192.168.56.1 192.168.56.1 192.168.56.1 127.0.0.1 192. 168.56.1 192. 168.3. 105 172. 18.240.1 2-10 000 281 281 281 331 331 331 5256 5256 5256 291 291 291 281 281 281 331 281 291 5256 281

ip location 顯示我的 ip 地址是在美國鳳凰城 [Phoenix,Arizona (US)]

c 9 iplocation.net iplocation .neE HIDE IP REVIEWS CHANGE IP Where is My IP Location? Your IP Address is 129.146.182.214 Hide IP with VPN IP Location Finder IPv4, IPv6 or Domain Name This is the public IP address of your computer, and the accuracy of geolocation mav vary. Do vou have a problem with IP location lookup? Report a problem. & Signup WEB PROXY IP Lookup IP Address Details IPv4 Address IPv6 Address IP Location 129.146.182.214 Not detected Hide my IP with VPN Phoenix, Arizona (US) (Details]

SPEEDTEST, at 20:31 on 2022/07/08, 此時應該是網路尖峰? 還是離峰? (大家在用餐?)

-3' C O speedtest.net/resuIt/13382302410 SPEEDTEST Apps Analysis Network RESULTS Developers Open SETTINGS Enterprise Get The Global Threat Report CrowdS1rike@ Result ID 13382302410 SHARE (O GO @ DOWNLOAD Mbps 68.02 ping Connections Multi Synexi.de Phoenix. AZ Change Server Oracle Cloud 129.146.182.214 0 151 o UPLOAD Mbps 36 45 @ 154 0 154 HOW DOES YOUR NETWORK AVAILABILITY COMPARE WITH YOUR EXPECTATIONS? 2 Much worse 3 As expected 4 5 Much better Having Internet Problems?

在這個時段能有這樣的速度, 很可以!

犯錯得到的教訓

虛擬主機的登入方式預設採用密鑰方式, Oracle 提供的 Ubuntu鏡像(作業系統)預設用戶名稱 ubuntu, 預設登入方式不用密碼 (使用密鑰), 不允許空密碼。因為要用 虛擬機加VPN 充當分享器來執行跳板的角色, 所以有些路由和 iptables 要設定, 初始階段設定不到位或設定錯誤在所難免。也因為這樣, 不小心把虛擬主機的七竅封了六竅, 只剩 Serial Console可以救命。Oracle官方文件提到 Serial Console 可以不用登入直接進系統(Shell),但僅限 Oracle Linux,Ubuntu Linux 沒有這個功能支援。唉!最後,砍掉重練。在學到教訓之後,馬上在新增的主機建製新帳戶,新增密碼,起動帳密登入方式,增大容錯空間!

從 Cloud Shell 用備用帳號登入 (帳號密碼都要)

ORACLE Cloud Cloud Shell infomation as of Fri Jul g Search resources, services, documentation, and marketplace UTC US west (Phoenix) v load: Processes Usage of /•. 3.3% of 48.296B Users logged M«nory usage: Swap usage : IP•.u1 address address for enpes3 for tune: : le.e.e.15 le.8.e.1 e updates can be applied immediately. The progræs included with the ubuntu syst«n are free software; the exact distribution terTS for each progra are described in the individual files in /usr/share/doc/•/copyrieht. ubuntu cc—s with ABqLtJTELY "ARRANTY, to the extent permitted by applicable 10'. ric*ula-w: pro TTY 9201 AMAe 9221 ttyNtAg bash ps

ttyAMA0, 代表這個Console 是serial port

Oracle Could Always Free 初體驗, 犯錯難免, 但要留容錯空間

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *