{"id":20067,"date":"2024-02-07T07:45:06","date_gmt":"2024-02-07T04:45:06","guid":{"rendered":"https:\/\/kifarunix.com\/?p=20067"},"modified":"2024-03-10T16:03:29","modified_gmt":"2024-03-10T13:03:29","slug":"install-wireguard-vpn-client-ubuntu-24-04","status":"publish","type":"post","link":"https:\/\/kifarunix.com\/install-wireguard-vpn-client-ubuntu-24-04\/","title":{"rendered":"Install WireGuard VPN Client Ubuntu 24.04"},"content":{"rendered":"\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/kifarunix.com\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/install-wireguard-vpn-on-linux.png&quot;,&quot;figureClassNames&quot;:&quot;wp-block-image size-full&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-20054&quot;,&quot;imgStyles&quot;:null,&quot;targetWidth&quot;:1043,&quot;targetHeight&quot;:585,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Enlarge image: Install WireGuard VPN Client Ubuntu 24.04&quot;,&quot;alt&quot;:&quot;Install WireGuard VPN Client Ubuntu 24.04&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1043\" height=\"585\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2024\/02\/install-wireguard-vpn-on-linux.png\" alt=\"Install WireGuard VPN Client Ubuntu 24.04\" class=\"wp-image-20054\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2024\/02\/install-wireguard-vpn-on-linux.png?v=1707237999 1043w, https:\/\/kifarunix.com\/wp-content\/uploads\/2024\/02\/install-wireguard-vpn-on-linux-768x431.png?v=1707237999 768w\" sizes=\"(max-width: 1043px) 100vw, 1043px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge image: Install WireGuard VPN Client Ubuntu 24.04\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"context.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"context.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p>This guide will take you through how to install <a href=\"https:\/\/www.wireguard.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">WireGuard<\/a> VPN Client Ubuntu 24.04. If you are using WireGuard as your VPN server, then you might want to configure your end points as VPN clients.<\/p>\n\n\n\n<p>To learn how to configure WireGuard VPN server on Ubuntu 24.04, follow the guide below;<\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/install-wireguard-vpn-server-on-ubuntu-24-04\/\" target=\"_blank\" rel=\"noreferrer noopener\">Install WireGuard VPN Server on Ubuntu 24.04<\/a><\/p>\n\n\n\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\"><h2>Table of Contents<\/h2><nav><ul><li><a href=\"#installing-wire-guard-vpn-client-ubuntu-24-04\">Installing WireGuard VPN Client Ubuntu 24.04<\/a><ul><li><a href=\"#run-system-update\">Run system Update<\/a><\/li><li><a href=\"#install-wire-guard-vpn-client\">Install WireGuard VPN Client<\/a><\/li><li><a href=\"#configure-wire-guard-vpn-client\">Configure WireGuard VPN Client<\/a><ul><li><a href=\"#generate-the-wire-guard-vpn-client-private-and-public-keys\">Generate the WireGuard VPN Client Private and Public keys<\/a><\/li><li><a href=\"#create-wire-guard-vpn-client-configuration\">Create WireGuard VPN Client Configuration<\/a><\/li><\/ul><\/li><li><a href=\"#configure-wire-guard-vpn-server-to-allow-vpn-clients-connections\">Configure WireGuard VPN Server to Allow VPN Clients Connections<\/a><\/li><li><a href=\"#running-wire-guard-vpn-client-service\">Running WireGuard VPN Client Service<\/a><\/li><li><a href=\"#verify-interconnection-between-vpn-server-and-clients\">Verify Interconnection Between VPN Server and Clients<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"installing-wire-guard-vpn-client-ubuntu-24-04\">Installing WireGuard VPN Client Ubuntu 24.04<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"run-system-update\">Run system Update<\/h3>\n\n\n\n<p>Run the commands below to update system package cache;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo apt update<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"install-wire-guard-vpn-client\">Install WireGuard VPN Client<\/h3>\n\n\n\n<p>Next, execure the command below to install WireGuard VPN Client.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo apt install wireguard resolvconf -y<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"configure-wire-guard-vpn-client\">Configure WireGuard VPN Client<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"generate-the-wire-guard-vpn-client-private-and-public-keys\">Generate the WireGuard VPN Client Private and Public keys<\/h4>\n\n\n\n<p>In our previous guide to setup the WireGuard VPN server, we have already generated the keys for our test clients.<\/p>\n\n\n\n<p><strong>Hence, we will just copy the respective keys to the respective clients.<\/strong><\/p>\n\n\n\n<pre id=\"block-5987dd71-7c2d-4d7d-a8de-68c2fc3c8f5e\" class=\"wp-block-preformatted\">[[ -d \/etc\/wireguard\/ ]] || mkdir \/etc\/wireguard\/<\/pre>\n\n\n\n<p id=\"block-9cebd6b2-37da-4456-a4a2-6bf9f8dd1f70\"><strong>In our setup, we have already copied the client keys to the respective clients;<\/strong><\/p>\n\n\n\n<p>On Ubuntu client<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo ls -1 \/etc\/wireguard\/<\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>ubuntu.key\nubuntu.pub.key\nwireguard.pub.key\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"create-wire-guard-vpn-client-configuration\">Create WireGuard VPN Client Configuration<\/h4>\n\n\n\n<p>On each client system, create the configuration file. You would simply run the command below to create the configuration file.<\/p>\n\n\n\n<p><strong>Replace the client IP addresses and Private keys accordingly.<\/strong><\/p>\n\n\n\n<p>Ubuntu Client<\/p>\n\n\n\n<pre class=\"scroll-box\"><code>sudo tee \/etc\/wireguard\/wg0.conf &lt;&lt; 'EOL'\n[Interface]\nPrivateKey = GODF2MimY+nATXMbjJUdCo19Q7edYEOg3PuegNSad1o=\nAddress = 10.8.0.20\nDNS = 8.8.8.8\n\n[Peer]\nPublicKey = T6gaFyJEWRucHFzpJJFYPpFv6EH3r2lnXxLHMP8eshU=\nAllowedIPs = 10.8.0.0\/24\nEndpoint = 192.168.56.104:51820\nPersistentKeepalive = 20\nEOL\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"configure-wire-guard-vpn-server-to-allow-vpn-clients-connections\">Configure WireGuard VPN Server to Allow VPN Clients Connections<\/h3>\n\n\n\n<p>On your WireGuard VPN Server, you need to enable VPN clients peer to peer connections.<\/p>\n\n\n\n<p>To enable this, you need to obtain the Public keys for each client. For example, in my setup, I have three clients whose public keys are generated already.<\/p>\n\n\n\n<p>This has been done already in our WireGuard VPN Server setup. Check the link below;<\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/install-wireguard-vpn-server-on-ubuntu-24-04\/#configure-wire-guard-vpn-clients\" target=\"_blank\" rel=\"noreferrer noopener\">Configure WireGuard VPN Server to Allow VPN Clients Connections<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"running-wire-guard-vpn-client-service\">Running WireGuard VPN Client Service<\/h3>\n\n\n\n<p>On the WireGuard VPN Clients, you can start the service now either using the wg-quick or systemd!;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo systemctl start wg-quick@wg0<\/pre>\n\n\n\n<p>Checking the status;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">systemctl status wg-quick@wg0<\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>\u25cf wg-quick@wg0.service - WireGuard via wg-quick(8) for wg0\n     Loaded: loaded (\/lib\/systemd\/system\/wg-quick@.service; disabled; preset: enabled)\n     Active: active (exited) since Tue 2024-02-06 20:51:51 CET; 8s ago\n       Docs: man:wg-quick(8)\n             man:wg(8)\n             https:\/\/www.wireguard.com\/\n             https:\/\/www.wireguard.com\/quickstart\/\n             https:\/\/git.zx2c4.com\/wireguard-tools\/about\/src\/man\/wg-quick.8\n             https:\/\/git.zx2c4.com\/wireguard-tools\/about\/src\/man\/wg.8\n    Process: 3600 ExecStart=\/usr\/bin\/wg-quick up wg0 (code=exited, status=0\/SUCCESS)\n   Main PID: 3600 (code=exited, status=0\/SUCCESS)\n        CPU: 28ms\n\nFeb 06 20:51:51 noble-numbat systemd[1]: Starting wg-quick@wg0.service - WireGuard via wg-quick(8) for wg0...\nFeb 06 20:51:51 noble-numbat wg-quick[3600]: [#] ip link add wg0 type wireguard\nFeb 06 20:51:51 noble-numbat wg-quick[3600]: [#] wg setconf wg0 \/dev\/fd\/63\nFeb 06 20:51:51 noble-numbat wg-quick[3600]: [#] ip -4 address add 10.8.0.20 dev wg0\nFeb 06 20:51:51 noble-numbat wg-quick[3600]: [#] ip link set mtu 1420 up dev wg0\nFeb 06 20:51:51 noble-numbat wg-quick[3626]: [#] resolvconf -a wg0 -m 0 -x\nFeb 06 20:51:51 noble-numbat wg-quick[3600]: [#] ip -4 route add 10.8.0.0\/24 dev wg0\nFeb 06 20:51:51 noble-numbat systemd[1]: Finished wg-quick@wg0.service - WireGuard via wg-quick(8) for wg0.\n<\/code><\/pre>\n\n\n\n<p>Once done on all clients, check IP address assignment.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ip add show wg0<\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>4: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000\n    link\/none \n    inet 10.8.0.20\/32 scope global wg0\n       valid_lft forever preferred_lft forever\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"verify-interconnection-between-vpn-server-and-clients\">Verify Interconnection Between VPN Server and Clients<\/h3>\n\n\n\n<p>Confirm client connection to the server;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo wg<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>interface: wg0\n  public key: ucQSU4bqZn0Pll+hgfLNZC8JNDMymOGifyiwp\/iKIjc=\n  private key: (hidden)\n  listening port: 46230\n\npeer: T6gaFyJEWRucHFzpJJFYPpFv6EH3r2lnXxLHMP8eshU=\n  endpoint: 192.168.56.104:51820\n  allowed ips: 10.8.0.0\/24\n  latest handshake: 40 seconds ago\n  transfer: 476 B received, 628 B sent\n  persistent keepalive: every 20 seconds\n<\/code><\/pre>\n\n\n\n<p>You can run the same command on the server as well.<\/p>\n\n\n\n<p>Now, try to ping the vpn server on the client;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ping 10.8.0.1 -c 3<\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.\n64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=2.60 ms\n64 bytes from 10.8.0.1: icmp_seq=2 ttl=64 time=1.80 ms\n64 bytes from 10.8.0.1: icmp_seq=3 ttl=64 time=1.69 ms\n\n--- 10.8.0.1 ping statistics ---\n3 packets transmitted, 3 received, 0% packet loss, time 2006ms\nrtt min\/avg\/max\/mdev = 1.689\/2.032\/2.604\/0.406 ms\n<\/code><\/pre>\n\n\n\n<p>Ping the client from the server;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ping -c 4 10.8.0.20<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>PING 10.8.0.20 (10.8.0.20) 56(84) bytes of data.\n64 bytes from 10.8.0.20: icmp_seq=1 ttl=64 time=1.30 ms\n64 bytes from 10.8.0.20: icmp_seq=2 ttl=64 time=2.03 ms\n64 bytes from 10.8.0.20: icmp_seq=3 ttl=64 time=1.43 ms\n64 bytes from 10.8.0.20: icmp_seq=4 ttl=64 time=1.82 ms\n\n--- 10.8.0.20 ping statistics ---\n4 packets transmitted, 4 received, 0% packet loss, time 3005ms\nrtt min\/avg\/max\/mdev = 1.302\/1.646\/2.033\/0.293 ms\n<\/code><\/pre>\n\n\n\n<p>Your clients should now be able to communicate with each other.<\/p>\n\n\n\n<p>And that concludes our guide on how to install WireGuard VPN client  on Ubuntu.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This guide will take you through how to install WireGuard VPN Client Ubuntu 24.04. If you are using WireGuard as your VPN server, then you<\/p>\n","protected":false},"author":10,"featured_media":20054,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_lock_modified_date":false,"footnotes":""},"categories":[34,121,321],"tags":[7388,7387],"class_list":["post-20067","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-security","category-howtos","category-vpn","tag-ubuntu-24-04-wireguard-vpn-client","tag-wireguard-vpn-client-ubuntu-24-04","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-50","resize-featured-image"],"_links":{"self":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/20067"}],"collection":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/comments?post=20067"}],"version-history":[{"count":5,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/20067\/revisions"}],"predecessor-version":[{"id":20930,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/20067\/revisions\/20930"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media\/20054"}],"wp:attachment":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media?parent=20067"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/categories?post=20067"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/tags?post=20067"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}