Except for common -mtu
, -stats
, -egd
options server
has the following ones:
-proto
network protocol to use. Can be udp (default), tcp or all.
-bind
Address (host:port
format) we must bind to.
-conf
Path to JSON file with the configuration.
-proxy
Start trivial HTTP Proxy server on specified host:port.
Configuration file is JSON file with following example structure:
{ "9b40701bdaf522f2b291cb039490312": { <-- Peer identifier "name": "stargrave", <-- OPTIONAL human readable name "up": "./stargrave-up.sh", <-- up-script "down": "./stargrave-down.sh", <-- OPTIONAL down-script "timeout": 60, <-- OPTIONAL overriden timeout "noise": true, <-- OPTIONAL noise enabler (default: false) "cpr": 64, <-- OPTIONAL constant packet rate in KiB/sec "verifier": "2c15bbdffc73193bea56db412bce1143c68ccbdaa9e2eade53a684497646a685" }, [...] }
See Verifier for its description.
up-script executes each time connection with the client is established.
Its stdout output must contain TAP interface name as the first
line. This script can be simple echo tap10
, or maybe more
advanced like this:
#!/bin/sh $tap=$(ifconfig tap create) ifconfig $tap inet6 fc00::1/96 mtu 1412 up echo $tap
Each minute server rereads and refreshes peers configuration and adds newly appeared identities, deletes an obsolete ones.
You can use convenient utils/newclient.sh
script for new client
creation:
% ./utils/newclient.sh Alice [...] Your id is: 7012df29deee2170594119df5091d4a2 Place the following JSON configuration entry on the server's side: "906e34b98750c4f686d6c5489508763c": { "name": "Alice", "up": "/path/to/up.sh", "verifier": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" } [...]