Skip to content

Skywire VPN Server

Erich Kästner edited this page Feb 9, 2021 · 7 revisions

Skywire VPN Server

Introduction

This guide explains the setup procedure and includes operating instructions of the Skywire VPN Server. Please refer to the Skywire VPN Client guide out in case you want to use Skywire VPN as a client by using the Skywire VPN Client.

Please note that the configuration & starting/stopping of the Skywire VPN Server can also be performed using the Skywire HypervisorUI via the Apps page of the respective Visor.

Table Of Contents


Installation

Prerequisites

In order to run a Skywire VPN server, you need to install

  • Golang v1.13 or higher
  • ip command
  • git

The Skywire VPN server currently only runs on Linux machines.

Note: For ease of setting up a connection to your VPN server, it is recommended to deploy the VPN server on a machine with a public IP. This will allow clients to establish stcpr transports which use a simple TCP connection instead of relayed connections over dmsg.

Install Skywire Visor

Start by cloning the Skywire repo

git clone https://github.com/skycoin/skywire

Change directories into the repository

cd skywire

Build and install Skywire with

make build; make install

Finally generate a configuration file with

skywire-cli visor gen-config 

Skywire VPN Server

The following outlines configurational & operational aspects of the Skywire VPN Server.

Configure Skywire VPN Server

The Skywire VPN server can be configured to require a passcode for authentication of clients or be freely accessible but in order to be publicly advertised in Skycoin's service discovery, it is required for the VPN server to be freely accessible without passcode!

If you wish to set a passcode, you can pass the following argument to the skywire-config.json

	{
		"name": "vpn-server",
		"auto_start": false,
		"port": 44,
		"args":["-passcode","123456", "-secure", "true"]
	}

In order to automatically start the VPN server upon startup of the Skywire Visor, set auto_start to true. Otherwise, the VPN server needs to be started manually after the Visor was started. The "-secure" flag prevents VPN client users from SSH'ing into the VPN-server's machine. It defaults to true.

Operating Skywire VPN Server

The following assumes that you either use multiple terminals or take care of detaching processes from the terminal yourself.

In order to run the Skywire VPN server, first run the Visor

sudo skywire-visor

Note: The VPN server requires root privileges to setup a TUN interface and configure the systems routing rules.

Afterwards, start the VPN server with

skywire-cli visor start-app vpn-server

In order to stop the VPN server you can either stop the Visor or run

skywire-cli visor stop-app vpn-server
Clone this wiki locally