Providing connectivity for Helium miners using the RUT240: Difference between revisions
Providing connectivity for Helium miners using the RUT240 (view source)
Revision as of 20:22, 7 February 2022
, 7 February 2022no edit summary
mNo edit summary |
mNo edit summary |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
''Note: this article and all of its configuration examples given here have been configured using the | ''Note: this article and all of its configuration examples given here have been configured using the new RUTOS firmware '''RUT2_R_00.07.01.2''' which runs with a brand new WebUI. A configuration example with the legacy firmware WebUI can be found here:'' [[Providing connectivity for Helium miners using the RUT240 (legacy WebUI)]] | ||
''For more information about firmware versions, please refer to [[RUT240 Firmware Downloads|RUT240 firmware wiki page]].'' | |||
== Introduction == | == Introduction == | ||
Line 5: | Line 7: | ||
Due to the Helium miners gaining significant traction, it's rather necessary to understand how to make the miner work as efficiently as possible. To accomplish this task, it's highly recommended, [https://docs.helium.com/troubleshooting/network-troubleshooting/ according to the official Helium documentation], to create a port forward rule for incoming traffic to port 44158 (TCP) and redirect it to the Helium miner. In this article, 3 different methods are shown to accomplish this task, depending on available resources. Please note that before starting with the procedure, the following prerequisites must be met: | Due to the Helium miners gaining significant traction, it's rather necessary to understand how to make the miner work as efficiently as possible. To accomplish this task, it's highly recommended, [https://docs.helium.com/troubleshooting/network-troubleshooting/ according to the official Helium documentation], to create a port forward rule for incoming traffic to port 44158 (TCP) and redirect it to the Helium miner. In this article, 3 different methods are shown to accomplish this task, depending on available resources. Please note that before starting with the procedure, the following prerequisites must be met: | ||
* RUT240 or any other Teltonika Networks router | * RUT240 or any other Teltonika Networks router running RUTOS v7 firmware | ||
* Ability to login and configure the router | * Ability to login and configure the router | ||
* Pre-configured router using the initial setup wizard | * Pre-configured router using the initial setup wizard | ||
Line 11: | Line 13: | ||
In this article all examples are provided using the RUT240 router. | |||
== Prerequisites == | == Prerequisites == | ||
Before getting started with | Before getting started with any further configuration, the router must be prepared using the setup wizard. This wizard is used to configure basic settings on the router. | ||
Additionally, it's highly recommended to understand the difference and recognize the distinction between public and private IP addresses. A short article regarding this can be found on our wiki FAQ: [[Private and Public IP Addresses]]. | Additionally, it's highly recommended to understand the difference and recognize the distinction between public and private IP addresses. A short article regarding this can be found on our wiki FAQ: [[Private and Public IP Addresses]]. | ||
Line 26: | Line 28: | ||
If you get a warning about an insecure connection, click on “Advanced” and “Proceed to 192.168.1.1 (unsafe)”. | If you get a warning about an insecure connection, click on “Advanced” and “Proceed to 192.168.1.1 (unsafe)”. | ||
[[File: | [[File:Certwarningv2fix.png|1031x1031px]] | ||
This warning occurs due to browser not trusting the certificate, generated by router itself. | This warning occurs due to browser not trusting the internal router web server certificate, generated by the router itself. | ||
Line 40: | Line 42: | ||
Password – '''admin01''' | Password – '''admin01''' | ||
[[File:WebUIloginpage.png| | [[File:WebUIloginpage RUTOS.png|1039x1039px]] | ||
Once logged in, a prompt to change the password will be shown. Change password to meet the requirements, then proceed by clicking “''' | Once logged in, a prompt to change the password will be shown. Change password to meet the requirements, then proceed by clicking “'''Submit'''”: | ||
[[File:ChangePassword.png | [[File:ChangePassword RUTOS.png]] | ||
Next, we need to configure basic settings to prepare our router. In '''Step 1 | Next, we need to configure basic settings to prepare our router. A setup wizard will open after entering the new password. In '''Step 1''' of setup wizard change the "'''Configuration Mode'''" to "'''Advanced'''", then click on “'''Sync with browser'''” option and choose your desired time zone. Once done, click on “'''Next'''”. | ||
[[File:FirstLoginTime.png| | [[File:FirstLoginTime RUTOS.png|1140x1140px]] | ||
In '''Step 2 | In '''Step 2''' of setup wizard we can change our local area network configuration<ins>,</ins> but it is unnecessary. For now, it’s recommended to leave it as-is. Click on “'''Next'''” to proceed. | ||
[[File: | [[File:FirstLoginLAN RUTOS.png|1137x1137px]] | ||
In '''Step 3 | In '''Step 3''' you can configure basic mobile connectivity settings. These settings will depend on your mobile operator and your mobile internet plan. Once all the necessary settings have been entered, or if there are no changes needed, click on “'''Next'''”. | ||
[[File: | [[File:FirstLoginMobile RUTOS.png|1131x1131px]] | ||
In '''Step 4 | In '''Step 4''' it’s possible to enable/disable the WiFi, change the name of the wireless network along with its passphrase. After the changes have been made, proceed to the next step by clicking “'''Next'''”. | ||
[[File:FirstLoginWiFi.png| | [[File:FirstLoginWiFi RUTOS.png|1125x1125px]] | ||
In '''Step 5 | In '''Step 5''' we can connect our router to Teltonika '''Remote Management System'''. More information about the Teltonika '''RMS''' can be found [https://teltonika-networks.com/product/rms/ here]. | ||
[[File:FirstLoginRMS.png| | [[File:FirstLoginRMS RUTOS.png|1123x1123px]] | ||
To finish the setup wizard, click on “'''Finish'''”. The overview page will open. | To finish the setup wizard, click on “'''Finish'''”. The overview page will open. At this point it is recommended to confirm whether there is internet connectivity by going to any internet website which shows your external public IP address (for example https://www.whatismyip.com/): | ||
[[File:WhatIsMyIP.png|alt=]] | [[File:WhatIsMyIP.png|alt=]] | ||
Line 73: | Line 75: | ||
For extensive details about the initial configuration of the router, please refer to our wiki page [[RUT240 Setup Wizard|here.]] | For extensive details about the initial configuration of the router, please refer to our wiki page [[RUT240 Setup Wizard|here.]] | ||
== Scenario #1: Port forwarding with public IP address == | == Scenario #1: Port forwarding with public IP address == | ||
=== Extra prerequisites for scenario #1 === | === Extra prerequisites for scenario #1 === | ||
----For the Helium miner to be reachable by any device on the internet, it’s necessary to allow and forward any incoming internet traffic via port 44158 (TCP) to the Helium miner. In this specific configuration scenario, an example with the Teltonika RUT240 router will be provided. | ----For the Helium miner to be reachable by any device on the internet, it’s necessary to allow and forward any incoming internet traffic via port 44158 (TCP) to the Helium miner. In this specific configuration scenario, an example with the Teltonika RUT240 router, running the new RUTOS firmware, will be provided. | ||
For this configuration example to work, the following general criteria must be met: | For this configuration example to work, the following general criteria must be met: | ||
*Router with public external WAN IP address using mobile SIM card | *Router must be online with public external WAN IP address on its mobile interface using a mobile SIM card | ||
*Helium miner connected to the router | *Helium miner must be connected to the router | ||
===Configuring static LAN IP lease for the Helium miner=== | ===Configuring static LAN IP lease for the Helium miner=== | ||
----While not mandatory, it is highly recommended to add a LAN IP reservation for the Helium miner to make sure port forward rule, which will be defined later, always points to the correct device. In order to do this, navigate to LAN "'''Network> | ----While not mandatory, it is highly recommended to add a LAN IP reservation for the Helium miner to make sure port forward rule, which will be defined later, always points to the correct device. In order to do this, navigate to LAN "'''Network>Interfaces'''": | ||
[[File:ToLAN.png| | [[File:ToLAN RUTOS.png|446x446px]] | ||
Once there, | Once there, edit the default LAN interface by clicking the pencil icon: | ||
[[File: | [[File:EditLAN RUTOS.png|1102x1102px]] | ||
LAN configuration page will open. Scroll all the way down to the "'''Static lease'''" section and add a new instance: | |||
[[File:LANAddStatic RUTOS.png|1100x1100px]] | |||
Configuration window will load. Enter MAC address of the Helium miner and any desired IP address (can be current LAN IP) in their respective fields: | |||
[[File:StaticIPLAN RUTOS.png|1097x1097px]] | |||
When done click on “'''Save & Apply'''” button to apply the changes. The final result should look similar to this (MAC and IP may differ): | |||
[[File:StaticIPLAN2 RUTOS.png|1093x1093px]] | |||
When done, click on “'''Save & Apply'''” button to save the changes on the LAN interface. | |||
===Configuring the port forward rule === | ===Configuring the port forward rule === | ||
----If the internet is up and running, | ----If the internet is up and running, proceed to the port forward configuration page by navigating to "'''Network>Firewall>Port Forwards'''": | ||
[[File:NavigateToPortFW.png | [[File:NavigateToPortFW RUTOS.png]] | ||
Once there, | Once there, enter the following settings in specified fields: | ||
“'''Name'''” - name the port forward rule. In this configuration example, we’ll be using '''Helium''' as the name of this rule | “'''Name'''” - name the port forward rule. In this configuration example, we’ll be using '''Helium''' as the name of this rule | ||
“''' | “'''External port'''” - enter 44158 | ||
“'''Internal IP address'''” - select your Helium miner LAN IP address (starts with 192.168.1.X). | |||
“''' | “'''Internal port'''” - enter 44158 | ||
“''' | Once every field has been filled in, click on “'''Add'''”. | ||
[[File:PortFWfinalresult RUTOS.png|1097x1097px]] | |||
Once | A new window will pop up. Change the "'''Protocol'''" field from "'''TCP+UDP'''" to "'''TCP'''" only. Once done, scroll down to the bottom of the window and click on "'''Save & Apply'''" to save the settings. The configuration window should look like this before saving the settings (internal IP address field may differ): | ||
[[File: | [[File:PortFWfinalresult2 RUTOS.png]] | ||
If every configuration field is correct and the rule has been applied, the port forward rule should appear in the port forwards table in a similar fashion: | |||
[[File:PortFWfinaltable RUTOS.png|1118x1118px]] | |||
Line 138: | Line 147: | ||
===Extra prerequisites for scenario #2=== | ===Extra prerequisites for scenario #2=== | ||
----For the Helium miner to be reachable by any device on the internet, it’s necessary to allow and forward any incoming internet traffic via port 44158 (TCP) to the Helium miner. In this specific configuration scenario, an example with the Teltonika RUT240 router will be provided. | ----For the Helium miner to be reachable by any device on the internet, it’s necessary to allow and forward any incoming internet traffic via port 44158 (TCP) to the Helium miner. In this specific configuration scenario, an example with the Teltonika RUT240 router passing its external public WAN IP address to the Helium miner directly will be provided. | ||
For this configuration example to work, the following general criteria must be met: | For this configuration example to work, the following general criteria must be met: | ||
*Router with public external WAN IP address using mobile SIM card | *Router must be online with public external WAN IP address on its mobile interface using a mobile SIM card | ||
*Helium miner connected to the router | *Helium miner must be connected to the router | ||
=== | ===Configuring the passthrough mode on the RUT240=== | ||
---- | ----In order to configure the passthrough mode on the new RUTOS firmware navigate to the "'''Network>Interfaces'''": | ||
[[File:ToLAN RUTOS.png]] | |||
Once there, find interface with name “'''MOB1S1A1'''” and edit it by clicking a pencil icon next to it: | |||
[[File:EditMOB RUTOS.png|1060x1060px]] | |||
A new configuration page will pop up. In this configuration page make sure to modify the following settings: | |||
“'''Mode'''” - change from '''NAT''' to '''Passthrough''' | |||
“'''MAC address'''” - enter your Helium miner MAC address: | |||
[[File:MobilePassthrough RUTOS.png|1063x1063px]] | |||
If the MAC address of Helium miner isn’t known, you can check it by navigating to “'''Status>Network>LAN'''” page. | |||
[[File:ToLANstatus RUTOS.png]] | |||
There, MAC address of Helium miner as well as its current LAN IP address should be visible: | |||
[[File: | [[File:IP-Lease RUTOS.png|1088x1088px]] | ||
After the necessary configuration has been set, make sure to apply configuration by scrolling down to the bottom of mobile interface configuration page and click “'''Save & Apply'''”. Eventually, the Helium miner should get an external IP address from the router. | |||
===Optional configuration: set WAN port as LAN=== | |||
----Once the passthrough mode is enabled, the router can still serve local IP addresses to any other device connected to the router. If needed, the WAN interface can be setup as a LAN interface to provide connectivity to any additional device or a switch. To accomplish this, follow the steps as described in another wiki article here: [[Setting up WAN as LAN]] | |||
==Scenario #3: Private WAN IP solution== | ==Scenario #3: Private WAN IP solution== | ||
===Extra prerequisites for scenario #3=== | ===Extra prerequisites for scenario #3=== | ||
Line 192: | Line 199: | ||
In order to get started with this procedure, the following requirements must be met: | In order to get started with this procedure, the following requirements must be met: | ||
* Router with internet connection | * Router must be online with internet connection | ||
*Virtual Private Server (VPS) with a public IP address | *Virtual Private Server (VPS) with a public IP address | ||
*Ability to create and install a Virtual Machine (VM) with possibility to setup WireGuard | *Ability to create and install a Virtual Machine (VM) in the VPS with possibility to setup WireGuard | ||
*Helium miner connected to the router | *Helium miner must be connected to the router | ||
In this specific example the Teltonika Networks RUT240 router is used as an example. For VM hosting, Linode is used as a VPS provider to create and manage VM deployments. Debian 11 is used as an operating system on the VM. | In this specific example the Teltonika Networks RUT240 router running the RUTOS firmware is used as an example. For VM hosting, Linode is used as a VPS provider to create and manage VM deployments. Debian 11 is used as an operating system on the VM. | ||
===Preparing and setting up VM on VPS=== | ===Preparing and setting up VM on VPS=== | ||
Line 251: | Line 258: | ||
[[File:AddingBackports.png|alt=|577x577px]] | [[File:AddingBackports.png|alt=|577x577px]] | ||
===Initial setup of tools and services in VPS === | ===Initial setup of tools and services in VPS === | ||
---- | ---- | ||
To begin the installation process, issue the following commands. These commands will make sure the operating system is up to date and, additionally, it will install iptables and wireguard packages. Enter the following command: | To begin the installation process, issue the following commands. These commands will make sure the operating system is up to date and, additionally, it will install '''iptables''' and '''wireguard''' packages. Enter the following command: | ||
'''apt update && apt upgrade -y && apt install iptables -y && apt install wireguard -y''' | '''apt update && apt upgrade -y && apt install iptables -y && apt install wireguard -y''' | ||
This command will make sure your system is up to date, install newest base packages. Then it will install '''iptables''' package as well as '''wireguard''' package. You can verify if package was installed by issuing '''dpkg -s <package name>''' command in the CLI. For example, to confirm if wireguard has been installed successfully, type in '''dpkg -s wireguard''' and then press enter. The following output should be shown ( | This command will make sure your system is up to date, install newest base packages. Then it will install '''iptables''' package as well as '''wireguard''' package. You can verify if package was installed by issuing '''dpkg -s <package name>''' command in the CLI. For example, to confirm if wireguard has been installed successfully, type in '''dpkg -s wireguard''' and then press enter. The following output should be shown (output may differ slightly, depending on currently installed WireGuard version): | ||
[[File:DpkgConfirmationWG.png|alt=|644x644px]] | [[File:DpkgConfirmationWG.png|alt=|644x644px]] | ||
Line 268: | Line 273: | ||
In order for the VPN tunnel to work, both VPS and router must have their own public and private key pairs. The private key will be used for data decryption coming from the peer while public key will encrypt traffic going to the peer. | In order for the VPN tunnel to work, both VPS and router must have their own public and private key pairs. The private key will be used for data decryption coming from the peer while public key will encrypt traffic going to the peer. | ||
<span style="color:red">'''Warning!'''</span> Never share or put your private key in public space. | <span style="color:red">'''Warning!'''</span> Never share or put your <u>private key</u> in public space. | ||
To generate key pairs on VPS, enter the following commands into the CLI: | To generate key pairs on VPS, enter the following commands into the CLI: | ||
Line 290: | Line 295: | ||
[[File:WGpublickeyVPS.png|alt=|364x364px]] | [[File:WGpublickeyVPS.png|alt=|364x364px]] | ||
=== | ===Configuring WireGuard tunnel on the router=== | ||
---- | ---- | ||
''Note: WireGuard is implemented in RUTOS by default which means there is no need to install any additional packages. If, for some reason, WireGuard package is missing on the router, install it by navigating to "Services>Package manager" and searching for "wireguard" package.'' | |||
Once the internet is up and running on the router, in the WebUI navigate to "'''Services>VPN>Wireguard'''" in order to start configuring the tunnel: | |||
[[File:ServicesVPNWG RUTOS.png]] | |||
Add new instance with any name. In this example "linode" will be used as name for our Wireguard interface on router side. | |||
[[File: | [[File:LinodeAddIF RUTOS.png|1076x1076px]] | ||
Once it's created, a new window will open. Click "'''Generate'''" to generate private & public key pairs. When key pairs are visible, make sure to copy the public key from router, it will be needed later for WireGuard configuration on VPS side. Next, enter the following configuration in specified fields: | |||
"'''Listen port'''": 51820 | |||
"'''IP Addresses'''": 10.0.1.2/32 | |||
The configuration should look something like this (the public key will differ, don't copy it from here!): | |||
[[File:WGif-setup RUTOS.png]] | |||
Next, click on "'''Advanced settings'''" on the left side of the configuration page and fill in the following line: | |||
"'''MTU'''": 1420 | |||
[[File: | [[File:WGif-setupadvanced RUTOS.png]] | ||
"''' | Leave the metric empty. Once done, move to the bottom of the configuration page and add a new peer by entering its name in the "'''Add new instance'''" field: | ||
[[File:AddWGpeer RUTOS.png|1126x1126px]] | |||
Once the peer configuration window opens up, fill in the fields as follows: | |||
"''' | "'''Public Key'''": copy and paste the public key of your peer (public key which was generated by the virtual private server) | ||
"'''Allowed IPs'''": 10.0.1.1/32 | |||
[[File: | [[File:WGpeer-general RUTOS.png]] | ||
When done, click on "Advanced settings" section and fill in the fields as follows: | |||
"'''Description'''": Linode | |||
"'''Preshared key'''" - leave field empty | "'''Preshared key'''" - leave field empty | ||
"'''Route allowed IPs'''" - enable the option | |||
"'''Route allowed IPs'''" - enable the | |||
"'''Endpoint host'''" - IP address of VPS (public IP) | "'''Endpoint host'''" - IP address of VPS (public IP) | ||
Line 361: | Line 353: | ||
"'''Persistent keep alive'''" - 25 (recommended value) | "'''Persistent keep alive'''" - 25 (recommended value) | ||
The final result of | [[File:WGpeer-advanced RUTOS.png]] | ||
The final result of WireGuard instance configuration on the router side should look something like this (public keys will be different): | |||
[[File:WG-final RUTOS.png|1103x1103px]] | |||
Line 373: | Line 370: | ||
===Adding a port forward rule to the router=== | ===Adding a port forward rule to the router=== | ||
---- | ---- | ||
Wrapping up with the router configuration, it's necessary to create a single port forward rule so that router knows what to do with any incoming traffic that's got a destination port of 44158, TCP. To accomplish this, navigate to "'''Network>Firewall>Port | Wrapping up with the router configuration, it's necessary to create a single port forward rule so that router knows what to do with any incoming traffic that's got a destination port of 44158, TCP. To accomplish this, navigate to "'''Network>Firewall>Port Forwards'''": | ||
[[File:NavigateToPortFW.png | [[File:NavigateToPortFW RUTOS.png]] | ||
Once there, enter the following settings in specified fields: | |||
“'''Name'''” - name the port forward rule. In this configuration example, we’ll be using '''Helium''' as the name of this rule | |||
“'''External port'''” - enter 44158 | |||
“'''Internal IP address'''” - select your Helium miner LAN IP address (starts with 192.168.1.X). | |||
“'''Internal port'''” - enter 44158 | |||
Once every field has been filled in, click on “'''Add'''”. | |||
[[File:PortFWfinalresult RUTOS.png|alt=|1038x1038px]] | |||
A new configuration window will pop up. Edit the protocol from "'''TCP+UDP'''" to "'''TCP'''" only and change the "'''Source zone'''" by selecting the zone from "'''wan'''" to "'''wireguard'''" (<u>this is the most important step when configuring this port forward!</u>): | |||
[[File:ChangeFW-zone RUTOS.png]] | |||
Leave everything else, go to the bottom of the page and click "'''Save'''". | Leave everything else as-is, then go to the bottom of the page and click "'''Save & Apply'''". | ||