Client: Difference between revisions

From Bondix Wiki
No edit summary
No edit summary
 
(22 intermediate revisions by 3 users not shown)
Line 1: Line 1:
The Bondix SANE client is the software that you install on your [[Client/Supported Devices|supported]] router, which establishes a connection to the [[Server|server]] using multiple WAN links.


For '''OpenWRT''' based routers, please check [[Client/OpenWRT|this page]].
__NOINDEX__
 
__NONEWSECTIONLINK__
= Installation =
Log into your router via SSH and do the following:
{| class="wikitable"
|-
| Create installation directory || <code>mkdir -p /opt/bondix
cd /opt/bondix</code>
|-
| Download installation package || <code>curl -o sane.tar.gz <DOWNLOAD-URL></code>
|-
| Extract package || <code>tar -xvzf sane.tar.gz</code>
|}
 
You can verify that the correct version has been installed with the command
<code>/opt/bondix/client/saneclient --version</code>
 
If successful, it should print its version string.
 
= Configuration =
Configuration is done using [https://www.json.org/ JSON]formatted commands. By default, SANE checks for the existence of a configuration file in its installation directory (e.g. <code>/opt/bondix/client/saneclient.json</code>) and at <code>/etc/saneclient.json</code>. If you want saneclient to load a configuration from a different location, you can specify it using a command line parameter.
 
== Quick Start ==
This example provides the minimal necessities to get a tunnel up and running:
<nowiki>[
  {"action": "create", "target": "tunnel", "name": "TUNNELNAME", "password": "TUNNELPASSWORD"},
  {"action": "add-server", "target": "tunnel", "host": "ENDPOINTSERVER", "port": "443"},
  {"action": "create-interfaces", "target": "tunnel", "interfaces": {
    "eth1": "mobileAggressive",
    "wwan0": "mobileAggressive",
    "wwan1": "mobileAggressive"
  }},
  {"target": "tunnel", "action": "set-preset", "preset": "bonding"}
]
</nowiki>
 
== Client Commands ==
 
**todo**
 
= Running =
The software can be run in the shell using <code>/opt/bondix/client/saneclient</code>, where it will run in the foreground. However, it is recommended to start the service automatically on startup, which can be different depending on the platform.
== Parameters ==
{| class="wikitable"
|-
| <code>--daemon</code> || Runs the software as a daemon.
|-
| <code>--nopid</code> || Does not attempt to create a pid-file at <code>/var/run/saneclient.pid</code>
|-
| <code>--listflags</code> || Lists available feature flags
|-
| <code>--flags <FLAG1> <FLAG2>... </code> || Enables the specified flag(s). Multiple flags are separated using space.
|-
| <code></path/to/filename.json></code> || JSON configuration file that should be used
|}
== Feature Flags ==
Feature flags are switches that enable certain features that are otherwise unavailable. These features are usually experimental and should
{| class="wikitable"
|-
| useBlake || Switches from SHA256 to the "blake" hashing algorithm. Depending on architecture, this can slightly improve performance.
|-
| useBlake3 || Switches to the "blake3" hashing algorithm. Depending on architecture, this can slightly improve performance.
|-
| disableHash || Disables hashing completely, allowing potential MitM, with a vast speed improvement.
|-
| useMMSG || uses useMMSG linux socket API to send & receive multiple UDP packets at once. This improves performance under load, while stable there are some corner cases which can trigger error messages in the log.
|-
| channelRoutes || Makes the client create specific routes for each channel. Experimental, do not use.
|-
| bondingProxy || Enables the TCP [[Bonding Proxy]].
|}

Latest revision as of 09:54, 13 October 2026