SSD Nodes Learn Hosting plans →
מדריכים Matt Connorמאת Matt Connor · עודכן 2026-10-30

WireGuard לעומת OpenVPN: מה לבחור לאירוח עצמי

WireGuard מהיר יותר, התצורה שלו קצרה ומשטח הביקורת קטן יותר. גלו את ארבעת המקרים שבהם OpenVPN עדיין עדיף, כולל TCP 443, סיסמה וגישור שכבה 2.

התשובה הקצרה

WireGuard לעומת OpenVPN, עבור אדם אחד שמפעיל שרת VPN ב־VPS שבבעלותו, אינו מאבק צמוד: בחרו ב־WireGuard. הוא קטן יותר, פועל בתוך ליבת Linux, מתחבר בתוך שבריר שנייה, ותצורת לקוח תקינה כוללת כ־10 שורות. OpenVPN שומר על ארבעה שימושים ממשיים. אם אף אחד מהם אינו רלוונטי לכם, אינכם זקוקים לו.

ארבעת השימושים האלה הם יציאה מרשת שמאפשרת רק את הפורט TCP 443, התחברות אל רשות אישורים קיימת, אימות משתמשים מזוהים באמצעות סיסמה או גורם שני, וגישור בשכבה 2. כל האמור בהמשך מציג את הראיות להמלצה הזו ואת הנקודה המדויקת שבה כל חריג מתחיל להיות רלוונטי לכם.

מדוע WireGuard ניצח עבור מארחים עצמיים

בסיס הקוד קטן מספיק לקריאה. פרויקט WireGuard מציב את מימוש הפרוטוקול שלו על כ-4,000 שורות קוד. OpenVPN מגיע למאות אלפי שורות ברגע שסופרים את ספריית OpenSSL שעליה הוא נשען עבור כל פעולה קריפטוגרפית. גודל משנה כי כל שורה היא שטח תקיפה, ואף אחד – לא אתם ולא הסוקר שלכם – לא יקרא 100,000 שורות. 4,000 שורות אפשר לקרוא.

הוא רץ בתוך ה-kernel. WireGuard נמצא ב-mainline Linux מאז גרסה 5.6, לכן Ubuntu 24.04 ו-Debian 13 מגיעות איתו ללא צורך בהידור. חבילות המידע מוצפנות היכן שהן כבר נמצאות, בתוך ה-kernel space, ללא העתקה לתהליך ב-userspace ובחזרה. בדקו זאת לפני כל דבר אחר:

sudo modprobe wireguard && echo ok

ב-KVM VPS הפקודה תדפיס ok. בווירטואליזציה מבוססת מכולות (container) שחולקת את ה-kernel של המארח, כמו OpenVZ או LXC, הפעולה תיכשל עם Operation not supported, כיוון שלא ניתן לטעון מודול לתוך kernel שאינו שלכם.

אין משא ומתן. ל-WireGuard יש חבילת צפנים (cipher suite) אחת קבועה: ChaCha20-Poly1305 עבור נתונים, עם מפתחות Curve25519. אין גרסה שאפשר לשנמך (downgrade) ואין אפשרות לטעות בה. OpenVPN מנהל משא ומתן על הצופן ועל גרסת ה-TLS (אבטחת שכבת התעבורה) מול כל לקוח; זו גמישות, אך זהו גם המקום שבו נוצרות טעויות תצורה. שרת שנותר עם data-ciphers AES-256-GCM:AES-128-CBC יחזור בשמחה לצופן CBC עבור לקוח שלא מציע משהו טוב יותר, והלוג לא יסמן את הצופן החלש כבעיה. במקומות שבהם זמין offload לערוץ הנתונים, OpenVPN מדפיס הערה שערך ה-CBC כיבה את ה-offload; זו אזהרה לגבי מהירות, לא לגבי אבטחה.

הפורט לא עונה. חבילת WireGuard שנכשלת בבדיקת אימות ההודעה נזרקת ללא כל מענה, לכן nmap -sU -p 51820 לא יכול להבדיל בין שרת WireGuard לבין פורט שה-firewall שלכם זורק בשקט: שניהם יחזירו open|filtered. רק פורט לא מסונן שאין בו שום דבר שמאזין מסגיר את עצמו, כיוון שה-kernel עונה עם ICMP port unreachable ו-nmap מדווח עליו כ-closed. שרת OpenVPN במצב TCP משלים את ה-TCP handshake לפני שהוא מחליט שאינכם רצויים, וזה מספיק כדי להוכיח לסורק שמשהו נמצא שם. OpenVPN מעל UDP עם tls-crypt שקט כמעט באותה מידה, כך שזהו טיעון נגד הרצת OpenVPN על TCP ולא נגד OpenVPN עצמו.

נדידה (roaming) היא בחינם. עמית (peer) ב-WireGuard מזוהה לפי המפתח הציבורי שלו, לא לפי הכתובת שלו. המחשב הנייד שלכם עובר מהבית לנקודה חמה ניידת, שולח handshake אחד מהכתובת החדשה, והשרת מעדכן את ה-endpoint שאליו הוא עונה. שום דבר לא מתחבר מחדש כי שום דבר מעולם לא היה מחובר. OpenVPN יכול לבצע משהו דומה עם float, אך הלקוח בדרך כלל מפרק ובונה מחדש סשן TLS מלא; זו הסיבה שהשהיית פתיחת המכסה מורגשת ב-OpenVPN ואינה מורגשת ב-WireGuard.

מהירות בשנת 2026: הפער מצטמצם רק באמצעות kernel offload

במשך שנים, הטיעון המקצועי בעד מהירות היה ש-OpenVPN מעתיק כל חבילת מידע (packet) למרחב המשתמש (userspace), מצפין אותה שם ומעתיק אותה חזרה, בעוד ש-WireGuard מעולם לא יצא מה-kernel. בשרת Ubuntu 24.04 סטנדרטי, זו עדיין התמונה, ו-WireGuard מהיר יותר בפער ניכר. מה שהשתנה בשנת 2026 הוא ש-OpenVPN יכול כעת להעביר את נתיב הנתונים שלו גם לתוך ה-kernel, כאשר גם ה-kernel וגם גרסת ה-OpenVPN תומכים בכך; השוואה שמתעלמת מכך אינה מעודכנת.

OpenVPN 2.7 הופץ בפברואר 2026 עם תמיכה במודול ה-kernel המובנה ovpn, אשר מוזג לתוך Linux 6.16. זהו DCO (קיצור של data channel offload): ערוץ הבקרה נשאר ב-userspace, ונתיב הנתונים העיקרי עובר לתוך ה-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. בגרסה זו, תקבלו offload רק דרך החבילה הישנה יותר openvpn-dco-dkms, שבונה מודול חיצוני (out-of-tree) מול ה-kernel הפעיל שלכם, ולכן הוא נבנה מחדש בכל שדרוג kernel. זהו רכיב נוסף שדורש תחזוקה, בניגוד ל-WireGuard. הפצת Ubuntu 26.04 LTS כוללת את OpenVPN 2.7.0 ואת ה-kernel מסוג Linux 7.0, שניהם חדשים מספיק עבור ovpn, לכן בגרסה זו השורה modinfo לעיל היא זו שיש לבדוק.

קראו את האותיות הקטנות על DCO לפני שאתם מחשיבים זאת כסיבה להישאר. הוא תומך במנהרות Layer 3 בלבד, הוא מקבל רק צפני AEAD (הצפנה מאומתת עם נתונים נלווים: AES-GCM או ChaCha20-Poly1305), הוא אינו תומך בדחיסה, ובשרת הוא עובד רק עם topology subnet. כל אחת מהמגבלות הללו מסירה חלק מהגמישות שהייתה הטיעון המרכזי של OpenVPN מלכתחילה. OpenVPN מהיר הוא OpenVPN שהוגדר להיראות כמו WireGuard.

אל תסמכו על נתוני רוחב פס שפורסמו על ידי אף אחד, כולל דף זה. התקרה ב-VPS היא בדרך כלל הקצאת ה-CPU או מגבלת הרשת, ולא הפרוטוקול עצמו. מדדו את הביצועים שלכם בעצמכם עם iperf3 כשהוא רץ דרך המנהרה, לאחר מכן מחוצה לה, והשוו בין השניים.

מתי OpenVPN עדיין רלוונטי

עליך לעבור דרך פורט TCP 443. ‏WireGuard משתמש ב-UDP בלבד, מתוך כוונה תחילה, ולא מתוכנן לו מצב TCP. רשת של בית מלון שמסננת תעבורה לפי מספר פורט בלבד תאפשר בדרך כלל מעבר של OpenVPN המוגדר עם proto tcp-server ו-port 443. אין לטעות ולחשוב שמדובר בהסוואה: OpenVPN על גבי TCP משתמש ב-framing של חבילות משלו ולא ב-session רגיל של TLS, לכן firewall או proxy ארגוני שמבצע בדיקה (inspection) או termination של HTTPS עדיין יכול לזהות אותו ולחסום אותו. ‏WireGuard זקוק למעטפת (wrapper) כגון wstunnel או udp2raw כדי לחצות את אותה רשת, מה שמוסיף תהליך נוסף להרצה ולתחזוקה. שימו לב לקונפליקט: אם שרת אינטרנט כבר תופס את פורט TCP 443 בכתובת ה-IP הזו, אחד מהשניים חייב לעבור לפורט אחר.

כבר יש לך רשות אישורים (CA) פעילה. ‏OpenVPN מבצע אימות באמצעות תעודות X.509, לכן הוא משתלב בתשתית מפתח ציבורי (PKI) שאתה כבר מפעיל. תעודות פוקעות מעצמן, וניתן לבטל תעודה על ידי הוספתה לרשימת ביטול תעודות (CRL) שהשרת קורא דרך crl-verify. ב-WireGuard אין תעודות, אין תאריך תפוגה ואין רשימת ביטול. הסרת עמית (peer) משמעותה עריכת קובץ התצורה של השרת וטעינתו מחדש. עבור עשרה עמיתים זה תקין. עבור ארבע מאות, עם דרישות ביקורת, מודל התעודות מבצע עבורך עבודה משמעותית.

אתה זקוק למשתמשים בעלי שם, לא רק למפתחות. ‏OpenVPN יכול להעביר את תהליך האימות למערכת חיצונית באמצעות auth-user-pass-verify או תוסף כגון openvpn-plugin-auth-pam.so, וזו הדרך שבה מוסיפים LDAP או גורם אימות שני (OTP). ל-WireGuard אין מושג של משתמש כלל. מפתח או שנמצא בקובץ התצורה או שלא. אם הדרישה שלך היא "שרה חייבת להזין קוד מהטלפון שלה", WireGuard לא יכול לממש זאת בעצמו.

אתה זקוק לשכבה 2 (Layer 2), או ללקוח עבור מערכת ישנה. ‏OpenVPN עם dev tap מבצע גישור (bridging) של מסגרות Ethernet, דבר שחשוב עבור פרוטוקולי broadcast ועבור משחקי LAN ישנים. ‏WireGuard הוא בשכבה 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 verbose

OpenVPN דורש כברירת מחדל את 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 מעביר כל חבילת מידע דרך תהליך ב-userspace. עם OpenVPN 2.7 ומודול ה-kernel ovpn מגרסה 6.16 של Linux, נתיב הנתונים נמצא גם הוא ב-kernel ושני הפתרונות נמצאים באותה קטגוריה. בצעו מדידה עצמאית באמצעות iperf3 לאורך ה-tunnel במקום להסתמך על מספרים מבלוגים, שכן ב-VPS המגבלה היא בדרך כלל ה-CPU שלכם או מכסת רוחב הפס.

האם WireGuard יכול לרוץ על פורט TCP 443?

לא כשלעצמו. WireGuard מבוסס על UDP בלבד כחלק מהתכנון שלו, ולא מתוכנן עבורו מצב TCP. כדי לעבור ברשת שמאפשרת רק TCP 443, עליכם לעטוף אותו בתוך tunnel כגון wstunnel או udp2raw, מה שמוסיף תהליך שיש להריץ ולעדכן בשני הקצוות. אם מגבלה זו היא סביבת העבודה הרגילה שלכם, OpenVPN עם proto tcp-server ו-port 443 הוא הפתרון הפשוט יותר ברשת שמסננת לפי פורט בלבד, אם כי proxy שמבצע בדיקה (inspection) ל-HTTPS עדיין יכול לזהות ולחסום אותו.

האם OpenVPN אינו מאובטח כיום?

לא. גרסה עדכנית של OpenVPN עם צופן AEAD כגון AES-256-GCM ועם tls-crypt מופעל היא VPN תקין. הטיעון לטובת WireGuard נשען על משהו אחר: OpenVPN נושא הרבה יותר קוד והרבה יותר אפשרויות, ולכן הוא מציע למנהל מערכת עייף הרבה יותר דרכים להגדיר אותו בצורה שגויה. פחות אפשרויות בחירה משמען פחות טעויות.

במה כדאי לבחור עבור VPN אישי ב-VPS?

ב-WireGuard. זוג מפתחות אחד לכל מכשיר, קובץ הגדרות אחד של כעשר שורות, פורט UDP אחד פתוח, ו-handshake שמסתיים לפני שתבחינו שהוא התחיל. בחרו ב-OpenVPN רק אם אתם מתחברים באופן קבוע מרשתות שחוסמות UDP, או אם עליכם להשתלב בתוך רשות אישורים (CA) או ספריית משתמשים שכבר קיימת.

האם המאמר הזה היה מועיל?