Skip to content

Instantly share code, notes, and snippets.

@hadisfr
Forked from okeehou/outline-server-setup.md
Last active March 25, 2024 12:17
Show Gist options
  • Star 24 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save hadisfr/b106dc9d0306cf7630e5b321f27ce8f3 to your computer and use it in GitHub Desktop.
Save hadisfr/b106dc9d0306cf7630e5b321f27ce8f3 to your computer and use it in GitHub Desktop.
How to setup an Outline VPN Server on Ubuntu 16.04

How to setup an Outline VPN Server on Ubuntu 16.04 Server

This guide will show you how to install Outline Server on an Ubuntu 16.04 Server and use Outline Manager.

Install Outline Manager

Outline Manager supports Windows, macOS and Linux.

Outline Manager for Windows

https://github.com/Jigsaw-Code/outline-releases/blob/master/manager/Outline-Manager.exe

Outline Manager for macOS

https://github.com/Jigsaw-Code/outline-releases/blob/master/manager/Outline-Manager.dmg

Install Outline Server

Requirement

  • An Ubuntu 16.04 Server
  • Sudo non-root user
  • Docker installed

Mainly, there are two ways to install Outline Server on an Ubuntu Server.

Simple way

Install Outline Manager on your computer, login to Digital Ocean using your own account and follow the instruction on the screen.

Die Hard

If you wanna use your own server or just don't like DO, this is for you.

Install Docker

You will need to install Docker on your server first. If not, run the following command:

sudo curl -sS https://get.docker.com/ | sh

Install Outline

All you need to do is run this command:

sudo wget -qO- https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh | bash

When you finished, the output should be like:

Please copy the following configuration to your Outline Manager:
{ 
  "apiUrl": "https://1.2.3.4:1234/XXXXXXXXXXXX", 
  "certSha256": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 
}

Just leave it there. You will need these information in the next step. That's enough for the server side. Now, we will move to the client side.

Allow Incoming Connections in Firewall

As the script may say,

If you have connection problems, it may be that your router or cloud provider blocks inbound connections, even though your machine seems to allow them.

  • If you plan to have a single access key to access your server make sure ports 41429 and are open for TCP and UDP on your router or cloud provider.
  • If you plan on adding additional access keys, you’ll have to open ports 1024 through 65535 on your router or cloud provider since the Outline Server may allocate any of those ports to new access keys.

So, You may need to allow connections by

ufw allow 1024:65535/tcp
ufw allow 1024:65535/udp

Get the access key

  1. Open Outline Manager. Scrool down to the Advanced Mode and click on Get started button;
  2. Copy everything within (include) the {} of the key on your server at the last step and paste it the field at the next screen;
  3. Click Done;
  4. There is a key automatically created for you (named 'My Access Key'). If you click 'Get Connected' next to it, you will be walked through how to download the appropriate client for your platform without needing to open up a new page. (Thanks to r/sandrigo);
  5. If you want to get a new key to share with your friends, Click Add key, and you will get something like "Key 1", click Share, it will show you the link to get the access key, click Copy to Clipboard and send it to your friends. (HEADS UP: EVERYONE WHO HAS THE LINK WILL BE ABLE TO CONNECT TO YOUR SERVER)
https://s3.amazonaws.com/outline-vpn/index.html#/invite/ss//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  1. Paste it to browser
  2. Click on Connect this device, it will show you the key, click Copy to get the key.

Connect to Outline

Outline supports macOS, Windows, iOS, Android and Chrome OS.

Windows

Windows 7.0+

Use this link to download Outline for Windows

https://raw.githubusercontent.com/Jigsaw-Code/outline-releases/master/client/Outline-Client.exe
  1. Install Outline for Windows to your computer. Open it.
  2. Click on + button at the upright corner.
  3. Paste the key you copied above to the field and click Add server
  4. Click Connect at the next screen, wait until it connected.
  5. Enjoy.

Note: If it shows "key invaild", just try to reconnect several times.

macOS

macOS 10.11+

Use this link to download Outline for macOS

https://itunes.apple.com/us/app/outline-app/id1356178125

Download Outline for macOS from Mac AppStore, and repeat the steps for Windows above.

iOS

iOS 9.0+
https://itunes.apple.com/us/app/outline-app/id1356177741?mt=8

Download Outline for iOS from AppStore, and repeat the steps for Windows above.

Android

Android 5.0+
https://play.google.com/store/apps/details?id=org.outline.android.client
https://github.com/Jigsaw-Code/outline-releases/blob/master/client/Outline.apk

Download Outline for Android from the CH Play or Github, and repeat the steps for Windows above.

Setting Outline to work with Proxy SwitchyOmega (Advanced)

By default, Outline uses different ports everytime you reconnect, then it's pretty hard to use Proxy SwitchyOmega. But if you really want to, so here is the way:

HEADS UP: YOU WILL NEED TO CHANGE THE PORT MANUALLY EVERYTIME YOU RECONNECT OUTLINE

  1. Firstly, you need to install the Proxy SwitchyOmega extension for Chrome or Proxy SwitchyOmega plugin for Firefox;
  2. Go to Proxy SwitchyOmega Options (Normally, right click on the Proxy SwitchyOmega icon in your browser > Options);
  3. Choose New Profile, give it a name (Here I use Outline VPN), select Proxy Profile and click Create.
  4. On the next screen, at Proxy servers, select HTTP from the scroll down menu, fill in 127.0.0.1 in the Server field.
  5. Open Internet Options in your computer (Open Network and Sharing Center > Internet Options), then select Connections > LAN Settings, look at Proxy Server, you will find the port you need.
  6. Back to Proxy SwitchyOmega Options, fill that port to the Port field, click Apply changes.
  7. Choose New Profile, give it a name (Here I use Auto - Outline), select Switch Profile and click Create.
  8. Click Add a rule lists, from Rule list rules, select Outline VPN.
  9. At Rule List Config section, select Auto Proxy, and paste the link below to Rule List URL field, click Apply changes, and then click Download Profile Now.
  10. Now, click on Proxy SwitchyOmega icon in your browser, choose Auto - Outline. By this way, you will save lots of traffic on your VPN server, and get the faster speed when connect to sites you don't want to or don't need to connect via a VPN.

Conclusion

Pros

  • Easy to setup
  • Simple and friendly UI client
  • Secure
  • From Google, haha.

One more thing

  • This guide is free for use. But if you want to get me some coffee, just send it to my [okeehou's] Paypal: https://paypal.me/pmtuan. Much appreciate!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment