Skip to content

Install TVPN on Mac

Install

  1. Download the installer: SomewearTVPN.dmg
  2. Launch the downloaded .dmg file to install.
  3. Launch the SomewearTVPN application.
  4. Click the Somewear logo in your menu bar.
  5. Click Sign In — if it’s not visible, toggle TVPN on first.
  6. Your browser opens to the Somewear web app.
  7. A new tab opens — sign in with your Somewear account email.
  8. Once you see confirmation that you’re authenticated, close the tab and return to your terminal.

Ping test

  1. You’ll need at least 2 devices with TVPN installed for this test.
  2. Open your Terminal application.
  3. tvpn ip list — lists the virtual IPs in your Workspace. Copy one (not your own).
  4. ping <ip> — ping it. This may take a second or two if TVPN is still booting up in the background.
  5. Ctrl+C to stop the ping.

Configuration

TVPN’s configuration file is at /var/lib/somewear/tvpn/config.toml. Edit it and restart TVPN (tvpn down && tvpn up) to apply changes. Run tvpn -h for the full list of settings.

Here’s a complete example:

[api]
key = "wk_1a2b3c4d5e6f:sk_9f8e7d6c5b4a3210"
# The API hostname. You only need to change this if you're using Somewear Self-Hosted
host = "api.somewear.co"
[log]
# The log level: trace, debug, info, warn, error, or off.
level = "info"
# The log style: compact or logfmt.
style = "logfmt"
# Whether to write to stdout.
stdout = true
[log.filesystem]
# The maximum size in MB to use for log files.
max-size-mb = 50
# The maximum number of log files to use.
max-files = 5
[tls]
# TLS cryptographic profile: PQ_HYBRID (default), CNSA_2_0, or CNSA_1_0.
profile = "PQ_HYBRID"
# TLS session rekey interval in seconds; sessions older than this trigger re-handshake.
rekey-interval = 3600
# When true, allow loading TLS certificates from filesystem as a fallback
# when IPC cert bundles are unavailable. Defaults to false.
cert-files = false
[endpoint-id.rotation]
# Endpoint ID rotation interval in seconds.
interval = 86400
[traffic-policy]
# Traffic policy toggle, default is false. When true, the daemon attempts to load traffic-policy.toml.
enabled = false
[tun]
# The MTU to use on the TUN device.
mtu = 1400
[interfaces]
# The list of interfaces which should not be used to route traffic through or receive traffic from.
disabled = ["eth1", "wlan2"]
# The list of interfaces that would be disabled by tvpn based on their name but
# we want to allow them to be used. Interfaces in here are still bound to the
# usual rules, like whether it's up, operational, etc.
allowed = ["br-lan"]
# Whether to allow virtual interfaces.
allow-virtual = false
[gateway-routes]
# Whether to enable the use of literal routes. This is needed on every endpoint if you're using literal routes
allow-literal = true
# The list of literal gateway routes.
literal = ["192.168.10.0/24"]
# The list of virtual routes; each maps a physical range to a virtual range.
[[gateway-routes.virtual]]
physical = "192.168.1.0/24"
virtual = "100.127.0.0/24"
[[gateway-routes.virtual]]
physical = "10.0.2.0/24"
virtual = "100.127.1.0/24"
[relays]
# The list of relay servers to use.
servers = ["uswest1-0.relay.somewear.app", "uscentral1-0.relay.somewear.app", "useast4-0.relay.somewear.app"]