Direwolf: Difference between revisions

From 44Net Wiki
KN6DWI (talk | contribs)
Wrote client connection instructions
KN6DWI (talk | contribs)
Added GitHub links for PyttiAPRS and Xastir
Line 56: Line 56:


== Step 4: Set up client ==
== Step 4: Set up client ==
Install a KISS or AGW client of your choice, such as PyttiAPRS or Xastir, and point it at the 44Net IPv4 address of the device running Direwolf. You can obtain this address from the <code>[Interface]</code> section of that device's WireGuard config, or you can run the <code>ifconfig</code> command on that device and look for the WireGuard interface. If it asks for port configuration, use port 8000 for AGW and port 8001 for KISS.
Install a KISS or AGW client of your choice, such as [https://github.com/vash909/PyttiAPRS PyttiAPRS] or [https://github.com/Xastir/Xastir Xastir], and point it at the 44Net IPv4 address of the device running Direwolf. You can obtain this address from the <code>[Interface]</code> section of that device's WireGuard config, or you can run the <code>ifconfig</code> command on that device and look for the WireGuard interface. If it asks for port configuration, use port 8000 for AGW and port 8001 for KISS.


== References ==  
== References ==  

Revision as of 21:35, 2 September 2026

Direwolf is a piece of software used to decode and encode APRS packets, commonly called a terminal node controller (TNC). A computer running Direwolf can be paired with a transceiver to transmit, receive, and digipeat APRS packets on the air. It can be used on its own or with a KISS client. This is a tutorial on setting up Direwolf for remote access via a 44Net Connect tunnel.

Prerequisites:

  • 44Net Portal account
  • Verified callsign
  • 44Net Connect tunnel configuration file (for your Direwolf device)
  • Either a client with a static IP or another 44Net Connect tunnel configuration file for your client

Security and Limitations

Neither Direwolf or the KISS protocol directly support any kind of authentication. Though some AGW clients such as Xastir support password protection, Direwolf does not support configuring a password for its AGW interface.[1] Securing Direwolf against unauthorized access is done via IP whitelisting in this guide, so providing access to people without access to a static IP (through 44Net or otherwise) is out of scope.

Step 1: Install and configure Direwolf

Consult the Direwolf README for installation instructions. The instructions state that the direwolf.conf file will be automatically created in your home directory, but this is not always the case. If the config file is not automatically created, a working Linux configuration can be found in N3EMC's digipeater tutorial.

Configure sound card

Next, plug in your USB sound card if you're using one. (This section applies whether you're using a USB sound card or a built-in one.) then open a terminal and run `arecord -l` to list your audio devices. The output will look like this:

**** List of CAPTURE Hardware Devices ****
card 1: Device [USB Audio Device], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0

Record the card number (in this case card 1) and the device number (in this case card 2). Edit the line in direwolf.conf that starts with ADEVICE. By default, the line might look like this:

ADEVICE plughw:0,0

Replace the first number with your card number, and the second with your device number. For our example with card 1 and device 0, the line should now look like this:

ADEVICE plughw:1,0

Configure callsign

Go to the configuration line beginning with MYCALL and fill in your callsign there. It may optionally be followed by a Sub-Station Identifier (SSID), which consists of a dash and a number. These are commonly used to differentiate multiple pieces of equipment owned by the same person. N3EMC says that 10 is commonly used for digipeaters and iGates, so a person with the callsign N0CALL may write the config line like this:

MYCALL N0CALL-10

Configure iGate login

To enable iGate functionality, you must configure your iGate server and login. The server is configured using the line starting with IGSERVER. Select your server from the following:

  • Worldwide: rotate.aprs2.net
  • North America: noam.aprs2.net
  • South America: soam.aprs2.net
  • Europe/Africa: euro.aprs2.net
  • Asia: asia.aprs2.net
  • Oceania: aunz.aprs2.net

For example, North American users should have the config line IGSERVER noam.aprs2.net.

Step 2: Configure your firewall

For security purposes, it's important to configure your firewall before exposing your device to the internet. Install your firewall of choice, and open port 8000 for an AGW client, and 8001 for the KISS client. Ensure other ports are closed, unless you have services that you want to be accessible. See Firewalling Basics for more information.

Step 3: Set up 44Net Connect tunnel

Set up a single device tunnel on the machine that will host your Minecraft server. Go to the list of single device tunnel tutorials and follow the one for your operating system. Before starting the tunnel, you'll need to modify your configuration. Modify the AllowedIPs line so that it contains only the static IPs of your clients, each followed by /32 to indicate that this is a single IP rather than a subnet. This is the method by which access to your Direwolf instance is controlled. Example:

AllowedIPs = 44.27.133.290/32

Step 4: Set up client

Install a KISS or AGW client of your choice, such as PyttiAPRS or Xastir, and point it at the 44Net IPv4 address of the device running Direwolf. You can obtain this address from the [Interface] section of that device's WireGuard config, or you can run the ifconfig command on that device and look for the WireGuard interface. If it asks for port configuration, use port 8000 for AGW and port 8001 for KISS.

References