goblin modem_

Setup guide / Mac ↔ Linux

Two radios.
One useful link.

Connect your Mac to your Linux computer using one goTenna Mesh radio on each. SSH uses your existing network to start the session. Mosh then carries the terminal traffic over goTenna.

The examples call the computers laptop and workstation. Replace your-user with your Linux login and use your workstation’s real SSH name or address. You need two powered-on goTenna Mesh radios, two USB data cables, both packages installed, and working SSH from the Mac to Linux.

01

Install both ends.
Check the ordinary SSH path.

Follow the installation instructions on each computer. Plug in one radio per computer. On Linux, ensure the SSH service is running:

sudo systemctl enable --now ssh

From the Mac, test your existing network connection:

ssh your-user@workstation

Accept a host key only after checking it belongs to your workstation. If the name is not resolvable, use its LAN address or an SSH config alias. Log out before continuing. For connections in the opposite direction, enable Remote Login in the Mac’s System Settings.

02

Give the radios
a shared network.

On the Mac, open Goblin Modem → Radios & addresses… → Radio. On Linux, run goblin-modem and choose This Linux computer.

SettingMacLinux
Computer namelaptopworkstation
Radio / serial portSelect the attached radioSelect the attached radio; Rescan if needed
Radio identity (GID)Keep this radio’s unique identityUse a different identity from the Mac
Shared network keyThe same 64 hexadecimal characters on both
Create an IP interfaceOnOn, so the workstation can receive Mosh
SOCKS5 port10801080 on this computer
Share InternetOff for the first local testOff for the first local test

The apps generate fresh keys, but independently generated keys will not match. Generate one for this collection and paste it into both GUIs:

python3 -c 'import secrets; print(secrets.token_hex(32))'

Keep this key private. Leave the discovery radius at six link traversals and leave pacing at its default. Save the settings, then Connect on each computer. Connection settings require disconnecting before edits; Internet settings can be applied while connected.

03

Find the other computer.
No address book required.

Wait for Other computers to list the peer. On the Mac you should see workstation.mesh, its IPv4 and IPv6 addresses, and whether it has an IP interface. Linux should see laptop.mesh.

Addresses derive from the shared network key and radio identity. The mesh name resolves inside the local SOCKS proxy; it is not a general DNS name for the browser or your normal SSH client. Use IPv6 or the copied mesh name if the GUI reports an IPv4 collision.

No peer yet?

Check that both radios are connected, keys match, identities differ, and the peer’s IP interface is enabled. Allow time for discovery. If USB has disappeared, Rescan after reconnecting or power-cycling the radio, then Connect again.

04

Open Mosh.
Let the radio carry the shell.

In the Mac peer list, set the destination SSH user to your Linux login, leave SSH setup → Existing network · local radio test selected, and click Open Mosh beside workstation. The Linux GUI’s Mosh command button supplies the equivalent command for the selected computer.

For the example names, this is the Mac command with a generous five-minute startup timeout:

/usr/local/libexec/goblin-radio-mosh --ipv6 --connect-timeout=300 \
  --proxy=127.0.0.1:1080 --peer=workstation.mesh -- your-user@workstation

The launcher connects the saved radio profile if needed, waits for authenticated peer discovery, starts the server through ordinary SSH, and sends Mosh UDP through the local radio proxy. Keep the existing SSH network available during setup. Type a short command:

printf 'hello over goTenna\n'
hostname

Watch the radio counters and queues in both GUIs. Expect seconds of latency. Radio mode uses small packets and conservative pacing; repeatedly launching new sessions or flooding large output makes diagnosis harder. Exit the remote shell normally when finished.

Connected radios, but Mosh does not open?

Confirm that ssh your-user@workstation still works and that both packages have the current Goblin Mosh dependency. Check the destination advertises an IP interface and that its firewall allows the Mosh UDP port on the mesh interface (normally 60000–61000). Check the GUI error and retry counters; “discarded” also includes filtering and is not a measured radio loss rate.

The separate Radio only · experimental setting also carries SSH setup through the radio. Start with the existing-network test above; the SSH handshake is expensive on this link.

05

A few Internet links.
One collection of radios.

Enable Share Internet on each computer whose Internet connection you want to offer to the mesh. Its uplink can be Wi-Fi, a modem, or Ethernet. Leave sharing off on computers that have only a radio, or whose Internet connection you want to keep private. You can have several gateways, one gateway, or none if you only need to reach other mesh computers.

Other computers discover the gateway advertisements and select by priority, then hops, then GID. A lower priority number wins. Preferred gateway lets you choose one explicitly while it is available.

Point selected applications at their own computer’s SOCKS5 proxy. For an HTTP check through the advertised gateway:

curl --socks5-hostname 127.0.0.1:1080 --max-time 150 -I http://example.com

Sharing permits access to destinations reachable by the gateway, including its LAN. Share the network key only with computers you intend to admit. Goblin Modem does not move your computer’s ordinary default route to the radio.

Watch a small terminal do real work ↗