วิธีตั้งค่า OpenVPN บน Ubuntu
ใช้โปรไฟล์ .ovpn บน Ubuntu ผ่านเทอร์มินัลหรือ NetworkManager ทดสอบรันครั้งแรก เก็บรหัสผ่าน ตั้งเป็นบริการ systemd จัดการ DNS และตารางข้อผิดพลาดที่พบบ่อย
อ่าน 10 นาทีอัปเดตเมื่อ 15 ต.ค. 2569โดย XPASS Editorial Team

OpenVPN อยู่มานานแล้ว และอายุนั้นเป็นข้อดี เพราะผู้ให้บริการ VPN เกือบทุกรายและระบบที่ติดตั้งเองเกือบทุกแบบให้โปรไฟล์ OpenVPN ได้ และ Ubuntu ใช้ได้ด้วยแพ็กเกจเดียว ราคาของความยืดหยุ่นนี้คือไฟล์ตั้งค่าที่มีตัวเลือกมากมาย ล็อกที่เต็มไปด้วยข้อความที่ไม่คุ้นตา และรายละเอียดเรื่อง DNS เฉพาะของ Ubuntu ที่ทำให้มือใหม่สะดุด
คู่มือนี้พูดถึงสิ่งเดียวคือโปรไฟล์ .ovpn ที่พร้อมใช้ และทำให้มันทำงานถูกต้องบน Ubuntu ครอบคลุมการทดสอบรันครั้งแรก การจัดการข้อมูลล็อกอินอย่างปลอดภัย การรัน OpenVPN เป็นบริการ DNS ตัวเลือกบนเดสก์ท็อป และตารางแปลข้อความในล็อกเป็นสิ่งที่ต้องทำ เราไม่อธิบายการทำงานภายในของ OpenVPN ซึ่งมีอยู่ในบทความ OpenVPN คืออะไร และไม่เปรียบเทียบกับโปรโตคอลใหม่ๆ ดู WireGuard เทียบกับ OpenVPN หากคุณเป็นลูกค้า XPASS วิธีที่รองรับคือแอป VPNclient ฟรีพร้อมข้อมูลล็อกอินในหน้า My Pass ตามที่อธิบายใน คู่มือ Linux ส่วนขั้นตอนในบทความนี้สำหรับคนที่ถือโปรไฟล์ OpenVPN ของตัวเอง
เทอร์มินัลหรือเดสก์ท็อป เลือกเส้นทางก่อน
Ubuntu มีสองวิธีหลักในการรัน OpenVPN เลือกวิธีเดียวแล้วใช้ต่อเนื่อง เพราะการผสมกันเป็นต้นเหตุของความสับสนบ่อยครั้ง
| เส้นทาง | เหมาะกับ | จุดแข็ง | จุดอ่อน |
|---|---|---|---|
คำสั่ง openvpn ในเทอร์มินัล |
ทดสอบ เซิร์ฟเวอร์ แก้ปัญหา | เห็นล็อกครบ ไม่ต้องติดตั้งเพิ่ม | ต้องจัดการ DNS และการเริ่มเอง |
บริการ systemd (openvpn-client@ชื่อ) |
เครื่องไม่มีจอ อุโมงค์เปิดตลอด | เริ่มตอนบูต รีสตาร์ตเมื่อล้มเหลว | บนแล็ปท็อปบางเครื่องเริ่มก่อน Wi-Fi พร้อม |
| ปลั๊กอิน NetworkManager | Ubuntu เดสก์ท็อปและแล็ปท็อป | มีไอคอนถาด รับมือการย้ายเครือข่าย เก็บรหัสในกุญแจของระบบ | ล็อกละเอียดน้อยกว่า ต้องติดตั้งแพ็กเกจเพิ่ม |
ขั้นตอนที่เหมาะกับคนส่วนใหญ่คือ ทดสอบด้วยคำสั่งตรงๆ ก่อน เพราะล็อกบอกว่าผิดตรงไหน เมื่อใช้ได้แล้วจึงย้ายไปบริการ systemd หรือ NetworkManager ตามว่าเครื่องเป็นเซิร์ฟเวอร์หรือแล็ปท็อป

ติดตั้ง OpenVPN และอ่านโปรไฟล์ของคุณ
ติดตั้งไคลเอนต์จากคลังมาตรฐาน
sudo apt update
sudo apt install openvpn
openvpn --version
จากนั้นเปิดดูไฟล์ .ovpn ก่อนรัน มันเป็นข้อความธรรมดา เปิดด้วยตัวแก้ไขข้อความได้เลย โดยมากจะเจอบรรทัดประมาณนี้
- client บอก OpenVPN ให้ทำหน้าที่ไคลเอนต์ ไม่ใช่เซิร์ฟเวอร์
- dev tun ขออินเทอร์เฟซอุโมงค์แบบกำหนดเส้นทาง
- proto udp หรือ proto tcp เลือกการขนส่งข้อมูล บทความ UDP กับ TCP ใน OpenVPN อธิบายข้อดีข้อเสีย
- remote โฮสต์ พอร์ต ระบุเซิร์ฟเวอร์และพอร์ต
- auth-user-pass หมายถึงจะถามชื่อผู้ใช้และรหัสผ่าน
- remote-cert-tls server ให้ไคลเอนต์ตรวจว่าใบรับรองของเซิร์ฟเวอร์ออกมาเพื่อใช้เป็นเซิร์ฟเวอร์
- บล็อก ca, cert, key หรือ tls-auth เก็บใบรับรองและคีย์ อาจเป็นไฟล์แยกหรืออยู่ในไฟล์เดียวระหว่างแท็ก
- verb 3 กำหนดความละเอียดของล็อก
อย่าแก้สิ่งที่ไม่เข้าใจ แก้บรรทัดรหัสลับหรือใบรับรองผิดบรรทัดเดียว handshake ก็พังได้ หากต้องการลองแก้ ให้ทำสำเนาก่อนด้วย cp profile.ovpn profile-test.ovpn
รันครั้งแรกแบบเบื้องหน้า
รันโปรไฟล์ตรงๆ เพื่อให้เห็นทุกอย่างที่มันพิมพ์
sudo openvpn --config ~/Downloads/profile.ovpn
ถ้าโปรไฟล์ใช้ auth-user-pass OpenVPN จะถามชื่อผู้ใช้แล้วรหัสผ่าน พิมพ์ให้ระวัง รหัสผ่านจะไม่แสดงตัวอักษร ดูผลลัพธ์ตามจุดสำคัญเหล่านี้
- การค้นหาหรือเชื่อมต่อเซิร์ฟเวอร์ ถ้าแปลงชื่อโฮสต์ไม่ได้ แสดงว่าอินเทอร์เน็ตพื้นฐานหรือ DNS มีปัญหา
- TLS handshake บรรทัดเกี่ยวกับการตรวจใบรับรองควรจบโดยไม่มีข้อผิดพลาด
- บรรทัดที่มีคำว่า Initialization Sequence Completed นี่คือวิธีที่ OpenVPN บอกว่าอุโมงค์ขึ้นแล้ว
- อินเทอร์เฟซใหม่ชื่อ
tun0ตรวจด้วยip addr show tun0
ระหว่างที่รันอยู่ ให้เปิดเทอร์มินัลที่สองเพื่อทดสอบทราฟฟิก ลอง ping -c 3 ไปยังที่อยู่ที่รู้จัก แล้วโหลดเว็บ ดูรายการทดสอบครบได้ที่ วิธีตรวจว่า VPN ทำงานหรือไม่ หยุดอุโมงค์ด้วย Ctrl+C ในเทอร์มินัลแรก
เก็บข้อมูลล็อกอินอย่างปลอดภัย
การพิมพ์รหัสผ่านทุกครั้งปลอดภัยแต่เสียเวลา และทำให้เริ่มโดยไม่ต้องมีคนอยู่ไม่ได้ ทางเลือกที่ใช้กันทั่วไปคือไฟล์ข้อมูลล็อกอินเล็กๆ
sudo nano /etc/openvpn/client/credentials.txt
ใส่ชื่อผู้ใช้บรรทัดแรก รหัสผ่านบรรทัดที่สอง แล้วล็อกสิทธิ์ไฟล์
sudo chown root:root /etc/openvpn/client/credentials.txt
sudo chmod 600 /etc/openvpn/client/credentials.txt
แล้วแก้บรรทัดในโปรไฟล์เป็น auth-user-pass /etc/openvpn/client/credentials.txt
ขอพูดตรงๆ เรื่องข้อแลกเปลี่ยน ไฟล์นี้ป้องกันการเปิดอ่านโดยไม่ตั้งใจ แต่ไม่ป้องกันคนที่มีสิทธิ์ root หรือขโมยดิสก์ไป ถ้าเครื่องใช้ร่วมกันหรือดิสก์ไม่ได้เข้ารหัส ให้พิมพ์รหัสเอง หรือใช้เส้นทางเดสก์ท็อปที่รหัสถูกเก็บในกุญแจของระบบ อย่าเก็บรหัสผ่านในตัวโปรไฟล์ และอย่านำไฟล์ใดไฟล์หนึ่งขึ้นที่เก็บโค้ด หากสงสัยว่ารหัสรั่ว ให้เปลี่ยนรหัสผ่าน VPN ทันทีที่หน้าบัญชี
รัน OpenVPN เป็นบริการ
ถ้าต้องการอุโมงค์ที่เริ่มเอง Ubuntu มียูนิตเทมเพลตของ systemd ซึ่งคาดหวังโปรไฟล์ในโฟลเดอร์เฉพาะพร้อมนามสกุล .conf
sudo cp ~/Downloads/profile.ovpn /etc/openvpn/client/work.conf
sudo systemctl start openvpn-client@work
sudo systemctl status openvpn-client@work
คำหลัง @ คือชื่อไฟล์ที่ไม่มี .conf หากต้องการให้เริ่มตอนบูต ให้เพิ่ม
sudo systemctl enable openvpn-client@work
อ่านล็อกของบริการที่กำลังทำงานด้วย
sudo journalctl -u openvpn-client@work -f
มีคำเตือนสองข้อ บริการที่เริ่มก่อนเครือข่ายพร้อมอาจล้มเหลวบนแล็ปท็อป ควรทดสอบรีบูตทั้งตอนมีและไม่มี Wi-Fi และถ้าโปรไฟล์อ้างถึงไฟล์ใบรับรองด้วยพาธสัมพัทธ์ ให้คัดลอกไฟล์เหล่านั้นไปไว้โฟลเดอร์เดียวกัน หรือเปลี่ยนเป็นพาธเต็ม เพราะบริการไม่ได้รันจากโฟลเดอร์บ้านของคุณ
DNS รายละเอียดของ Ubuntu ที่ทำให้คนแปลกใจ
ผู้ให้บริการจำนวนมากส่งเซิร์ฟเวอร์ DNS มาให้ไคลเอนต์ แต่ไคลเอนต์ OpenVPN เพียงรับข้อมูลนั้น ไม่ได้นำไปใช้เอง บน Ubuntu ซึ่งส่วนใหญ่ใช้ systemd-resolved คุณต้องมีสคริปต์ช่วย
sudo apt install openvpn-systemd-resolved
แล้วเพิ่มบรรทัดเหล่านี้ลงในโปรไฟล์
script-security 2
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
down-pre
dhcp-option DOMAIN-ROUTE .
บรรทัด script-security 2 อนุญาตให้ OpenVPN รันสคริปต์ภายนอก เปิดเฉพาะกับโปรไฟล์ที่คุณเชื่อถือ เพราะมันให้โปรไฟล์รันโปรแกรมบนเครื่องคุณได้ หลังเชื่อมต่อให้ตรวจด้วย
resolvectl status
คุณควรเห็นอินเทอร์เฟซของอุโมงค์พร้อมเซิร์ฟเวอร์ DNS จากโปรไฟล์ ถ้า DNS ของ Wi-Fi เดิมยังอยู่ลำดับแรกสำหรับทุกชื่อ การค้นหาอาจหลุดออกนอกอุโมงค์ บทความ DNS leak แสดงวิธีทดสอบ ส่วนพื้นฐานว่า DNS ทำอะไร Cloudflare มี คำอธิบาย DNS ที่เข้าใจง่าย

เส้นทาง NetworkManager บนเดสก์ท็อป
สำหรับแล็ปท็อป ปลั๊กอินเดสก์ท็อปเป็นมิตรกว่า
sudo apt install network-manager-openvpn-gnome
sudo nmcli connection import type openvpn file ~/Downloads/profile.ovpn
nmcli connection up profile
หลังนำเข้า อุโมงค์จะปรากฏในเมนูเครือข่าย NetworkManager จะถามชื่อผู้ใช้และรหัสผ่าน และบันทึกไว้ในกุญแจของระบบได้ มันจัดการ DNS ให้ด้วย จึงตัดขั้นตอนสคริปต์ทั้งหมดออกไป ถ้าโปรไฟล์มีตัวเลือกที่ปลั๊กอินไม่เข้าใจ การนำเข้าอาจล้มเหลวหรือทิ้งตัวเลือกนั้น กรณีนี้ให้กลับไปใช้บรรทัดคำสั่ง
อ่านล็อก ข้อผิดพลาดที่พบบ่อยและสิ่งที่ควรทำ
| ข้อความในล็อก | ความหมายที่น่าจะเป็น | สิ่งที่ควรลอง |
|---|---|---|
AUTH_FAILED |
ชื่อผู้ใช้หรือรหัสผิด หรือบัญชีหมดอายุ | พิมพ์ใหม่ให้ระวัง ตรวจบัญชี ใช้ข้อมูลล็อกอิน VPN |
TLS handshake failed หรือ TLS key negotiation failed |
แพ็กเก็ตไปไม่ถึงเซิร์ฟเวอร์หรือไม่มีคำตอบ | ตรวจเครือข่าย ลองเครือข่ายอื่น ลองโปรโตคอลอีกแบบหากโปรไฟล์มี |
Cannot resolve host address |
ไม่มี DNS ก่อนขึ้นอุโมงค์ | ทดสอบเล่นเว็บปกติ ตรวจชื่อโฮสต์ในโปรไฟล์ |
VERIFY ERROR หรือ certificate verify failed |
ใบรับรองไม่ตรง หรือนาฬิกาผิด | ตรวจ timedatectl ดาวน์โหลดโปรไฟล์ใหม่ |
Cannot open TUN/TAP dev |
สิทธิ์ไม่พอ | ใช้ sudo |
Options error |
บรรทัดในไฟล์ผิดรูปแบบ | ดูเลขบรรทัดในข้อความ |
| เชื่อมต่อแล้วแต่เว็บไม่โหลด | DNS หรือเส้นทาง | ดูหัวข้อ DNS และทดสอบด้วยที่อยู่ตัวเลข |
| รีสตาร์ตวนซ้ำ | เครือข่ายหลุดหรือ keepalive หมดเวลา | ลองเครือข่ายเสถียรกว่า ดูเวลาในล็อก |
สังเกตเวลาในล็อกด้วย ใบรับรองและ handshake ที่ผูกกับเวลาจะพังถ้านาฬิการะบบคลาดมาก หากความเร็วตกหลังเชื่อมต่อได้แล้ว คู่มือ การปรับประสิทธิภาพ OpenVPN อธิบายว่าอะไรควรปรับและอะไรไม่ควร
นิสัยที่ดี ข้อจำกัด และค่าเริ่มต้นที่ปลอดภัย
- เชื่อถือแหล่งที่มาของโปรไฟล์ โปรไฟล์รันสคริปต์และกำหนดเส้นทางได้ ใช้เฉพาะไฟล์จากผู้ให้บริการหรือผู้ดูแลที่เชื่อถือ อย่าดาวน์โหลดจากเว็บบอร์ดที่ไม่รู้จัก
- คงค่าเริ่มต้นของรหัสลับและโปรโตคอลไว้ เว้นแต่ฝ่ายสนับสนุนบอกให้เปลี่ยน
- อย่ารัน VPN สองตัวพร้อมกัน สองอุโมงค์แย่งเส้นทางและ DNS กัน
- รู้ว่ากำลังป้องกันอะไร OpenVPN เข้ารหัสเส้นทางไปยังเซิร์ฟเวอร์ VPN ไม่ได้หยุดฟิชชิง มัลแวร์ หรือการขโมยบัญชี ตามที่อธิบายใน สิ่งที่ VPN ปกป้องคุณไม่ได้
- รีบูตหลังอัปเดตใหญ่ การอัปเดตเคอร์เนลและไลบรารีบางครั้งต้องรีบูตก่อนอุโมงค์จะทำงานปกติ
- ลบโปรไฟล์เก่า ออกจาก
/etc/openvpn/client/เมื่อเลิกใช้ผู้ให้บริการ พร้อมไฟล์ข้อมูลล็อกอิน
สรุป
ใช้ OpenVPN บน Ubuntu โดยติดตั้งแพ็กเกจ ตรวจดูโปรไฟล์ .ovpn แล้วรันเบื้องหน้าสักครั้งเพื่ออ่านล็อก เก็บข้อมูลล็อกอินในไฟล์ที่ root เป็นเจ้าของและสิทธิ์เข้มงวดเท่านั้น หรือพิมพ์เอง ใช้ openvpn-client@ชื่อ สำหรับบริการเบื้องหลัง หรือปลั๊กอิน NetworkManager บนแล็ปท็อป และเพิ่มสคริปต์ช่วย systemd-resolved เมื่อต้องจัดการ DNS เมื่อมีอะไรล้มเหลว ข้อความในล็อกจะบอกว่าต้องตรวจชั้นไหน
หากคุณชอบแอปที่พร้อมใช้มากกว่าการแก้โปรไฟล์ หน้าราคา แสดงพาสแบบเติมเงินที่ใช้กับแอป VPNclient ฟรี
คำถามที่พบบ่อย
ไฟล์ .ovpn คืออะไร และได้มาจากไหน
เป็นโปรไฟล์ข้อความธรรมดาที่บอกไคลเอนต์ OpenVPN ว่าจะติดต่อเซิร์ฟเวอร์ใด ใช้โปรโตคอลและพอร์ตอะไร และเชื่อถือใบรับรองใด ผู้ให้บริการ VPN หรือผู้ดูแลเซิร์ฟเวอร์ของคุณเป็นผู้ส่งให้ ควรถือเป็นข้อมูลอ่อนไหวเพราะอาจมีคีย์อยู่ข้างใน
ทำไม OpenVPN ขึ้น AUTH_FAILED
เซิร์ฟเวอร์ปฏิเสธชื่อผู้ใช้หรือรหัสผ่าน ตรวจว่าพิมพ์ผิดหรือมีช่องว่างเกินหรือไม่ บัญชียังใช้งานได้และไม่หมดอายุหรือไม่ และใช้ข้อมูลล็อกอิน VPN ไม่ใช่รหัสผ่านของเว็บไซต์
รัน OpenVPN เบื้องหลังบน Ubuntu ได้อย่างไร
คัดลอกโปรไฟล์ไปไว้ที่ /etc/openvpn/client/ ตั้งนามสกุล .conf แล้วสั่ง sudo systemctl start openvpn-client@ชื่อ โดยชื่อคือชื่อไฟล์ที่ไม่มีนามสกุล ใช้ enable เพื่อให้เริ่มตอนบูต
ทำไมเว็บไม่โหลดทั้งที่ OpenVPN ขึ้น Initialization Sequence Completed
อุโมงค์ขึ้นแล้ว แต่ DNS หรือเส้นทางผิด ตรวจว่าระบบใช้ DNS ใดด้วย resolvectl status เพิ่มสคริปต์อัปเดต DNS หากโปรไฟล์ส่งเซิร์ฟเวอร์ DNS มา และทดสอบด้วยที่อยู่ตัวเลขเพื่อแยกเส้นทางออกจากการค้นหาชื่อ
เก็บรหัสผ่านในไฟล์ข้อความปลอดภัยหรือไม่
เป็นการแลกเปลี่ยน ไฟล์รหัสผ่านทำให้ไม่ต้องพิมพ์ จึงเริ่มเองได้ แต่ใครอ่านไฟล์ได้ก็อ่านรหัสได้ ควรเก็บไว้ในไฟล์ที่ root เป็นเจ้าของและตั้งสิทธิ์ 600 หรือจะพิมพ์รหัสทุกครั้งก็ได้
เกี่ยวกับผู้เขียน

Bob Kanokphon Thongdee
- ผู้ก่อตั้ง XPASS VPN
- ผู้ร่วมก่อตั้ง eSIMonline.asia
- ประสบการณ์ด้านการตลาดออนไลน์มากกว่า 7 ปี
- ผู้ก่อตั้ง Cojourney Visa และ Cojourney Travel
ต้องใช้ VPN ช่วงเดินทางหรือช่วงงานยุ่ง?
XPASS ขายแพ็กเกจแบบเติมเงินตามจำนวนวัน จ่ายครั้งเดียว ไม่มีการต่ออายุอัตโนมัติ
ดูแพ็กเกจอ่านต่อ

ความปลอดภัยของ VPN
OpenVPN คืออะไร? TCP กับ UDP ต่างกันอย่างไร
อธิบาย OpenVPN ตั้งแต่วิธีสร้างอุโมงค์ เหตุผลที่ TCP กับ UDP ให้ความรู้สึกต่างกัน อะไรทำให้การตั้งค่าปลอดภัย ไปจนถึงวิธีแก้ปัญหา
อ่าน 10 นาที

ความปลอดภัยของ VPN
OpenVPN TCP กับ UDP ต่างกันอย่างไร
OpenVPN ส่งอุโมงค์ผ่าน UDP หรือ TCP ได้ บทความนี้อธิบายว่าสองโหมดต่างกันตรงไหน ทำไมค่าเริ่มต้นจึงเป็น UDP เมื่อไหร่ควรใช้ TCP และทดสอบเองอย่างไร
อ่าน 9 นาที

แก้ปัญหา
วิธีปรับ OpenVPN เพื่อเพิ่มประสิทธิภาพ
ความช้าของ OpenVPN ส่วนใหญ่มาจากสาเหตุไม่กี่อย่าง บทความนี้ครอบคลุมการส่งข้อมูล MTU รหัสลับ บัฟเฟอร์ และ keepalive และสอนปรับทีละค่า
อ่าน 10 นาที

ความปลอดภัยของ VPN
WireGuard กับ OpenVPN ต่างกันอย่างไร
WireGuard และ OpenVPN สร้างอุโมงค์เข้ารหัสเหมือนกัน แต่ต่างกันที่การออกแบบ ความซับซ้อน และความยืดหยุ่น บทความนี้เปรียบเทียบให้เข้าใจง่าย
อ่าน 9 นาที

ความปลอดภัยของ VPN
DNS leak คืออะไร
DNS leak เกิดเมื่ออุปกรณ์ถามหาที่อยู่ของเว็บไซต์นอกอุโมงค์ VPN มาดูว่าทำไมจึงเกิด ทดสอบอย่างไร และต้องทำอย่างไร
อ่าน 10 นาที