Except for common -stats, -egd options client has the following ones:
Network protocol to use. Can be udp (default), tcp or all.
Address (host:port format) we must bind to.
Path to YAML file with the configuration.
Start trivial HTTP Proxy server on specified host:port.
Configuration file is YAML file with following example structure:
stargrave: { <-- Peer human readable name
iface: tap10 <-- OPTIONAL TAP interface name
mtu: 1514 <-- OPTIONAL overriden MTU
up: ./stargrave-up.sh <-- OPTIONAL up-script
down: ./stargrave-down.sh <-- OPTIONAL down-script
timeout: 60 <-- OPTIONAL overriden timeout
timesync: 0 <-- OPTIONAL time synchronization requirement
noise: No <-- OPTIONAL noise enabler
cpr: 64 <-- OPTIONAL constant packet rate, KiB/sec
encless: No <-- OPTIONAL Encryptionless mode
verifier: $argon2d... <-- verifier received from client
[...]
At least one of either iface or up must be specified. If
you specify iface, then it will be forcefully used to determine
what TAP interface will be used. If it is not specified, then
up-script must output interface’s name to stdout
(first output line).
For example up-script can be just echo tap10, or more advanced
like the following one:
#!/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 client verifier is: $argon2d$m=4096,t=128,p=1$bwR5VjeCYIQaa8SeaI3rqg
Place the following YAML configuration entry on the server's side:
Alice:
up: /path/to/up.sh
iface: or TAP interface name
verifier: $argon2d$m=4096,t=128,p=1$bwR5VjeCYIQaa8SeaI3rqg$KCNIqfS4DGsBTtVytamAzcISgrlEWvNxan1UfBrFu10
Example configuration file:
stargrave:
iface: tap0
verifier: $argon2d$m=4096,t=128,p=1$VMirzcshcHuG2V4jhUsEjw$X5fC07L8k61h3S1Oro/rC76+m0oGDTA9Bq+aWJ1uOgY
slow:
iface: tap1
encless: Yes
mtu: 9000
cpr: 384
verifier: $argon2d$m=4096,t=128,p=1$YbIA5garDqCOhtI/2EZVNg$gOo5vcEGynmpeepNscwclicfZsWxzgYFRLbgG21EZ1U