SSD Nodes Learn Hosting plans →
Mga Gabay Matt ConnorNi Matt Connor · Na-update 2026-10-30

WireGuard o OpenVPN: Alin ang I-self-Host?

Mas mabilis at mas maliit ang config ng WireGuard para sa karamihan ng self-hosters. Alamin ang 4 na kaso kung kailan mas praktikal ang OpenVPN.

Ang maikling sagot

Sa WireGuard kumpara sa OpenVPN, para sa isang taong nagpapatakbo ng VPN server sa sarili niyang VPS, hindi ito dikit na paghahambing: piliin ang WireGuard. Mas maliit ito, tumatakbo ito sa loob ng Linux kernel, kumokonekta ito sa loob ng maliit na bahagi ng isang segundo, at humigit-kumulang sampung linya lang ang working client config. May apat na aktuwal na gamit ang OpenVPN, at kung wala sa mga ito ang kailangan mo, hindi mo ito kailangan.

Ang apat na gamit na iyon ay ang paglabas mula sa network na TCP port 443 lang ang pinapayagan, pagkonekta sa kasalukuyang certificate authority, pag-authenticate sa mga pinangalanang user gamit ang password o second factor, at pag-bridge sa Layer 2. Ang lahat ng nasa ibaba ay ebidensiya para sa rekomendasyong ito, pati ang eksaktong punto kung kailan magsisimulang umiral ang bawat exception para sa iyo.

Bakit pinili ng mga self-hoster ang WireGuard

Sapat na maliit ang codebase para mabasa. Ang WireGuard project ay may protocol implementation na humigit-kumulang 4,000 linya ng code. Umaabot sa anim na digit ang OpenVPN kapag isinama ang OpenSSL library na ginagamit nito para sa bawat cryptographic operation. Mahalaga ang laki dahil attack surface ang bawat linya, at hindi mo o ng reviewer mo mababasa ang 100,000 linya. Kaya mong basahin ang 4,000.

Tumatakbo ito sa kernel. Kasama na ang WireGuard sa mainline Linux mula pa noong 5.6, kaya kasama na ito sa Ubuntu 24.04 at Debian 13 at wala nang kailangang i-compile. Ini-encrypt ang mga packet kung nasaan na ang mga ito, sa kernel space, nang hindi kailangang kopyahin sa userspace process at ibalik. Suriin muna ito:

sudo modprobe wireguard && echo ok

Sa KVM VPS, magpi-print ito ng ok. Sa container virtualisation na gumagamit ng kernel ng host, gaya ng OpenVZ o LXC, mabibigo ito at magpi-print ng Operation not supported dahil hindi ka makakapag-load ng module sa kernel na hindi sa iyo.

Walang kailangang i-negotiate. Iisa lang ang fixed cipher suite ng WireGuard: ChaCha20-Poly1305 para sa data, gamit ang Curve25519 keys. Walang bersyong maaaring i-downgrade at walang option na maaaring ma-configure nang mali. Kino-negotiate ng OpenVPN ang cipher at ang bersyon ng TLS (transport layer security) sa bawat client. Nagbibigay ito ng flexibility, pero dito rin nagmumula ang misconfiguration. Ang server na naiwan sa data-ciphers AES-256-GCM:AES-128-CBC ay awtomatikong gagamit ng CBC cipher para sa client na walang iniaalok na mas mahusay, at hindi ituturing ng log na problema ang mas mahinang cipher. Kapag available ang data channel offload, magpi-print ang OpenVPN ng note na pinatay ng CBC entry ang offload. Babala ito tungkol sa bilis, hindi tungkol sa security.

Hindi sumasagot ang port. Kapag nabigo ang WireGuard packet sa message authentication check, dini-drop ito nang walang anumang reply. Dahil dito, hindi matukoy ng nmap -sU -p 51820 kung WireGuard server ang nasa port o kung tahimik lang itong dini-drop ng firewall: pareho silang magbabalik ng open|filtered. Tanging unfiltered port na walang nakikinig ang naglalantad sa sarili nito dahil sasagot ang kernel gamit ang ICMP port unreachable, at iuulat ito ng nmap bilang closed. Sa TCP mode, kinukumpleto muna ng OpenVPN server ang TCP handshake bago nito mapagpasyahang hindi ka nito tatanggapin. Sapat na ito para mapatunayan sa scanner na may tumatakbo roon. Halos kasing-tahimik ng WireGuard ang OpenVPN over UDP kapag gumagamit ng tls-crypt, kaya argumento ito laban sa pagpapatakbo ng OpenVPN sa TCP, hindi laban sa OpenVPN mismo.

Libre ang roaming. Tinutukoy ang WireGuard peer gamit ang public key nito, hindi ang address nito. Kapag lumipat ang laptop mo mula sa home network papunta sa mobile hotspot, nagpapadala ito ng isang handshake mula sa bagong address, at ina-update ng server ang endpoint kung saan ito sasagot. Walang nire-reconnect dahil wala namang permanenteng connection mula pa sa simula. May katulad na behavior ang OpenVPN gamit ang float, pero karaniwang isinasara at binubuo muli ng client ang buong TLS session. Dahil dito, kapansin-pansin ang pause kapag binuksan ang lid sa OpenVPN, samantalang wala nito sa WireGuard.

Bilis sa 2026: lumiliit lang ang agwat kapag may kernel offload

Sa loob ng maraming taon, ang tapat na paliwanag sa bilis ay kinokopya ng OpenVPN ang bawat packet papunta sa userspace, ine-encrypt ito roon, at ibinabalik ang kopya, samantalang hindi umaalis sa kernel ang WireGuard. Sa isang stock na Ubuntu 24.04 server, ito pa rin ang kalagayan, at mas mabilis nang malaki ang WireGuard. Ang nagbago noong 2026 ay maaari nang ilipat ng OpenVPN ang data path nito sa kernel kapag sinusuportahan ito ng kernel at ng bersyon ng OpenVPN. Kaya lipas na ang paghahambing na hindi isinasaalang-alang ito.

Inilabas ang OpenVPN 2.7 noong February 2026 na may suporta para sa upstream na ovpn kernel module, na isinama sa Linux 6.16. Ito ang DCO (data channel offload): nananatili sa userspace ang control channel, habang inililipat sa kernel ang bulk data path. Halos ganito rin ang palaging ginagawa ng WireGuard. Kapag sapat na bago ang kernel at OpenVPN para magamit ito, nasa parehong klase ang throughput sa halip na magkaiba nang malaki. Suriin kung ano talaga ang mayroon ka:

uname -r
openvpn --version | head -n 1
modinfo ovpn 2>/dev/null | head -n 3

Noong October 2026, ang stock na Ubuntu 24.04 LTS ay may OpenVPN 2.6, hindi 2.7, at kailangan ng ovpn module ang 2.7. Sa release na iyon, makakakuha ka lang ng offload sa pamamagitan ng mas lumang openvpn-dco-dkms package. Gumagawa ito ng out-of-tree module laban sa kasalukuyang kernel, kaya kailangan itong muling i-build sa bawat kernel upgrade. Isa itong karagdagang kailangang pamahalaan na wala sa WireGuard. Kasama sa Ubuntu 26.04 LTS ang OpenVPN 2.7.0 at Linux 7.0 kernel. Pareho silang sapat na bago para sa ovpn, kaya sa release na iyon ang modinfo line sa itaas ang dapat suriin.

Basahin muna ang mga limitasyon ng DCO bago mo ito ituring na dahilan para manatili sa OpenVPN. Layer 3 tunnels lamang ang sinusuportahan nito. AEAD ciphers lamang ang tinatanggap nito (authenticated encryption with associated data: AES-GCM o ChaCha20-Poly1305). Hindi nito sinusuportahan ang compression. Sa server, gumagana lamang ito sa topology subnet. Inaalis ng bawat limitasyong ito ang isang bahagi ng flexibility na dating pangunahing argumento para sa OpenVPN. Ang mabilis na OpenVPN ay OpenVPN na naka-configure na kahawig ng WireGuard.

Huwag magtiwala sa anumang inilathalang throughput number, kabilang ang nasa pahinang ito. Sa isang VPS, karaniwang CPU allowance o network allowance ang nagtatakda ng ceiling, hindi ang protocol. Sukatin ang sarili mong performance gamit ang iperf3 na tumatakbo sa tunnel, pagkatapos ay ulitin ito sa labas ng tunnel, at ihambing ang dalawang resulta.

Kung kailangan mong makalabas gamit ang TCP port 443

Kailangan mong makalusot gamit ang TCP port 443. UDP lamang ang WireGuard, sinadya ito sa disenyo, at walang darating na TCP mode. Karaniwang papayagan ng hotel network na nagfi-filter batay lamang sa port number ang OpenVPN na naka-configure gamit ang proto tcp-server at port 443. Huwag itong mapagkamalang pagtatago ng traffic: gumagamit ang OpenVPN over TCP ng sarili nitong packet framing sa halip na ordinaryong TLS session, kaya maaari pa rin itong makilala at i-block ng corporate firewall o proxy na nag-i-inspect o nagte-terminate ng HTTPS. Kailangan ng WireGuard ng wrapper gaya ng wstunnel o udp2raw upang makalusot sa parehong network. Nangangahulugan ito ng isa pang process na kailangang patakbuhin at panatilihing updated sa patches. Tandaan ang conflict: kung may web server nang gumagamit ng TCP 443 sa IP address na iyon, kailangang ilipat ang isa sa dalawa.

May pinapatakbo ka nang certificate authority. Nag-a-authenticate ang OpenVPN gamit ang X.509 certificates, kaya madali itong maisama sa PKI (public key infrastructure) na pinapatakbo mo na. Kusang nag-e-expire ang mga certificate. Para i-revoke ang isa, idagdag ito sa certificate revocation list na binabasa ng server sa pamamagitan ng crl-verify. Walang certificates, expiry, o certificate revocation list ang WireGuard. Para mag-alis ng peer, kailangang i-edit ang server config at i-reload ito. Ayos lang ito sa sampung peer. Sa apatnaraan na peer, lalo na kung may audit requirement, malaking pakinabang ang certificate model.

Kailangan mo ng mga pinangalanang user, hindi mga key lamang. Maaaring ipasa ng OpenVPN ang authentication sa external system gamit ang auth-user-pass-verify o plugin gaya ng openvpn-plugin-auth-pam.so. Sa ganitong paraan, maaaring idagdag ang LDAP o second factor na one-time password. Walang konsepto ng user ang WireGuard. Ang isang key ay nasa config o wala roon. Kung ang requirement mo ay “kailangang maglagay si Sara ng code mula sa kanyang phone,” hindi ito kayang ipahayag ng WireGuard nang mag-isa.

Kailangan mo ng Layer 2, o client para sa isang lumang system. Binabridge ng OpenVPN gamit ang dev tap ang Ethernet frames. Mahalaga ito para sa broadcast protocol at lumang LAN game. Layer 3 lamang ang WireGuard at mananatili itong ganoon. May mga client din ang OpenVPN sa hardware at operating system na hindi kailanman magkakaroon ng WireGuard app. Paliit nang paliit ang kahalagahan ng dalawang dahilang ito. Hindi compatible ang dev tap sa DCO, kaya mabagal na path ang gagamitin mo kapag nag-bridge ka.

Ang aktuwal na gastos ng dalawang setup

Ang isang WireGuard identity ay isang command. Mahalaga ang parentheses dahil itinatakda ng mga ito ang file mode bago malikha ang key:

(umask 077; wg genkey > private.key)
wg pubkey < private.key > public.key

Ang katumbas sa OpenVPN ay isang certificate authority na pagmamay-ari mo habang ginagamit ang VPN:

sudo apt install -y easy-rsa
make-cadir ~/openvpn-ca
cd ~/openvpn-ca
./easyrsa init-pki
./easyrsa build-ca
./easyrsa gen-req server nopass
./easyrsa sign-req server server

Walang hindi patas sa alinmang listahan. Nagbibigay ang CA ng expiry at revocation. Kapalit nito, kailangan mong protektahan ang private key sa loob ng maraming taon, tandaan ang renewal, at buuin muli ang setup kapag nawala ito. Kung hindi mo ginagamit ang mga benepisyong ibinibigay nito, wala kang napapala sa gastos. Makikita ang buong proseso ng WireGuard, kabilang ang forwarding, NAT (network address translation), at mga handshake failure na maaaring kumain ng isang hapon, sa gabay sa pagho-host ng sarili mong WireGuard VPN sa iyong VPS.

Ang hinihingi ng bawat isa sa iyong firewall

Kailangan ng WireGuard ng eksaktong isang inbound rule para sa UDP sa port na nasa ListenPort:

sudo ufw allow 51820/udp
sudo ufw status verbose

Bilang default, kailangan ng OpenVPN ng UDP 1194, o TCP 443 kung iyon ang pinili mong configuration. Kailangan din ng dalawa na i-enable ang IP forwarding at magtakda ng source NAT rule, dahil nagtatapon ang Linux box ng mga packet na hindi nakatalaga rito. Magkapareho ang bahaging ito para sa dalawang protocol, at dito nagmumula ang karamihan ng mga ulat na “nakakonekta ang tunnel pero walang internet.” Kung bago sa iyo ang ufw, magsimula sa mga pangunahing kaalaman sa ufw firewall sa isang VPS, at tandaan na karamihan ng provider ay nagpapatakbo ng pangalawang network firewall sa control panel nila: walang epekto ang rule na idinagdag mo sa server kung hindi naman nakakarating ang packet sa server. Ang pag-unawa sa kung ano ang port at kung paano nakikinig dito ang Linux ay nagpapabilis sa dalawang pagsusuring ito.

Paano pumili, sa isang talata

Gamitin ang WireGuard maliban kung matukoy mo ang partikular na bagay na hindi nito kayang gawin para sa iyo. Kung kailangan mo ng TCP 443 upang makalusot sa restrictive na network, gamitin ang OpenVPN doon, at isaalang-alang ang paggamit ng pareho: magkaiba ang port na ginagamit ng mga ito at maaari silang magkasamang tumakbo sa isang server nang walang conflict. Kung kailangan mo ng mga account para sa bawat user o ng second factor, huwag mong piliting gawin iyon sa WireGuard. Sa halip, maglagay ng identity layer sa ibabaw nito. Ang sariling-host na Headscale control server ay gumagamit ng WireGuard sa ilalim at nagdaragdag ng account model, key distribution, at device approval na kailangan mong pamahalaan kapag plain WireGuard ang ginagamit.

Paglipat mula sa OpenVPN nang walang outage

Walang conversion. Ang PKI ng OpenVPN ay hindi nagiging mga key ng WireGuard, dahil walang certificate ang WireGuard na maaaring i-convert. Bawat client ay bibigyan ng bagong key pair na gagawin sa parehong paraan ng key pair ng server.

Mag-migrate nang magkatabi sa halip na basta magpalit. Ang WireGuard sa UDP 51820 at ang OpenVPN sa 1194 ay maaaring sabay na tumakbo sa iisang box. Kaya i-start ang wg0, kumpirmahin ito gamit ang sudo wg show na naglilista ng isang kamakailang latest handshake, at pagkatapos ay ilipat ang mga client nang paisa-isa. Kapag hindi na nagbabago ang listahan ng mga OpenVPN peer, ihinto ang service gamit ang sudo systemctl disable --now openvpn-server@server. Panatilihin ang mga CA file hanggang makasiguro ka, dahil hindi posibleng buuin muli ang isang na-revoke na client gamit ang CA na tinanggal mo na.

May isang bagay na talagang hindi naililipat: ang mga account na gumagamit ng username at password, pati ang talaan ng mga revocation na nauugnay sa mga ito. Magpasya kung saan ito itatabi bago mo isara ang lumang server, hindi pagkatapos.

FAQ

Mas mabilis ba ang WireGuard kaysa OpenVPN?

Oo, sa isang karaniwang Ubuntu 24.04 server, at malaki ang lamang nito dahil nag-e-encrypt ang WireGuard sa kernel samantalang ipinapadaan ng OpenVPN 2.6 ang bawat packet sa userspace process. Sa OpenVPN 2.7 at sa ovpn kernel module mula sa Linux 6.16, nasa kernel na rin ang data path kaya nasa parehong antas ang dalawa. Sukatin ang sarili mong performance gamit ang iperf3 sa loob ng tunnel sa halip na umasa sa numerong nasa isang blog, dahil sa VPS, CPU o bandwidth allowance mo ang karaniwang nagiging limitasyon.

Maaari bang patakbuhin ang WireGuard sa TCP port 443?

Hindi nang mag-isa. UDP-only ang WireGuard ayon sa disenyo nito, at walang planong magdagdag ng TCP mode. Para makalusot sa network na TCP 443 lang ang pinapayagan, i-wrap ito sa tunnel gaya ng wstunnel o udp2raw, na nangangailangan ng prosesong patatakbuhin at ipa-patch sa magkabilang panig. Kung normal mong working environment ang ganitong restriction, mas simpleng solusyon sa network na nagfi-filter batay lamang sa port ang OpenVPN na may proto tcp-server at port 443, bagaman maaari pa rin itong makita at i-block ng proxy na nag-iinspeksiyon ng HTTPS.

Insecure na ba ang OpenVPN?

Hindi. Ang kasalukuyang OpenVPN na may AEAD cipher gaya ng AES-256-GCM at naka-enable ang tls-crypt ay maaasahang VPN. Iba ang batayan sa pagpili ng WireGuard: mas marami ang code at mas marami ang option ng OpenVPN, kaya mas maraming paraan para mali ang configuration ng isang pagod na administrator. Kapag mas kaunti ang pagpipilian, mas kaunti rin ang posibleng maling configuration.

Alin ang dapat kong piliin para sa personal VPN sa isang VPS?

WireGuard. Isang key pair bawat device, isang config file na humigit-kumulang sampung linya, isang UDP port na kailangang buksan, at isang handshake na natatapos bago mo mapansing nagsimula na ito. Piliin lamang ang OpenVPN kung regular kang kumokonekta mula sa mga network na nagba-block ng UDP, o kung kailangan mong gumamit ng umiiral nang certificate authority o user directory.

Nakatulong ba ang artikulong ito?