สร้าง VPS Ubuntu ฟรีบน Oracle Cloud ทีละขั้น
สร้าง VPS Ubuntu ฟรีโดยใช้ Oracle Always Free ที่เข้าเงื่อนไข แล้วตรวจการเชื่อมต่อ SSH จากคอมพิวเตอร์ของคุณ คู่มือนี้สมมติว่าบัญชีได้รับอนุมัติ มี capacity และมีโควตาเหลือเพียงพอ ผลลัพธ์คือสิทธิ์เข้าดูแลเครื่อง ยังไม่ใช่เว็บไซต์ที่พร้อมให้บริการ
VPSuntu · อัปเดต · อ่านประมาณ 6 นาที
เนื้อหาในคู่มือนี้
เลือกเครื่องและตรวจบัญชี
ใช้ AMD VM.Standard.E2.1.Micro, RAM 1 GB และอิมเมจ Ubuntu 24.04 LTS x86 ใน home region ตรวจป้ายสิทธิ์ฟรีของ shape และอิมเมจจริงใน Console ก่อนยืนยัน ต้องมีสิทธิ์จัดการเครื่อง เครือข่าย และ console connection
คำสั่งบนคอมพิวเตอร์ใช้ OpenSSH กับ Bash บน Linux, macOS หรือ WSL ขนาดเครื่องนี้เป็นตัวอย่างสำหรับฝึกดูแล ไม่ใช่คำรับรองความจุ ตรวจโควตาและเงื่อนไขทดลองก่อน ไม่รับประกันการสมัครหรือเครื่องว่าง และเครื่องที่ไม่ใช้งานอาจถูกเรียกคืน
สร้าง SSH key บนคอมพิวเตอร์
หากชื่อไฟล์มีอยู่แล้ว ให้ใช้ชื่อใหม่ตลอดขั้นตอนเพื่อไม่เขียนทับคีย์เดิม ตั้ง passphrase เมื่อระบบถาม
mkdir -p ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa -b 3072 -f ~/.ssh/oci-ubuntu-free
chmod 600 ~/.ssh/oci-ubuntu-free
cat ~/.ssh/oci-ubuntu-free.pubเก็บ private key ไว้ที่เครื่องอย่างปลอดภัย อัปโหลดเฉพาะไฟล์ .pub คีย์สำหรับเข้าสู่ระบบกับ host key ที่ใช้ยืนยันเซิร์ฟเวอร์เป็นคนละชุด จด compartment, region, ชื่อเครื่อง และ ID ใช้ชื่อ ubuntu-free-ssh สำหรับการทดลองนี้ แต่ยืนยันทรัพยากรด้วย OCID ด้วย
เตรียม subnet สาธารณะและจำกัด SSH
สร้าง VCN แยก เช่น 10.20.0.0/16 และ regional public subnet เช่น 10.20.1.0/24 หากจะเชื่อมกับเครือข่ายเดิมต้องเลือกช่วงไม่ซ้ำ สร้างและเปิด internet gateway แล้วเพิ่มเส้นทาง 0.0.0.0/0 ไปที่ gateway ใน route table ของ subnet เครื่องยังต้องมี public IPv4 ด้วย
ใน security list ตั้ง ingress แบบ stateful: source เป็น public IPv4 ปัจจุบันของคอมพิวเตอร์ตามด้วย /32, TCP, source ports All และ destination port 22 ใช้ IP ที่อินเทอร์เน็ตเห็น ไม่ใช่ IP ภายใน Wi-Fi เก็บกฎ egress และ ICMP ที่จำเป็น
แทนที่กฎ SSH ที่เปิดทั่วโลกในรายการเฉพาะงานนี้ กฎที่แคบกว่าไม่ได้ยกเลิกกฎเปิดกว้างอีกข้อ ตรวจทุก security list และ NSG ที่ผูกอยู่ ตัวอย่างนี้ไม่เพิ่ม NSG, NAT gateway หรือ load balancer ถ้า IP ต้นทางเปลี่ยนต้องแก้ /32
สร้าง Ubuntu instance ที่เข้าเงื่อนไข
ใน home region เปิด Compute → Instances → Create instance เลือก compartment และชื่อ ubuntu-free-ssh จากนั้นตรวจรายการนี้
บนหน้าจอขนาดเล็ก เลื่อนตารางด้านข้างเพื่อดูทุกคอลัมน์
| การตั้งค่า | ค่าของตัวอย่าง |
|---|---|
| Image | Canonical Ubuntu 24.04 LTS x86/amd64 ที่เข้าเงื่อนไข |
| Shape | VM.Standard.E2.1.Micro, AMD, RAM 1 GB |
| Boot volume | 50 GB พร้อม performance ที่เข้าเงื่อนไขและโควตาคงเหลือ |
| Network | public subnet ที่สร้างไว้และ public IPv4 |
| SSH key | ไฟล์ oci-ubuntu-free.pub |
| บริการเพิ่มเติม | ไม่เพิ่มดิสก์ ซอฟต์แวร์เสียเงิน หรือ managed service |
นับดิสก์เดิมรวมในโควตา boot/block 200 GB ของบัญชีด้วย ตรวจค่าประมาณทุกรายการ เครดิตทดลองที่บังยอดค่าใช้จ่ายไม่ได้ทำให้ทรัพยากรนั้นฟรีต่อเนื่อง
บันทึกข้อความนี้เป็นไฟล์บนคอมพิวเตอร์ แล้วอัปโหลดใน Advanced options → Management → Initialization script เพื่อให้ cloud-init แสดง public host key และ fingerprint ใน console ตอนบูต ไม่ได้ใส่ private key
#cloud-config
ssh:
emit_keys_to_console: trueหากไม่มี capacity ของเครื่องที่เข้าเงื่อนไข ให้หยุดและพิจารณาทางเลือก อย่าเลือก shape เสียเงินแทนโดยไม่ตั้งใจ เมื่อสถานะ Running ให้บันทึก instance OCID, boot-volume OCID และ public IPv4
ตรวจ host key จาก console history
ก่อนตอบรับ SSH ครั้งแรก เข้าสู่ OCI Console แล้วเปิด instance ที่ถูกต้อง ใน OS Management หรือ Resources เปิด Console connection และ Launch Cloud Shell connection เพื่อสร้างการเชื่อมต่อที่ต้องใช้สำหรับจับ console history โดยต้องมีสิทธิ์บัญชี
เปิด Console history → View current history แล้วเก็บบันทึกบูตแรก หา SSH HOST KEY FINGERPRINTS ที่ cloud-init สร้าง จดชนิดคีย์และ SHA256 ของ guest host key ไม่ใช่ fingerprint ของ authorized user key
fingerprint บนทรัพยากร Console connection ใช้ยืนยันปลายทาง console ของ OCI ไม่ใช่ SSH ปกติของ guest ถ้าไม่มีบันทึก guest host key ให้ใช้กระบวนการกู้คืนผ่าน console ตามเอกสารก่อน อย่าแทนด้วยผล ssh-keyscan ที่ยังไม่ได้ยืนยัน
เชื่อมต่อจากคอมพิวเตอร์และตรวจระบบ
แทน 203.0.113.20 ซึ่งเป็น IP ตัวอย่างด้วย public IPv4 จริง เปรียบเทียบชนิดคีย์และ SHA256 ที่ถามกับบันทึกบูต รับคีย์เฉพาะเมื่อข้อมูลตรงกัน
ssh -o StrictHostKeyChecking=ask -i ~/.ssh/oci-ubuntu-free ubuntu@203.0.113.20ชื่อผู้ใช้ของ Ubuntu platform image คือ ubuntu ไม่ใช่ opc หลังเข้าระบบให้รันบน VPS
cloud-init status --wait
cat /etc/os-release
dpkg --print-architecture
free -h
df -h /
sudo ss -lntp
sudo iptables -Sตรวจว่า cloud-init เสร็จสมบูรณ์ ระบบเป็น Ubuntu 24.04 และ amd64 ทรัพยากรตรงกับที่เลือก และ SSH ฟังพอร์ตอยู่ การเข้าได้ยืนยันเส้นทาง SSH นี้ ไม่ได้เผยแพร่เว็บหรือวัดความจุแอป
อัปเดตโดยรักษาไฟร์วอลล์ของอิมเมจ
เมื่อ provisioning เสร็จโดยไม่มีข้อผิดพลาด ให้ทบทวนรายการอัปเดตก่อนยืนยัน
sudo apt update
sudo apt upgradeเก็บ session เดิมไว้และทดสอบ SSH ใหม่อีกครั้ง หากต้องรีบูตให้ทำขณะเครื่องยังเป็นการทดลอง แล้วเชื่อมต่อและตรวจระบบซ้ำ การรีบูตจะตัด SSH ตามปกติ
อย่าติดตั้งหรือเปิด UFW บนอิมเมจ OCI Ubuntu นี้ เพราะอาจขัดกับ persistent firewall และกฎ iSCSI ที่จำเป็น รักษากฎเดิม เว็บไซต์ในขั้นถัดไปต้องเปิดทั้งเครือข่าย OCI และ guest firewall ด้วยวิธีที่รองรับ
บนหน้าจอขนาดเล็ก เลื่อนตารางด้านข้างเพื่อดูทุกคอลัมน์
| อาการ | ตรวจจุดแรก |
|---|---|
| SSH timeout | IPv4, gateway, /32 ปัจจุบัน และกฎทุกชุด |
| Permission denied (publickey) | ชื่อ ubuntu, private key และ public key ที่อัปโหลด |
| Host key ไม่ตรง | ตัวตน instance และบันทึกบูตที่เชื่อถือได้ |
| Provisioning หรือแพ็กเกจล้มเหลว | console history, cloud-init และการเข้าถึง repository |
ใช้คู่มือแก้ SSHตามข้อผิดพลาด หรือไปขั้นตอนเปิดเว็บโดยรักษาเงื่อนไขไฟร์วอลล์เฉพาะ Oracle
เก็บสำเนาหรือยุติเฉพาะการทดลองนี้
ก่อนพึ่งพาเครื่อง ให้เก็บข้อมูลและวิธีสร้างระบบไว้นอก VPS และทดสอบกู้คืน หากเลิกทดลอง ให้ส่งออกข้อมูลก่อน แล้วเลือก instance ตาม OCID ใน compartment ที่บันทึกไว้และใช้ Terminate
boot volume ถูกเก็บไว้โดยค่าเริ่มต้น เลือกลบถาวรเฉพาะดิสก์ที่ไม่ต้องใช้และตรวจสำเนาแล้ว ตรวจ volumes, backups, addresses และ console connections ที่เหลือตามรายการ ลบ subnet หรือ gateway เฉพาะเมื่อไม่มีงานอื่นใช้อยู่ ไม่ล้างทั้งบัญชีเพื่อปิดเครื่องเดียว และตรวจการใช้ทรัพยากรภายหลัง
คำถามที่พบบ่อย
นี่คือ VPS สาธารณะหรือ VM ในคอมพิวเตอร์?
เป็น VM ของผู้ให้บริการที่มี public address แต่จำกัด SSH ให้เข้าจาก public IP ของคุณ ไม่ต้องเปิดคอมพิวเตอร์ส่วนตัวค้างไว้เพื่อให้ VM ทำงาน
หาก shape ฟรีไม่ว่างควรทำอย่างไร?
รอหรือประเมินโปรแกรมอื่นที่มีเอกสารชัดเจน อย่าสมมติว่า shape หรือ region อื่นเข้าเงื่อนไขเดียวกัน