Friday, July 5, 2024
HomeServerSecurityConnecting to Algo VPN Server from Linux and Android devices

Connecting to Algo VPN Server from Linux and Android devices

This is a continuation article for setting up a personal VPN with Algo VPN. In our previous post, we coved the installation of Algo VPN server. This article will focus on how you can connect to the Algo VPN Server from Linux and Android devices.

If you are connected to an insecure Network and you have an Algo VPN server instance in the cloud, you can always connect securely through it via your Android or Linux device. This article takes you through the whole process of connecting you to the Algo VPN instance. Let us cruise through.

Connecting to Algo VPN using an Android Device

Follow the steps below to connect your Android device to Algo VPN instance running on premise or in the clloud.

Install WireGuard VPN client

Go over to play store and search for WireGuard App. When you find it, go ahead and install it. This tutorial will cover the QR Code type of connection set-up in the App.

setup algo vpn client on android 01

Download QR Image from the Algo Server

The QR Images for the various users we had set-up when installing Algo server are located in a directory under the unzipped algo-master file. It will be found under:

/algo-master/configs//wireguard/USER.png

Download the desired image to your local computer using either scp or sftp commands. Once it is downloaded, proceed to the next step.

Connection Set Up

Open the installed WireGuard App and click on the plus + button to set-up a new connection.

setup algo vpn client on android 02

Tap on the Create from QR code option as shown below.

setup algo vpn client on android 03

Scan the downloaded QR Image most likely on your the screen of your local computer image viewer at the moment.

You will get a pop up window with “Import Tunnel from QR code” title. Enter any name at the cursor prompt and tap on “CREATE TUNNEL”.

setup algo vpn client on android 04 1

A connection request pop up will ensue. Just tap on ok and we are good to go. After the profile has been added, you can just swipe the profile’s tap box to the right wen you have your Wi-Fi connected to enjoy secure VPN from your Algo server in the cloud.

To prove that your traffic is going through your VPN server, just search for whatismyip.com and look at the public ip returned. It should be the one of your Algo VPN Server.

Connecting to Algo VPN using on Linux

For connecting to Algo VPN from a Linux machine, we will demo with Ubuntu system.

Step One: Add Wireguard’s repository

sudo add-apt-repository ppa:wireguard/wireguard

Step Two: Install WireGuard

After the repository is successfully added and system updated, go ahead and install Wireguard in your Ubuntu box

sudo apt update
sudo apt install wireguard

Step Three: Download/Copy Wireguard user config file from Algo Server

Log into your Algo server via sftp or any other utility such as scp and download one configuration file for a wireguard user you would like to use.

The config files are under /algo-master/configs/<PUBLIC IP>/wireguard/USER.conf. After you have it in your client Ubuntu box you can make a few adjustments to it if the following describes your client.

If the client is running Bionic (or another Linux that uses systemd-resolved for DNS) you should first edit the config file. Comment out the line that begins with DNS = and replace it with:

After you have it in your client Ubuntu box you can make a few adjustments to it if the following describes your client. If the client is running Bionic (or another Linux that uses systemd-resolved for DNS) you should first edit the config file. Comment out the line that begins with DNS = and replace it with:

PostUp = systemd-resolve -i %i --set-dns=172.16.0.1 --set-domain=~.

I did not edit the config file in my set up. I left it the way it was.

Step Four: Configure WireGuard

Finally, install the config file on your client as /etc/wireguard/wg0.conf and start WireGuard:

sudo install -o root -g root -m 600 jack.conf /etc/wireguard/wg0.conf 

Replace jack.conf with your configuration file.

Step Five: Start the WireGuard VPN Session and check if it is running

Run the following commands to start the WireGuard VPN Session.

sudo systemctl start wg-quick@wg0 
sudo systemctl status wg-quick@wg0

You should be able to see something like below if it is running

$ systemctl status wg-quick@wg0[email protected] - WireGuard via wg-quick(8) for wg0
    Loaded: loaded (/lib/systemd/system/[email protected]; disabled; vendor preset: enabled)
    Active: active (exited) since Sat 2022-02-09 23:46:31 EAT; 12s ago
      Docs: man:wg-quick(8)
            man:wg(8)
            https://www.wireguard.com/
            https://www.wireguard.com/quickstart/
            https://git.zx2c4.com/WireGuard/about/src/tools/man/wg-quick.8
            https://git.zx2c4.com/WireGuard/about/src/tools/man/wg.8
   Process: 7048 ExecStart=/usr/bin/wg-quick up %i (code=exited, status=0/SUCCESS)
  Main PID: 7048 (code=exited, status=0/SUCCESS) 

To confirm that the VPN Connection is up, do :

curl ipv4.icanhazip.com 

The above command will display the public IP of your Algo VPN server. Alternatively you can run the following command.

$ sudo wg
 sudo: unable to resolve host cloud
 interface: wg0
   public key: Y7AHdeFWOI2Zlx0jmxniMFNmcjld0Qivi61eF/bQeXw=
   private key: (hidden)
   listening port: 53762
   fwmark: 0xca6c
 peer: yv77/3optaIp/poGrlCHHCbetXvI1OGLybbJggKLkXk=
   endpoint: :51820
   allowed ips: 0.0.0.0/0, ::/0
   latest handshake: 1 minute, 14 seconds ago
   transfer: 3.34 KiB received, 3.18 KiB sent
   persistent keepalive: every 25 seconds 

Another way to confirm the connection was successful is to check your network interfaces. You will notice an interface like the one below:

wg0:  mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1
    link/none 
    inet 10.19.49.4/24 scope global wg0
       valid_lft forever preferred_lft forever

To setup other Linux systems as clients, check Linux client setup documentation.

Other VPN related articles:

Nicole Veronica Rubhabha
Nicole Veronica Rubhabha
A highly competent and organized individual DotNet developer with a track record of architecting and developing web client-server applications. Recognized as a personable, dedicated performer who demonstrates innovation, communication, and teamwork to ensure quality and timely project completion. Expertise in C#, ASP.Net, MVC, LINQ, EF 6, Web Services, SQL Server, MySql, Web development,
RELATED ARTICLES

Most Popular

Recent Comments