### Install Netclient on Linux Source: https://learn.netmaker.io/getting-started/walkthrough/how-to-add-devices Use this command to download, install, and configure the Netclient agent on Linux systems. It handles binary download, permissions, and service setup. ```bash curl -s "https://install.netmaker.io" | bash ``` -------------------------------- ### Query Documentation Example Source: https://learn.netmaker.io/getting-started/server-and-client-management/server-installation/ha-installation-on-kubernetes To get more information not present on the page, make an HTTP GET request to the page URL with an 'ask' query parameter containing your question. ```http GET https://learn.netmaker.io/getting-started/server-and-client-management/server-installation/ha-installation-on-kubernetes.md?ask= ``` -------------------------------- ### Verify Netclient Installation Source: https://learn.netmaker.io/getting-started/operations-field-guide/troubleshooting Confirm that the netclient is installed and accessible by running the `netclient` command. If it fails, follow the installation documentation. ```bash netclient ``` -------------------------------- ### Dynamic Documentation Query Example Source: https://learn.netmaker.io/getting-started/walkthrough/how-to-view-metrics-and-audit-logs Perform an HTTP GET request to the current page URL with the 'ask' query parameter to dynamically query the documentation. The question should be specific and in natural language. ```bash GET https://learn.netmaker.io/getting-started/walkthrough/how-to-view-metrics-and-audit-logs.md?ask= ``` -------------------------------- ### Install Netmaker Community Edition Source: https://learn.netmaker.io/getting-started/quick-start/platform-installation Execute this script to download and run the Netmaker Community Edition installer for a self-hosted setup. Ensure you have sudo privileges. ```bash sudo wget -qO /root/nm-quick.sh https://raw.githubusercontent.com/gravitl/netmaker/master/scripts/nm-quick.sh && sudo chmod +x /root/nm-quick.sh && sudo /root/nm-quick.sh ``` -------------------------------- ### Install Netclient Binary Source: https://learn.netmaker.io/getting-started/server-and-client-management/upgrading-your-client-and-server Rename the downloaded binary to 'netclient' and move it to the '/etc/netclient/' directory to complete the installation. ```bash mv netclient-myversion /etc/netclient/netclient ``` -------------------------------- ### Uninstall Netmaker Server (Quickstart) Source: https://learn.netmaker.io/references/troubleshooting If you followed the quick-start guide, use this command to stop and remove Netmaker server containers and volumes. ```bash sudo docker-compose -f docker-compose.quickstart.yml down --volumes ``` -------------------------------- ### OpenWRT fstab Configuration for Extroot Source: https://learn.netmaker.io/help-articles/setup-and-install-docker-netclient-on-openwrt This is an example configuration for /etc/config/fstab that sets up an external drive as the primary storage for installing packages on OpenWRT. ```config config 'global' option anon_swap '0' option anon_mount '0' option auto_swap '1' option auto_mount '1' option delay_root '5' option check_fs '0' config mount option target '/overlay' option device '/dev/sda1' option fstype 'ext4' option options 'rw,sync' option enabled '1' option enabled_fsck '0' ``` -------------------------------- ### Install Netclient on Windows (Bundled Installer) Source: https://learn.netmaker.io/getting-started/server-and-client-management/client-installation/netclient-installation Installs Netclient on Windows using the bundled executable. The 'quiet' flag enables silent installation. ```powershell .\netclientbundle.exe quiet ``` -------------------------------- ### Install Netclient on Ubuntu Source: https://learn.netmaker.io/how-to-guides/create-aws-remote-access-vpn-with-wireguard-deprecated Install the Netclient on your gateway device to connect it to Netmaker. Ensure your device meets the gateway requirements. ```bash sudo apt update sudo apt install netclient -y sudo netclient install --config-dir /etc/netclient --state-dir /var/lib/netclient --log-dir /var/log/netclient sudo netclient join --netid --api-token ``` -------------------------------- ### Install Netclient on OpenSUSE Source: https://learn.netmaker.io/getting-started/server-and-client-management/client-installation/netclient-installation Installs Netclient on OpenSUSE distributions using zypper. This includes importing the GPG key and configuring the repository. ```bash sudo rpm --import https://rpm.netmaker.org/gpg.key curl -sL 'https://rpm.netmaker.org/netclient-repo' | sudo tee /etc/zypp/repos.d/netclient.repo sudo zypper refresh sudo zypper install netclient ``` -------------------------------- ### Install Netclient Source: https://learn.netmaker.io/getting-started/quick-start/setup-guide Follow the installation instructions for your operating system. This command retrieves local settings, submits them to the server, and configures the local network. ```bash sudo netclient install ``` -------------------------------- ### Install Docker and Docker Compose Source: https://learn.netmaker.io/getting-started/server-and-client-management/client-installation/netclient-installation Installs Docker and docker-compose on Debian/Ubuntu systems. Ensure Docker is set up before proceeding with containerized Netclient. ```bash sudo apt-get update sudo apt-get install -y docker.io docker-compose ``` -------------------------------- ### Install Remote Access Client on Ubuntu/Debian Source: https://learn.netmaker.io/getting-started/server-and-client-management/client-installation/netmaker-desktop-installation?q=netmaker+desktop Follow these steps to install the Remote Access Client on Ubuntu or Debian systems. This includes adding the Netmaker repository and installing the client package. ```bash curl -sL 'https://apt.netmaker.org/remote-client/gpg.key' | sudo tee /etc/apt/trusted.gpg.d/remote-client.asc curl -sL 'https://apt.netmaker.org/remote-client/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/remote-client.list sudo apt update sudo apt search remote-client # to see available versions sudo apt install remote-client ``` -------------------------------- ### Install Netclient on macOS (Brew) Source: https://learn.netmaker.io/getting-started/server-and-client-management/client-installation/netclient-installation Installs Netclient on macOS using Homebrew. This involves tapping the Netclient repository and then installing the package. ```bash brew tap gravitl/netclient # (optional) brew audit netclient brew install netclient ``` -------------------------------- ### Install Netclient on Arch Linux Source: https://learn.netmaker.io/getting-started/server-and-client-management/client-installation/netclient-installation Installs Netclient on Arch Linux and its derivatives using the AUR helper 'yay'. ```bash yay -S netclient ``` -------------------------------- ### Install Netclient on Windows Source: https://learn.netmaker.io/getting-started/server-and-client-management/upgrading-your-client-and-server Stop the Netclient service and then run the installer executable with administrator privileges. This is the manual method for upgrading clients on Windows. ```powershell net stop netclient C:\Users\User\Downloads\netclient-windows-amd64.exe install ``` -------------------------------- ### Install traceroute on Ubuntu Source: https://learn.netmaker.io/getting-started/operations-field-guide/troubleshooting Install the traceroute utility on Ubuntu systems to diagnose network path issues. ```bash sudo apt install traceroute ``` -------------------------------- ### Install Docker on OpenWRT Source: https://learn.netmaker.io/help-articles/setup-and-install-docker-netclient-on-openwrt Install the Docker daemon and client packages on OpenWRT using opkg. This enables containerization capabilities on the device. ```shell opkg install dockerd docker ``` -------------------------------- ### Install Docker and Docker Client on OpenWRT Source: https://learn.netmaker.io/help-articles/making-openwrt-successfully-integrate-with-the-netmaker-network Install Docker and Docker Client packages on OpenWRT. This is a prerequisite for running Netclient as a Docker container. ```sh opkg update opkg install dockerd docker ``` -------------------------------- ### Install Netclient on Debian/Ubuntu Source: https://learn.netmaker.io/getting-started/server-and-client-management/client-installation/netclient-installation Installs Netclient on Debian-based Linux distributions using apt. This involves adding the Netmaker GPG key and repository. ```bash curl -sL 'https://apt.netmaker.org/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/netmaker-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/netmaker-keyring.gpg] https://apt.netmaker.org stable main" | sudo tee /etc/apt/sources.list.d/netclient.list sudo apt update sudo apt install netclient ``` -------------------------------- ### Example Response for List All User Roles Source: https://learn.netmaker.io/api-spec/users This is an example of the JSON response when listing all user roles, showing the structure of a single role object. ```json [ { "default": true, "deny_dashboard_access": true, "full_access": true, "global_level_access": { "ANY_ADDITIONAL_PROPERTY": { "ANY_ADDITIONAL_PROPERTY": { "create": true, "delete": true, "read": true, "self_only": true, "update": true, "vpn_access": true } } }, "id": "super-admin", "meta_data": "text", "name": "text", "network_id": "all_networks", "network_level_access": { "ANY_ADDITIONAL_PROPERTY": { "ANY_ADDITIONAL_PROPERTY": { "create": true, "delete": true, "read": true, "self_only": true, "update": true, "vpn_access": true } } } } ] ``` -------------------------------- ### Install Netclient on Linux/Freebsd/Darwin Source: https://learn.netmaker.io/getting-started/server-and-client-management/upgrading-your-client-and-server Download the latest Netclient binary and run the install command. This is the manual method for upgrading clients on Linux, FreeBSD, and macOS. ```bash ./netclient install ``` -------------------------------- ### Get HA Configuration File Source: https://learn.netmaker.io/api-spec/config-files Retrieves the WireGuard configuration file for a specified network, which is useful for High Availability setups. ```APIDOC ## GET /api/v1/client_conf/{network} ### Description Get config file HA configuration ### Method GET ### Endpoint /api/v1/client_conf/{network} ### Parameters #### Path Parameters - **network** (string) - Required - Network ID #### Query Parameters None #### Request Body None ### Request Example None ### Response #### Success Response (200) - **(string)** - WireGuard config file #### Response Example ```json "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----" ``` #### Error Response (403, 500) - **code** (integer) - Error code - **message** (string) - Error message - **response** (object) - Additional response details ``` -------------------------------- ### Example MQ Logs Source: https://learn.netmaker.io/getting-started/server-and-client-management/upgrading-your-client-and-server Observe these log entries to confirm successful MQ startup and client connections after an upgrade. ```plaintext Waiting for netmaker server to startup ... Starting MQ... 1665067766: mosquitto version 2.0.11 starting ... 1665067769: New client connected from 172.21.0.2:34004 as L0vUDgN0IZFru9VaS6HoRL5 (p2, c1, k60, u'Netmaker-Admin'). ``` -------------------------------- ### Get HA Client Configuration File Source: https://learn.netmaker.io/api-spec/config-files Retrieve the WireGuard configuration file for High Availability setups. Requires the network ID as a path parameter. ```json {"openapi":"3.1.1","info":{"title":"NetMaker","version":"1.4.0"},"tags":[],"servers":[{"url":"http://api.demo.netmaker.io"}],"security":[{"oauth":[]}], ``` ```json "paths":{"/api/v1/client_conf/{network}":{"get":{"parameters":[{"schema":{"type":"string"},"description":"Network ID","in":"path","name":"network","required":true}] ``` ```json "responses":{"200":{"description":"WireGuard config file","content":{"application/json":{"schema":{"type":"string"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/models.ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/models.ErrorResponse"}}}}},"summary":"Get config file HA configuration","tags":["Config Files"]}}},"components":{"schemas":{"models.ErrorResponse":{"properties":{"code":{"type":"integer"},"message":{"type":"string"},"response":{}},"type":"object"}}}} ``` -------------------------------- ### Get User Settings Response (JSON) Source: https://learn.netmaker.io/api-spec/users Example JSON response for retrieving user settings. Includes options for reduced motion, text size, and theme. ```json { "reduced_motion": true, "text_size": "text", "theme": "dark" } ``` -------------------------------- ### SSH to Server Source: https://learn.netmaker.io/getting-started/server-and-client-management/upgrading-your-client-and-server Connect to your server via SSH to begin the upgrade process. ```bash ssh root@my-server-ip ``` -------------------------------- ### Get Individual Node Source: https://learn.netmaker.io/api-spec/nodes Retrieves detailed information about a specific node within a given network. This is useful for monitoring and managing individual devices in your Netmaker setup. ```APIDOC ## GET /api/nodes/{network}/{nodeid} ### Description Get an individual node ### Method GET ### Endpoint /api/nodes/{network}/{nodeid} ### Parameters #### Path Parameters - **network** (string) - Required - Network ID - **nodeid** (string) - Required - Node ID ### Responses #### Success Response (200) - **host** (models.Host) - Description of the host details - **host_peers** (array of wgtypes.PeerConfig) - List of host peer configurations - **node** (models.Node) - Details of the node - **peerids** (models.PeerMap) - Map of peer IDs - **peers** (array of wgtypes.PeerConfig) - List of peer configurations - **serverconfig** (models.ServerConfig) - Server configuration details #### Response Example (200) { "host": { "autoupdate": true, "country_code": "US", "daemoninstalled": true, "debug": false, "defaultinterface": "eth0", "dns_status": "ok", "enable_flow_logs": false, "endpointip": [ 192, 168, 1, 1 ], "endpointipv6": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 ], "firewallinuse": "ufw", "hostpass": "********", "id": "node-123", "interface": "wg0", "interfaces": [ { "address": { "ip": [ 10, 0, 0, 1 ], "mask": [ 255, 255, 255, 0 ] }, "addressString": "10.0.0.1/24", "name": "wg0" } ], "ipforwarding": true, "isdefault": false, "isdocker": false, "isk8s": false, "isstatic": false, "isstaticport": false, "kernel_version": "5.15.0-generic", "listenport": 51821, "location": "34.0522,-118.2437", "macaddress": [ 0, 8, 214, 130, 200, 100 ], "mtu": 1420, "name": "my-server", "nat_type": "none", "nodes": [ "node-123", "node-456" ], "os": "Linux", "os_family": "Debian", "os_version": "22.04", "persistentkeepalive": 20, "publickey": [ 100, 101, 102, 103 ], "traffickeypublic": [ 200, 201, 202, 203 ], "turn_endpoint": {}, "verbosity": 2, "version": "1.4.0", "wg_public_listen_port": 51821 }, "host_peers": [], "node": { "id": "node-123", "name": "my-server", "network": "net-main", "host": "node-123", "dns_status": "ok", "os": "Linux", "kernel_version": "5.15.0-generic", "interface": "wg0", "mtu": 1420, "listenport": 51821, "firewallinuse": "ufw", "ipforwarding": true, "autoupdate": true, "persistentkeepalive": 20, "debug": false, "verbosity": 2, "isdefault": false, "isstatic": false, "isstaticport": false, "isdocker": false, "isk8s": false, "nat_type": "none", "location": "34.0522,-118.2437", "daemoninstalled": true, "enable_flow_logs": false, "version": "1.4.0", "hostpass": "********", "publickey": [ 100, 101, 102, 103 ], "traffickeypublic": [ 200, 201, 202, 203 ], "macaddress": [ 0, 8, 214, 130, 200, 100 ], "endpointip": [ 192, 168, 1, 1 ], "endpointipv6": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 ], "defaultinterface": "eth0", "os_family": "Debian", "os_version": "22.04", "country_code": "US", "wg_public_listen_port": 51821, "turn_endpoint": {}, "nodes": [ "node-123", "node-456" ] }, "peerids": {}, "peers": [], "serverconfig": {} } #### Error Response (500) - **error** (models.ErrorResponse) - Description of the error response ``` -------------------------------- ### MQ Broker Listener Status Source: https://learn.netmaker.io/getting-started/server-and-client-management/server-installation/advanced-options Example output from 'docker logs mq' showing the active listeners on the MQ broker. Verify that listeners for SSL, TCP, WS, and WSS are started. ```text Listener ssl:default on 0.0.0.0:8883 started. Listener tcp:default on 0.0.0.0:1883 started. Listener ws:default on 0.0.0.0:8083 started. Listener wss:default on 0.0.0.0:8084 started. Listener http:dashboard on :18083 started. EMQX 5.0.9 is running now! ``` -------------------------------- ### Install Netmaker Pro Edition Source: https://learn.netmaker.io/getting-started/quick-start/platform-installation Use this command to download and execute the Netmaker Pro Edition installer. The '-p' flag indicates the Pro version. Requires sudo privileges. ```bash sudo wget -qO /root/nm-quick.sh https://raw.githubusercontent.com/gravitl/netmaker/master/scripts/nm-quick.sh && sudo chmod +x /root/nm-quick.sh && sudo /root/nm-quick.sh -p ``` -------------------------------- ### Install Netmaker with Docker Compose Source: https://learn.netmaker.io/how-to-guides/how-to-deploy-a-single-kubernetes-cluster-across-multiple-clouds-using-k3s-and-wireguard-deprecate Use this command to download the Netmaker docker-compose file and start Netmaker in detached mode. Ensure you replace the backend address placeholder with your Netmaker VM's IP address. ```bash ssh root@netmaker-vm ``` ```bash wget -O docker-compose.yml https://raw.githubusercontent.com/gravitl/netmaker/master/docker-compose.nodns.yml ``` ```bash sed -i 's/your-backend/< Your VM IP Address Here >/g' docker-compose.yml ``` ```bash sudo docker-compose up -d ``` -------------------------------- ### Register Node with Enrollment Key Source: https://learn.netmaker.io/getting-started/quick-start/setup-guide Use this command to register a node with an enrollment key, specifying the server address and port. This is a common method for initial node registration. ```bash netclient register -k -s grpc.myserver.com -p 50051 ``` -------------------------------- ### Create static client via API Source: https://learn.netmaker.io/how-to-guides/generate-config-files-using-api-and-nmctl Generate a static client configuration by POSTing to the extclients endpoint. Ensure you replace placeholders with your network name, host network ID, and authentication token. ```bash curl -X POST -L "https://api.netmaker.example.com/api/extclients//" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer " \ --data '{"clientid":"SiteC"}' ``` -------------------------------- ### Install Netmaker Desktop on Ubuntu/Debian Source: https://learn.netmaker.io/getting-started/server-and-client-management/client-installation/netmaker-desktop-installation?q=netmaker+desktop Installs Netmaker Desktop on Ubuntu/Debian-based systems using apt. Ensure you have curl installed. ```bash curl -sL 'https://apt.netmaker.org/netmaker-desktop/gpg.key' | sudo tee /etc/apt/trusted.gpg.d/netmaker-desktop.asc curl -sL 'https://apt.netmaker.org/netmaker-desktop/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/netmaker-desktop.list sudo apt update sudo apt search netmaker-desktop # to see available versions sudo apt install netmaker-desktop ``` -------------------------------- ### Install Netclient on Cluster VMs Source: https://learn.netmaker.io/how-to-guides/how-to-deploy-a-single-kubernetes-cluster-across-multiple-clouds-using-k3s-and-wireguard-deprecate Run this command on each cluster VM to install the Netmaker client. Replace `` with the actual access key obtained from the Netmaker UI. ```bash curl -sfL https://raw.githubusercontent.com/gravitl/netmaker/v0.3/scripts/netclient-install.sh | KEY= sh - ``` -------------------------------- ### Verify WireGuard Installation Source: https://learn.netmaker.io/getting-started/operations-field-guide/troubleshooting Check if wireguard-tools is installed by running the `wg` command. If not found, install it using your package manager. ```bash wg ``` ```bash sudo apt install wireguard wireguard-tools -y ``` -------------------------------- ### Query Documentation via HTTP GET Source: https://learn.netmaker.io/getting-started/operations-field-guide/monitoring-your-network To get information not explicitly present on the page, perform an HTTP GET request with the 'ask' query parameter to dynamically query the documentation. ```http GET https://learn.netmaker.io/getting-started/operations-field-guide/monitoring-your-network.md?ask= ``` -------------------------------- ### Query Documentation via HTTP GET Source: https://learn.netmaker.io/references/nmctl To get additional information not directly on the page, perform an HTTP GET request to the page URL with an 'ask' query parameter containing your question. ```plaintext GET https://learn.netmaker.io/references/nmctl.md?ask= ``` -------------------------------- ### Create static client via API Source: https://learn.netmaker.io/how-to-guides/generate-config-files-using-api-and-nmctl Create a static client configuration by making a POST request to the `extclients` endpoint. This requires the network name, the Remote Access Gateway's Host Network ID, and an authentication token. ```APIDOC ## POST /api/extclients/{network_name}/{host_network_id} ### Description Creates a static client configuration for a given network and host. ### Method POST ### Endpoint /api/extclients/{network_name}/{host_network_id} ### Parameters #### Path Parameters - **network_name** (string) - Required - The name of the Netmaker network. - **host_network_id** (string) - Required - The Host Network ID of the Remote Access Gateway. #### Request Body - **clientid** (string) - Required - The desired client ID for the static client. ### Request Example ```bash curl -X POST -L "https://api.netmaker.example.com/api/extclients//" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer " \ --data '{"clientid":"SiteC"}' ``` ### Response #### Success Response (200) No body is returned on successful creation. ``` -------------------------------- ### Create WireGuard Configuration File Source: https://learn.netmaker.io/getting-started/walkthrough/how-to-add-devices Use the 'touch' command to create a new WireGuard configuration file on the target device. ```bash touch wg-config.conf ``` -------------------------------- ### Query Documentation via HTTP GET Source: https://learn.netmaker.io/getting-started/server-and-client-management/client-installation/netclient-installation/advanced-netclient-installation To get information not explicitly present on the page, perform an HTTP GET request to the page URL with an `ask` query parameter containing your question. ```http GET https://learn.netmaker.io/getting-started/server-and-client-management/client-installation/netclient-installation/advanced-netclient-installation.md?ask= ``` -------------------------------- ### Query Documentation via HTTP GET Source: https://learn.netmaker.io/getting-started/server-and-client-management/client-installation/netclient-installation/stabilize-netclient-connections-behind-nat To get additional information not directly on the page, perform an HTTP GET request to the page URL with an 'ask' query parameter containing your specific question. ```http GET https://learn.netmaker.io/getting-started/server-and-client-management/client-installation/netclient-installation/stabilize-netclient-connections-behind-nat.md?ask= ``` -------------------------------- ### Verify WireGuard Tooling Source: https://learn.netmaker.io/how-to-guides/how-to-deploy-a-single-kubernetes-cluster-across-multiple-clouds-using-k3s-and-wireguard-deprecate On each cluster node, verify that the `wg-quick` command is available and then switch to the root user to proceed with Netclient installation. ```bash which wg-quick ``` ```bash sudo su - ``` -------------------------------- ### Query Documentation via HTTP GET Source: https://learn.netmaker.io/features/nmctl To get additional information not present on the page, perform an HTTP GET request to the page URL with the 'ask' query parameter, followed by your specific question. ```plaintext GET https://learn.netmaker.io/features/nmctl.md?ask= ``` -------------------------------- ### Install Remote Access Client on Fedora/RedHat/CentOS/Rocky Source: https://learn.netmaker.io/getting-started/server-and-client-management/client-installation/netmaker-desktop-installation?q=netmaker+desktop Follow these steps to install the Remote Access Client on Fedora, RHEL, CentOS, or Rocky Linux systems. This involves adding the Netmaker repository and installing the client package. ```bash curl -sL 'https://rpm.netmaker.org/remote-client/gpg.key' | sudo tee /tmp/gpg.key curl -sL 'https://rpm.netmaker.org/remote-client/remote-client-repo' | sudo tee /etc/yum.repos.d/remote-client.repo sudo rpm --import /tmp/gpg.key sudo dnf check-update sudo dnf install remote-client ``` -------------------------------- ### Example WireGuard Configuration Source: https://learn.netmaker.io/features/gateways This is a sample WireGuard configuration file. It includes interface settings, IP addresses, private key, MTU, DNS, and peer details with allowed IPs and endpoint. ```plaintext [Interface] Address = 100.70.101.254/32,fd3c:2f98:6bb1:2e37:ffff:ffff:ffff:fffe/128 PrivateKey = UJBMEgy5KlWq/lpDy/3k2FewP1nlSjchOkIhYazA+Fo= MTU = 1420 DNS = 1.1.1.1 [Peer] PublicKey = KsHJHPJO4b6sviElK1XdGkw3M+oQFYJbVKnXBlLGGFA= AllowedIPs = 100.70.101.0/24,fd3c:2f98:6bb1:2e37::/64,192.168.1.0/24 Endpoint = 134.122.28.173:443 PersistentKeepalive = 20 ```