Table of Contents

Travelmate, a connection manager for travel routers

Description

If you’re taking your laptop, tablet, or phone on an upcoming vacation or business trip, you’ll want to connect with friends or complete work on the go. But many hotels don’t have a secure wireless network setup or limit you to using a single device at a time.

Travelmate lets you use a small “travel router” to connect all of your devices at once while having total control over your own personal wireless network.

Travelmate runs on OpenWrt, and provides an “uplink” to the hotel’s wireless access point/hotspot. Travelmate then becomes the Access Point (AP) for you and your companions, providing secure access to the internet. See the Installation and Usage section below.

Travelmate manages all the network settings, firewall settings, connections to a hotel network, etc. and automatically (re)connnects to configured APs/hotspots as they become available.

Note: This document was created from the original README at the Github repo: https://github.com/openwrt/packages/blob/master/net/travelmate/files/README.md

Main Benefits and Features

Prerequisites

Installation and Usage

Note: If you’re updating from a former Travelmate 1.x release: Use the ‘–force-reinstall –force-maintainer’ options in opkg; Remove any existing Travelmate related uplink stations in your wireless config manually

Travelmate config options

The pre-configured Travelmate setup works quite well. Normally, no manual config overrides are needed. All listed options apply to the ‘global’ section:

Option Default Description/Valid Values
trm_enabled 0, disabled set to 1 to enable the travelmate service (this will be done by the Interface Wizard as well!)
trm_debug 0, disabled set to 1 to get the full debug output (logread -e “trm-”)
trm_iface -, not set uplink- and procd trigger network interface, configured by the ‘Interface Wizard’
trm_radio -, not set restrict travelmate to a single radio or change the overall scanning order (‘radio1 radio0’)
trm_captive 1, enabled check the internet availability and handle captive portal redirections
trm_netcheck 0, disabled treat missing internet availability as an error
trm_proactive 1, enabled proactively scan and switch to a higher prioritized uplink, despite of an already existing connection
trm_autoadd 0, disabled automatically add open uplinks like hotel captive portals to your wireless config
trm_randomize 0, disabled generate a random unicast MAC address for each uplink connection
trm_triggerdelay 2 additional trigger delay in seconds before travelmate processing begins
trm_maxretry 3 retry limit to connect to an uplink
trm_minquality 35 minimum signal quality threshold as percent for conditional uplink (dis-) connections
trm_maxwait 30 how long should travelmate wait for a successful wlan uplink connection
trm_timeout 60 overall retry timeout in seconds
trm_maxautoadd 5 limit the max. number of automatically added open uplinks. To disable this limitation set it to ‘0’
trm_maxscan 10 limit nearby scan results to process only the strongest uplinks
trm_captiveurl http://detectportal.firefox.com pre-configured provider URLs that will be used for connectivity - and captive portal checks
trm_useragent Mozilla/5.0 … pre-configured user agents that will be used for connectivity- and captive portal checks
trm_nice 0, normal priority change the priority of the travelmate background processing
trm_mail 0, disabled sends notification e-mails after every succesful uplink connect
trm_mailreceiver -, not set e-mail receiver address for travelmate notifications
trm_mailsender no-reply@travelmate e-mail sender address for travelmate notifications
trm_mailtopic travelmate connection to ‘<sta>’ topic for travelmate notification E-Mails
trm_mailprofile trm_notify profile used by ‘msmtp’ for travelmate notification E-Mails

In addition, the travelmate config supports a uplink section for every uplink, with the following options:

Option Default Description/Valid Values
enabled 1, enabled enable or disable the uplink, automatically set if the retry limit or the conn. expiry was reached
device -, not set match the ‘device’ in the wireless config section
ssid -, not set match the ‘ssid’ in the wireless config section
bssid -, not set match the ‘bssid’ in the wireless config section
con_start -, not set connection start (will be automatically set after a successful ntp sync)
con_end -, not set connection end (will be automatically set after a successful ntp sync)
con_start_expiry 0, disabled automatically disable the uplink after n minutes, e.g. for timed connections
con_end_expiry 0, disabled automatically (re-)enable the uplink after n minutes, e.g. after failed login attempts
script -, not set reference to an external auto login script for captive portals
script_args -, not set optional runtime args for the auto login script
macaddr -, not set use a specified MAC address for the uplink
vpn 0, disabled automatically handle VPN (re-) connections
vpnservice -, not set reference the already configured ‘wireguard’ or ‘openvpn’ client instance as vpn provider
vpniface -, not set the logical vpn interface, e.g. ‘wg0’ or ‘tun0’

VPN client setup

Please follow one of the following guides to get a working vpn client setup on your travel router:

Once your vpn client connection is running, you can reference to that setup in Travelmate to handle VPN (re-) connections automatically.

E-Mail setup

To use E-Mail notifications you have to setup the package ‘msmtp’.

Modify the file ‘/etc/msmtprc’, e.g. for gmail:

[...]
defaults
auth            on
tls             on
tls_certcheck   off
timeout         5
syslog          LOG_MAIL
[...]
account         trm_notify
host            smtp.gmail.com
port            587
from            xxx@gmail.com
user            yyy
password        zzz

Finally enable E-Mail support in Travelmate and add a valid E-Mail receiver address.

Captive Portal auto-logins

For automated captive portal logins you can reference an external shell script per uplink. All login scripts should be executable and located in /etc/travelmate with the extension ‘.login’. The package ships multiple ready to run auto-login scripts:

A typical and successful captive portal login looks like this:

[...]
Thu Sep 10 13:30:16 2020 user.info trm-2.0.0[26222]: captive portal domain 'www.wifionice.de' added to to dhcp rebind whitelist
Thu Sep 10 13:30:19 2020 user.info trm-2.0.0[26222]: captive portal login '/etc/travelmate/wifionice.login ' for 'www.wifionice.de' has been executed with rc '0'
Thu Sep 10 13:30:19 2020 user.info trm-2.0.0[26222]: connected to uplink 'radio1/WIFIonICE/-' with mac 'B2:9D:F5:96:86:A4' (1/3)
[...]

Hopefully more scripts for different captive portals will be provided by the community!

Runtime information

Receive Travelmate runtime information:

root@2go_ar750s:~# /etc/init.d/travelmate status
::: travelmate runtime information
  + travelmate_status  : connected (net ok/100)
  + travelmate_version : 2.0.0
  + station_id         : radio1/WIFIonICE/-
  + station_mac        : B2:9D:F5:96:86:A4
  + station_interface  : trm_wwan
  + wpa_flags          : sae: ✔, owe: ✔, eap: ✔, suiteb192: ✔
  + run_flags          : captive: ✔, proactive: ✔, netcheck: ✘, autoadd: ✘, randomize: ✔
  + ext_hooks          : ntp: ✔, vpn: ✘, mail: ✘
  + last_run           : 2020.09.10-15:21:19
  + system             : GL.iNet GL-AR750S (NOR/NAND), OpenWrt SNAPSHOT r14430-2dda301d40

To debug travelmate runtime problems, please always enable the ‘trm_debug’ flag, restart Travelmate and check the system log afterwards (logread -e “trm-”)

Support

Please join the Travelmate discussion in this forum thread or contact me by mail. The Travelmate code is in this Github repo.

Removal

Donations

You like this project - is there a way to donate? Generally speaking “No” - I have a well-paying full-time job and my OpenWrt projects are just a hobby of mine in my spare time.

If you still insist to donate some bucks …

No matter what you decide - thank you very much for your support!

Have fun!
Dirk