How to set up your Shadowsocks encrypted VPN server to bypass censorship and stay safe online?

Published: 28 September 2023, 02:41 (Europe/Moscow)

How to set up your Shadowsocks encrypted VPN server to bypass censorship and stay safe online?

Internet censorship in some countries can severely restrict access to online information and services. In such circumstances, setting up your own VPN server with Shadowsocks encryption becomes an important way to bypass blockages and ensure online security. In this article, we will look at how to set up your own VPN server using Outline software and apply Shadowsocks to it to ensure anonymity and security on the Internet.

Server preparation

First of all, you will need a virtual private server (VPS) with a public IP address. You can rent a VPS from various providers. It is important to choose a server located in a country where the Internet is not censored.

For simple tasks, such as opening websites, exchanging text messages in messengers, etc., a host with minimal resources is suitable:

The cost of renting such a server is from 1$ to 3$ per month. You can add more resources as needed. The operating system is Ubuntu 20.04, the instructions are for this version of the system.

And so, the virtual machine is rented, access to it via SSH is available, Ubuntu is installed. Next we install the latest updates.

 sudo apt update sudo apt upgrade

Do a reboot of the machine afterwards if there is a need after installing the updates.

Install Outline Server

For installation we will use ready-made scripts from Jigsaw's outline-server project.

To install it, just execute the following command:

 sudo wget -qO- | bash

Docker and Outline services will be installed, as well as all dependencies. If necessary, you can install Docker yourself before running the script:

 sudo curl | sh

When the script finishes, it will output something like this content:


The console output will also contain information about the ports that need to be opened for OutlineVPN Manager to work. Add them to the allowed ports (replace only with your own values).