WireGuard לעומת OpenVPN: מה לבחור לאירוח עצמי
WireGuard מהיר יותר, התצורה שלו קצרה ומשטח הביקורת קטן יותר. גלו את ארבעת המקרים שבהם OpenVPN עדיין עדיף, כולל TCP 443, סיסמה וגישור שכבה 2.
התשובה הקצרה
WireGuard לעומת OpenVPN, עבור אדם אחד שמפעיל שרת VPN ב־VPS שבבעלותו, אינו מאבק צמוד: בחרו ב־WireGuard. הוא קטן יותר, פועל בתוך ליבת Linux, מתחבר בתוך שבריר שנייה, ותצורת לקוח תקינה כוללת כ־10 שורות. OpenVPN שומר על ארבעה שימושים ממשיים. אם אף אחד מהם אינו רלוונטי לכם, אינכם זקוקים לו.
ארבעת השימושים האלה הם יציאה מרשת שמאפשרת רק את הפורט TCP 443, התחברות אל רשות אישורים קיימת, אימות משתמשים מזוהים באמצעות סיסמה או גורם שני, וגישור בשכבה 2. כל האמור בהמשך מציג את הראיות להמלצה הזו ואת הנקודה המדויקת שבה כל חריג מתחיל להיות רלוונטי לכם.
מדוע WireGuard נבחר על ידי משתמשי self-hosting
קל מספיק לקרוא את בסיס הקוד. פרויקט WireGuard כולל מימוש של הפרוטוקול בכ־4,000 שורות קוד. OpenVPN מגיע למאות אלפי שורות אם סופרים גם את ספריית OpenSSL שעליה הוא מסתמך לכל פעולה קריפטוגרפית. לגודל יש חשיבות, משום שכל שורת קוד היא חלק ממשטח התקיפה, ואין סיכוי שאתה או הבודק שלך תקראו 100,000 שורות. 4,000 שורות אפשר לקרוא.
הוא פועל ב־kernel. WireGuard נמצא ב־mainline Linux מאז 5.6, ולכן Ubuntu 24.04 ו־Debian 13 כוללים אותו בלי צורך לקמפל דבר. המנות מוצפנות במקום שבו הן נמצאות ממילא, ב־kernel space, בלי להעתיק אותן ל־userspace process ובחזרה. בדקו זאת לפני כל דבר אחר:
sudo modprobe wireguard && echo okב־KVM VPS הפקודה מדפיסה ok. בווירטואליזציית מכולות שמשתפת את ה־kernel של ה־host, כגון OpenVZ או LXC, היא נכשלת עם Operation not supported, משום שאי־אפשר לטעון מודול ל־kernel שאינו שלך.
אין דבר למשא ומתן עליו. ל־WireGuard יש cipher suite קבוע אחד: ChaCha20-Poly1305 עבור נתונים, עם מפתחות Curve25519. אין גרסה שאפשר להוריד אליה ואין אפשרות שאפשר להגדיר באופן שגוי. OpenVPN מנהל משא ומתן על ה־cipher ועל גרסת ה־TLS (transport layer security) מול כל client. זו גמישות, אך זהו גם המקום שבו מתרחשות טעויות תצורה. שרת שנותר עם data-ciphers AES-256-GCM:AES-128-CBC יחזור ללא בעיה ל־CBC cipher עבור client שאינו מציע אפשרות טובה יותר, ושום דבר בלוג לא יציין זאת כבעיה.
הפורט אינו משיב. חבילת WireGuard שנכשלת בבדיקת אימות ההודעה מושמטת בלי תשובה כלשהי, ולכן nmap -sU -p 51820 מחזיר open|filtered בין אם משהו מאזין ובין אם לא. שרת OpenVPN במצב TCP משלים את לחיצת היד של TCP לפני שהוא מחליט שאינך מורשה להתחבר. די בכך כדי להוכיח לסורק שמשהו קיים. OpenVPN מעל UDP עם tls-crypt שקט כמעט באותה מידה, ולכן זהו טיעון נגד הפעלת OpenVPN על TCP, ולא נגד OpenVPN עצמו.
נדידה אינה עולה דבר. עמית WireGuard מזוהה לפי המפתח הציבורי שלו, ולא לפי הכתובת שלו. המחשב הנייד שלך עובר מהרשת הביתית לנקודה חמה סלולרית, שולח לחיצת יד אחת מהכתובת החדשה, והשרת מעדכן את נקודת הקצה שאליה הוא משיב. שום דבר אינו מתחבר מחדש, משום ששום דבר לא היה מחובר מלכתחילה. OpenVPN יכול לבצע דבר דומה באמצעות float, אך בדרך כלל ה־client מפרק ובונה מחדש session מלא של TLS. לכן ההשהיה בעת פתיחת המכסה מורגשת ב־OpenVPN, אך אינה מורגשת ב־WireGuard.
מהירות בשנת 2026: הפער הצטמצם
במשך שנים הטיעון הכנה לגבי מהירות היה ש־OpenVPN העתיק כל מנה אל מרחב המשתמש, הצפין אותה שם והעתיק אותה בחזרה, בעוד ש־WireGuard לא יצא מעולם מה־kernel. זו כבר אינה התמונה המלאה, והשוואה שמתעלמת מכך אינה מעודכנת.
OpenVPN 2.7 שוחרר בפברואר 2026 עם תמיכה במודול ה־kernel של ovpn, שמוזג ל־Linux 6.16. זהו DCO (העברת ערוץ הנתונים לעיבוד מואץ): ערוץ הבקרה נשאר במרחב המשתמש, ואילו נתיב הנתונים העיקרי עובר אל ה־kernel. זה דומה בקירוב למה ש־WireGuard עושה מאז ומתמיד. ב־kernel ובגרסת OpenVPN חדשים מספיק כדי להשתמש בכך, התפוקה נמצאת באותה קטגוריה ולא בקטגוריה שונה. בדקו מה מותקן אצלכם בפועל:
uname -r
openvpn --version | head -n 1
modinfo ovpn 2>/dev/null | head -n 3נכון ליולי 2026, Ubuntu 24.04 LTS רגיל מגיע עם OpenVPN 2.6 ולא עם 2.7, ומודול ovpn דורש את גרסה 2.7. בגרסה זו ניתן להשתמש בהעברת נתונים מואצת רק באמצעות החבילה הישנה יותר openvpn-dco-dkms, שבונה מודול חיצוני לעץ המקור מול ה־kernel הפעיל ולכן נבנית מחדש לאחר כל שדרוג kernel. זהו רכיב משתנה שאין ל־WireGuard.
קראו את הפרטים המלאים על DCO לפני שאתם מחשיבים אותו סיבה להישאר. הוא תומך במנהרות Layer 3 בלבד, מקבל רק צופני AEAD (הצפנה מאומתת עם נתונים נלווים: AES-GCM או ChaCha20-Poly1305), אינו תומך בדחיסה, ובשרת הוא פועל רק עם topology subnet. כל אחת מהמגבלות האלה מבטלת חלק מהגמישות שהייתה מלכתחילה הטיעון בעד OpenVPN. OpenVPN מהיר הוא OpenVPN שמוגדר להיראות כמו WireGuard.
אל תסמכו על נתון תפוקה שפורסם על ידי גורם כלשהו, כולל הנתונים בדף הזה. ב־VPS התקרה נקבעת בדרך כלל לפי הקצאת ה־CPU או הקצאת הרשת, ולא לפי הפרוטוקול. מדדו את החיבור שלכם באמצעות iperf3 כשהוא פועל דרך המנהרה, ולאחר מכן שוב מחוץ לה, והשוו בין שתי התוצאות.
היכן OpenVPN עדיין מצדיק את השימוש בו
עליכם לצאת דרך TCP port 443. WireGuard פועל על UDP בלבד, בכוונה, ולא צפוי להתווסף לו מצב TCP. רשת של מלון או proxy ארגוני שמאפשרים רק TCP 443 יעבירו OpenVPN שהוגדר באמצעות proto tcp-server ו־port 443, משום שהתעבורה הזו נראית כמו חיבור TLS רגיל. כדי לעבור באותה רשת, WireGuard זקוק לעטיפה כגון wstunnel או udp2raw. פירוש הדבר הוא תהליך נוסף שיש להפעיל ולשמור מעודכן. שימו לב להתנגשות: אם שרת Web כבר מחזיק ב־TCP 443 בכתובת ה־IP הזו, אחד משני השירותים חייב לעבור לכתובת או לפורט אחר.
אתם כבר מפעילים רשות אישורים. OpenVPN מבצע אימות באמצעות אישורי X.509, ולכן הוא משתלב ב־PKI (תשתית מפתחות ציבוריים) שאתם כבר מנהלים. האישור פג באופן עצמאי, וניתן לבטל אותו על ידי הוספתו לרשימת ביטול אישורים שהשרת קורא באמצעות crl-verify. ל־WireGuard אין אישורים, אין תוקף ואין רשימת ביטול. הסרת עמית מחייבת עריכת תצורת השרת וטעינה מחדש שלה. עבור עשרה עמיתים, זה פתרון סביר. עבור ארבע מאות עמיתים, כאשר נדרשת ביקורת, מודל האישורים מספק לכם ערך תפעולי ממשי.
אתם זקוקים למשתמשים מזוהים בשם, ולא רק למפתחות. OpenVPN יכול להעביר את האימות למערכת חיצונית באמצעות auth-user-pass-verify או באמצעות plugin כגון openvpn-plugin-auth-pam.so. כך ניתן להוסיף LDAP או גורם אימות שני המבוסס על סיסמה חד־פעמית. ל־WireGuard אין כלל מושג של משתמש. מפתח נמצא בתצורה או שאינו נמצא בה. אם הדרישה שלכם היא ש־"Sara חייבת להזין קוד מהטלפון שלה", WireGuard אינו יכול לבטא זאת בעצמו.
אתם זקוקים ל־Layer 2, או ללקוח עבור מערכת ישנה במיוחד. OpenVPN עם dev tap מגשר על מסגרות Ethernet. הדבר חשוב עבור פרוטוקולים המבוססים על שידור, וכן עבור משחקי LAN ישנים. WireGuard פועל רק ב־Layer 3, וכך יישאר. ל־OpenVPN יש גם לקוחות עבור חומרה ומערכות הפעלה שלעולם לא יקבלו יישום WireGuard. שתי הסיבות הללו הולכות ונחלשות, ו־dev tap אינו תואם ל־DCO. לכן, בעת בחירת הגישור, אתם עוברים למסלול האיטי.
מה שתי התצורות באמת עולות לכם
זהות של WireGuard נוצרת באמצעות פקודה אחת. הסוגריים חשובים, משום שהם מגדירים את מצב הקובץ לפני יצירת המפתח:
(umask 077; wg genkey > private.key)
wg pubkey < private.key > public.keyהמקבילה ב־OpenVPN היא רשות אישורים שנמצאת באחריותכם כל עוד ה־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אף אחת מהרשימות אינה בלתי הוגנת. רשות האישורים מספקת תוקף וביטול אישורים, אך מחייבת אתכם להגן במשך שנים על מפתח פרטי, לזכור לבצע חידוש, ולבנות מחדש את התשתית אם תאבדו אותו. אם אינכם משתמשים במה שהיא מספקת, אתם משלמים ללא תמורה. ההליך המלא של WireGuard, כולל forwarding, NAT (תרגום כתובות רשת) ותקלות handshake שמבזבזות אחר צהריים שלם, מופיע ב־מדריך לאירוח עצמי של VPN מסוג WireGuard ב־VPS שלכם.
מה כל אחד מהם דורש מ־firewall
WireGuard דורש כלל נכנס אחד בלבד, עבור UDP בפורט שמופיע ב־ListenPort:
sudo ufw allow 51820/udp
sudo ufw status verboseOpenVPN דורש כברירת מחדל את UDP 1194, או את TCP 443 אם בחרתם באפשרות הזו. לאחר מכן, בשני המקרים, יש להפעיל IP forwarding ולהגדיר כלל source NAT, משום שמערכת Linux משליכה מנות שאינן מיועדות אליה. חלק זה זהה בשני הפרוטוקולים, והוא המקור לרוב הדיווחים בנוסח "המנהרה מתחברת, אך אין אינטרנט". אם ufw חדש לכם, התחילו ב־היסודות של firewall מסוג ufw ב־VPS, וזכרו שרוב הספקים מפעילים firewall רשת נוסף בלוח הבקרה שלהם: כלל שהוספתם בשרת לא ישפיע אם המנה לא מגיעה כלל אל השרת. הבנת מהו פורט וכיצד Linux מאזין בו מקלה על שתי הבדיקות האלה.
כיצד לבחור, בפסקה אחת
הפעילו WireGuard, אלא אם כן תוכלו לציין צורך מסוים שהוא אינו יכול לספק לכם. אם אתם צריכים להשתמש ב־TCP 443 כדי לעקוף רשת מגבילה, הפעילו שם OpenVPN, ושקלו להפעיל את שניהם: הם משתמשים בפורטים שונים ויכולים לפעול יחד באותו שרת ללא התנגשות. אם אתם זקוקים לחשבונות נפרדים לכל משתמש או לאימות דו־שלבי, אל תנסו לכפות זאת על WireGuard. הוסיפו מעליו שכבת זהויות. שרת בקרה עצמאי של Headscale משתמש ב־WireGuard כשכבת התעבורה הבסיסית ומוסיף את מודל החשבונות, הפצת המפתחות ואישור ההתקנים ש־WireGuard עצמו משאיר לניהולכם.
מעבר מ־OpenVPN ללא השבתה
אין המרה ישירה. תשתית ה־PKI של OpenVPN אינה הופכת למפתחות WireGuard, משום שב־WireGuard אין תעודות שניתן להמיר. לכל לקוח נוצר זוג מפתחות חדש, באותה דרך שבה נוצר זוג המפתחות של השרת.
בצעו את המעבר במקביל במקום להחליף מערכת בבת אחת. WireGuard על UDP 51820 ו־OpenVPN על 1194 יכולים לפעול באותו מחשב ובאותו זמן. לכן הפעילו את wg0, ודאו את פעולתו באמצעות sudo wg show שמציג את latest handshake האחרון, ולאחר מכן העבירו את הלקוחות בזה אחר זה. כאשר רשימת העמיתים של OpenVPN מפסיקה להשתנות, עצרו את השירות באמצעות sudo systemctl disable --now openvpn-server@server. שמרו את קובצי ה־CA עד שתהיו בטוחים שהמעבר הושלם, משום שלא ניתן לשחזר לקוח שבוטל באמצעות CA שמחקתם.
דבר אחד אינו עובר בין המערכות: חשבונות המשתמשים והסיסמאות שלכם, וכן רישום הביטולים שנלווה אליהם. החליטו היכן הם ינוהלו לפני שתכבו את השרת הישן, ולא לאחר מכן.
FAQ
האם WireGuard מהיר יותר מ־OpenVPN?
בשרת Ubuntu 24.04 בתצורת ברירת המחדל, כן, ובהפרש ניכר, משום ש־WireGuard מצפין בתוך ה־kernel, ואילו OpenVPN 2.6 מעביר כל packet דרך תהליך userspace. ב־OpenVPN 2.7, עם מודול ה־kernel של ovpn מ־Linux 6.16, גם נתיב הנתונים נמצא ב־kernel, ושני הפתרונות נמצאים באותה קטגוריית ביצועים. מדדו את הביצועים אצלכם באמצעות iperf3 דרך המנהרה, במקום להסתמך על מספר מבלוג, משום שב־VPS המגבלה היא בדרך כלל ה־CPU או מכסת רוחב הפס.
האם WireGuard יכול לפעול מעל TCP port 443?
לא באופן עצמאי. WireGuard פועל מעל UDP בלבד לפי התכנון, ולא מתוכנן עבורו מצב TCP. כדי לעבור ברשת שמאפשרת רק TCP 443, עוטפים אותו במנהרה כגון wstunnel או udp2raw. הדבר מוסיף תהליך שיש להפעיל ולעדכן בשני הצדדים. אם זו סביבת העבודה הרגילה שלכם, OpenVPN עם proto tcp-server ו־port 443 הוא הפתרון הפשוט יותר.
האם OpenVPN אינו מאובטח כיום?
לא. OpenVPN עדכני, עם צופן AEAD כגון AES-256-GCM ו־tls-crypt מופעל, הוא פתרון VPN אמין. היתרון של WireGuard מבוסס על גורם אחר: OpenVPN כולל הרבה יותר קוד והרבה יותר אפשרויות, ולכן הוא מאפשר למנהל עייף להגדיר את המערכת בצורה שגויה בדרכים רבות יותר. פחות אפשרויות פירושן פחות אפשרויות לשגיאה.
במה כדאי לבחור עבור VPN אישי ב־VPS?
WireGuard. זוג מפתחות אחד לכל התקן, קובץ תצורה אחד באורך של כ־10 שורות, UDP port אחד פתוח, ו־handshake שמסתיים לפני שמבחינים שהוא התחיל. בחרו ב־OpenVPN רק אם אתם מתחברים באופן קבוע מרשתות שחוסמות UDP, או אם עליכם להשתלב ב־certificate authority או בספריית משתמשים שכבר קיימים.