Code Monkey home page Code Monkey logo

tunnelsats's Introduction

TunnelSats Banner


Prelude and Objective

The lightning network functions in rapid growing speed as infrastructure for payments across the globe between merchants, creators, consumers, institutions and investors alike. Hence the key pillars of sustained growth are their nodes, by providing reliable, liquid, discoverable, trustless and fast connection points between those parties. For fast communication establishing clearnet connections between nodes is inevitable.

The effort of creating a valuable "clearnet over VPN" node - which we laid out here and here - is quite high and intense because it touches several disciplines not every node runner is comfortable with. Required knowledge of the command line, firewall handling, network details, trust in and choosing of a suitable VPN provider that offers all the features we need and cares about privacy and security and, of course, the configuration of the lightning node itself makes it easy to just "leave it as is". Therefore we came to the conclusion that this process has to be simplified a lot. In the last few weeks we put together all the pieces that we think provide the best of both worlds to make it as easy as possible to go hybrid.

Although thinking this is a suitable way of providing a "hybrid service", we want to emphasize to carefully read through the guide below, make an educated decision by yourself if you want to go clearnet over VPN.


Table of Content


Preconditions

  • RaspiBlitz (LND / CLN) v1.8.0+

  • Umbrel-OS on Raspberry Pi (LND) 0.5+ recommended

  • Umbrel-OS on Raspberry Pi (CLN not yet recommended or be tech-savvy)

  • myNode (LND) v0.2.x

  • RaspiBolt (LND / CLN)

  • For bare metal systems please check the following requirements:

    • OS: Debian-/Ubuntu-based (apt-get required)
    • Linux kernel version: 5.10.102+ (uname -r)
    • nftables version: 0.9.6+ (nft -v or apt search nftables | grep "^nftables")
    • LND running as systemd service: /etc/systemd/system/lnd.service or
    • CLN running as systemd service: /etc/systemd/system/lightningd.service
    • run sudo bash check.sh from /scripts/ directory to compare your system to TunnelSats' requirements
  • LND latest (minimal requirement 0.14.2-beta)

  • CLN latest

  • only one lightning implementation per system is supported (configured to port 9735)

  • edit your lightning configuration file (lnd.conf / config)

  • ability to spend some sats (the hardest part)


How this works

In order to understand the provided scripts and steps we gonna take a deep dive into our service. It is split into three parts:

  1. Renting a VPN server and obtaining a corresponding WireGuard config file from tunnelsats.com,

  2. installing required software and components to make VPN connection and Tor splitting work and

  3. setting up the node for hybrid mode by editing the lightning configuration file as described below.


Install

WireGuard is a fast, lightweight and secure VPN software. We offer a few WireGuard servers and quantum-safe VPN tunnels in various countries to choose from.

  1. Go to tunnelsats.com, select a country of your choice (preferably close to your real location for faster connection speed) and choose how long you want to use the service (1 to 12 months).

  2. Pay the lightning invoice.

  3. Copy, download or send the wireguard configuration (file: tunnelsatsv2.conf - please do NOT rename this file) to your local computer and transfer it to your node.

  4. Backup tunnelsatsv2.conf to a safe place (to prevent deletion on updates, for example on RaspiBlitz create a new directory called /tunnelsats/ and save the config file in there: /mnt/hdd/app-data/tunnelsats/)

  5. Download the setup script onto your node.

Download setup script:

$ wget -O setupv2.sh https://github.com/tunnelsats/tunnelsats/raw/main/scripts/setupv2.sh

Copy your WireGuard config file (tunnelsatsv2.conf) to the same directory where setupv2.sh is located. If you need to transfer it to your node, use scp like so:

$ scp tunnelsatsv2.conf <user>@<ip/hostname>:/<path-to-home-dir>

e.g. for Umbrel: scp tunnelsatsv2.conf [email protected]:/home/umbrel/

Make sure that both files (tunnelsatsv2.conf and setupv2.sh) are located in the same directory. Then start it:

$ sudo bash setupv2.sh

If everything went fine, your selected VPN's credentials and further instructions are shown to adjust the lightning configuration file. Copy to file or write them down for later use (e.g. LND config):

#########################################
[Application Options]
listen=0.0.0.0:9735
externalhosts={vpnDNS}:{vpnPort}

[Tor]
tor.streamisolation=false
tor.skip-proxy-for-clearnet-targets=true
#########################################

Enabling hybrid mode

Before applying any changes to your config files, please always create a backup! For example:

$ cp /path/to/lnd.conf /path/to/lnd.conf.backup

⚠️ Important Notice: The following parts show how to configure LND and CLN implementations for hybrid mode. Regarding the status of this project, we currently only support one lightning implementation at a time. This means: If you plan to run both LND and CLN in parallel, only one (the one listening on port 9735) is routed over VPN, other ones default to Tor-only. Nevertheless, it is possible to bind or switch default ports on various node setups.


LND

Running LND only requires a few parameters to be checked and set to activate hybrid mode. Locate lnd.conf depending on your node setup. See the FAQ for some default path examples. Please edit the file and put the settings shown below into their corresponding sections. If any of these settings are already present, comment them out and add the new ones below. We need to add or modify the following settings:

[Application Options]
# omit the listen setting for Umbrel v0.5+
listen=0.0.0.0:9735
# the following placeholders {vpnDNS} and {vpnPort}
# are provided at the end of the setupv2.sh script
externalhosts={vpnDNS}:{vpnPort}

[Tor]
# set streamisolation to 'false' if currently set 'true'.
# if not set at all, just leave it out
tor.streamisolation=false
tor.skip-proxy-for-clearnet-targets=true

CLN

With CLN it's a bit trickier. Most node setups like Umbrel, RaspiBolt, RaspiBlitz etc. default CLN's daemon port to 9736. So in order to route CLN clearnet over VPN, we need to change CLN's default port to 9735. Locate data directory of your CLN installation. By default CLN's configuration is stored in a file named config. Edit the file and look out for network settings section.

⚠️ CLN v23.08: Due to changes in DNS handling, please resolve VPN DNS {vpnDNS} to its original IP address {vpnIP} and enter as described below.

RaspiBolt Setup

# Tor
addr=statictor:127.0.0.1:9051/torport=9735
proxy=127.0.0.1:9050
always-use-proxy=false

# Clearnet
bind-addr=0.0.0.0:9735
announce-addr={vpnDNS}:{vpnPort}

RaspiBlitz Setup

# Tor
addr=statictor:127.0.0.1:9051/torport=9736
proxy=127.0.0.1:9050
bind-addr=127.0.0.1:9736
always-use-proxy=false  

# Clearnet
bind-addr=0.0.0.0:9735
announce-addr={vpnDNS}:{vpnPort}

Umbrel Setup

On docker-based systems this might look very different. The following shows how to enable hybrid on Umbrel v0.5+:

  • Apps installed: Bitcoin, CLN (LND may NOT be installed at the same time)
  • Working Directory: ~/umbrel/app-data/core-lightning/
  • Files to look for: export.sh and docker-compose.yml
  • Changes to be made:

export.sh: change port number from 9736 to 9735

export APP_CORE_LIGHTNING_DAEMON_PORT="9736"

change to

export APP_CORE_LIGHTNING_DAEMON_PORT="9735"

docker-compose.yml:comment out bind-addr parameter in service lightningd:

  command:
   ...
   - --bind-addr=${APP_CORE_LIGHTNING_DAEMON_IP}:9735

change to

  command:
   ...
   #- --bind-addr=${APP_CORE_LIGHTNING_DAEMON_IP}:9735  

⚠️ Important Notice: On updates of CLN app all files are getting reset. So this change has to be done after every update procedure of CLN!

Additionally we create a persistent CLN config file (if not already provided. Umbrel 0.5+ does not initially.):

$ nano ~/umbrel/app-data/core-lightning/data/lightningd/bitcoin/config

and enter the following settings:

bind-addr=0.0.0.0:9735
always-use-proxy=false
announce-addr={vpnDNS}:{vpnPort}

⚠️ After enabling hybrid mode in related configuration files, restart the lightning implementation for changes to take effect!


Renew Subscription

Renewal of existing subscriptions has been reworked. Now it is possible to prolong your subscription by extending the current fixed term. Here is how it works:

  • go to tunnelsats.com and select "Renew Subscription" on the navigation bar
  • enter the WireGuard public key - find the key either
    • commented out in your tunnelsatsv2.conf, look for #myPubKey line (new subscriptions only) or
    • in your wireguard connection details extracted by running sudo wg show | grep "public key"
  • click "Query Key Info" to fetch your current valid date
  • select the desired term extension of your choice (it is appended to the current expiry)
  • click "Update Subscription" and pay the lightning invoice

⚠️ No new WireGuard file will be handed over to the user. The current lightning settings persist! So there is no further lightning configuration needed. Changing server locations on renewals is not supported for now.


Uninstall

To restore all applied changes made to your node setup, download and run the uninstallv2 script. Furthermore remove entries from configuration files.

$ wget -O uninstallv2.sh https://github.com/tunnelsats/tunnelsats/raw/main/scripts/uninstallv2.sh
$ sudo bash uninstallv2.sh

Restore your configuration from with the backup file you (hopefully) created on setting up hybrid mode. The uninstall script will take care of the most important part to prevent real IP leaks by disabling/removing hybrid settings in respective configuration files.


Deep Dive

What is the setupv2.sh script doing in detail?

  1. Checking if required components are already installed and if not, installing them. These are: cgroup-tools (for split-tunneling Tor), nftables (VPN rules) and wireguard (VPN software).

  2. Checking if tunnelsatsv2.conf exists in current directory (must be the same directory where setupv2 script is located).

  3. Setting up "split-tunneling" to exclude Tor traffic from VPN usage.

  4. Enabling and starting required systemd services ([email protected], splitting.service) or network container for docker-based solutions.

  5. Adding client-side nftables ruleset enabling kill-switching and preventing DNS leakage.


Further Help

Please review the FAQ for further help. If you need help setting up hybrid mode over VPN or just want to have a chat with us, join our Tunnel⚡Sats Telegram group.


This service is brought to you by @ziggie1984 (Ziggie), @TrezorHannes (Hakuna) and @blckbx.

Special thanks to @LightRider5 (lnvpn.net) for providing this amazing frontend framework and for help and support.

tunnelsats's People

Contributors

blckbx avatar buedenbender avatar dependabot[bot] avatar lightrider5 avatar openoms avatar trezorhannes avatar zapomatic avatar ziggie1984 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tunnelsats's Issues

Umbrel: Verify whether docker-compose restart lnd breaks the tunnel connection

Situation

Node runner @maxmerlin78 restarted LND 0.5x with docker-compose restart lnd, and after the restart, the clearnet connection became unavailable

Details

image

  • sudo wg show was empty
  • clearnet connections out and in not working

Validation

Need to verify what happens when docker-compose restart is used, over ~/umbrel/scripts/app stop lightning && ~/umbrel/scripts/app start lightning

Layout broken for web on mobile

Screenshot_20230103-105027

It seems like the Nav-Bar breaks the layout on mobile.

possible fix: moving the navbar items into a dropdown when on mobile

setupv2.sh bug: misleading cln.service message

My setup:

  • Bare metal CLN
  • CLN Service configured as /etc/systemd/system/cln.service

Steps to reproduce:

  • Run sudo bash setupv2.sh
  • Select option 4 (Bare Metal)
  • Enter "CLN"

Result:

The below message is printed

Looking for systemd service...
> /etc/systemd/system/lightningd.service / /etc/systemd/system/cln.service not found. Setup aborted.

However, as you can see on line 139 of setupv2.sh, it's only checking for /etc/systemd/system/lightningd.service <-- doesn't check for cln.service as per the error message printed on stdout

Slow down Machine After Installing TunnelSats

I installed TunnelSats on an Umbrel and apparently everything worked properly, but I didn't get to do a reboot.

A few days later I turned off tor through the Umbrel interface, because I understood that this would be my connection to umbrel and not the node to peers.

After the reboot the machine started to slow down, even without consuming CPU resources.

I then had to uninstall TunnelSats, which allowed me to re-sync the blockchain and no slowdown issues, but I couldn't get the LND anymore.

Then I tried to install TunnelSats again and the same slow issues came back. Do you have any documentation on what address settings should look like after installation?

Tks

Lightningd.service fail after installing Tunnelsats

Hi,

I am trying to install Tunnels sats on my Raspiblitz node v1.10.0rc5 with CLN 23.11. but after install I am getting next message in terminal:

Restarting Core Lightning
Job for lightningd.service failed because the control process exited with error code.
See "systemctl status lightningd.service" and "journalctl -xe" for details.

submenu signaled exit code '1' --> forward to outside loop

[email protected]:~ ₿ systemctl status lightningd.service
● lightningd.service - lightningd needs cgroup before it can start
Loaded: loaded (/etc/systemd/system/lightningd.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/lightningd.service.d
└─tunnelsats-cgroup.conf
Active: activating (auto-restart) (Result: exit-code) since Mon 2023-12-11 15:42:53 GMT; 25s a>
Process: 2007594 ExecStartPre=/home/admin/config.scripts/cl.check.sh prestart mainnet (code=exi>
Process: 2007596 ExecStart=/usr/bin/cgexec -g net_cls:splitted_processes /bin/sh -c /usr/local/>
Process: 2007597 ExecStartPost=/home/admin/config.scripts/cl.check.sh poststart mainnet (code=e>
Main PID: 2007596 (code=exited, status=1/FAILURE)
CPU: 1.579s


This is my CLN original config:

lightningd configuration for bitcoin mainnet

network=bitcoin
log-file=cl.log
plugin-dir=/home/bitcoin/cl-plugins-enabled

Tor settings

proxy=127.0.0.1:9050
bind-addr=127.0.0.1:9736
addr=statictor:127.0.0.1:9051/torport=9736
always-use-proxy=true

rpc-file-mode=0660
alias=blabla
database-upgrade=true
log-level=debug


This is new config for Tunnelsats:

lightningd configuration for bitcoin mainnet
network=bitcoin
log-file=cl.log
plugin-dir=/home/bitcoin/cl-plugins-enabled

Tor

addr=statictor:127.0.0.1:9051/torport=9735
proxy=127.0.0.1:9050
always-use-proxy=false

VPN

bind-addr=0.0.0.0:9735
announce-addr=de2.tunnelsats.com:22084

rpc-file-mode=0660
alias=blabla
database-upgrade=true
log-level=debug

I have noticed that newer versions of CLN have different setuo for CLN config ("⚠️ CLN v23.08: Due to changes in DNS handling, please resolve VPN DNS {vpnDNS} to its original IP address {vpnIP} and enter as described below.").
I have tried to edit config and replace announce-addr=de2.tunnelsats.com:22084 with announce-addr=myexternalip:22084
but CLN won't start even with this setup.

WorldMapRenew: pointer events on map without functionality

Switching to "Renew Subscription" loads a different version of the WorldMap which still enables pointer events with no funcionality.
Continents appear to be clickable on mouseove but don't get selected after clicking. This is somewhat misleading. On subscription renewals the world map only indicated the user's chosen continent after querying the wg pubkey from the backend.

modprobe cls_cgroup: module not found in /lib/modules/

Systeminfos:

  • RaspiBolt
  • RaspiOS / Debian 11 Bullseys
  • Arch: arm64

Problem: setup script stops at

[email protected] not starting because of
tunnelsats-create-cgroup.service not starting because of
tunnelsats-create-cgroup.sh failing on execution because of
modprobe cls_cgroup not finding module in /lib/modules/(kernelversion)

Todo:

  • exiting script on failing tunnelsats-create-cgroup.sh execution

TunnelSats vs ZeroTier: IP verification blocked

A user had problems installing TunnelSats if ZeroTier is already installed. There could be some settings that prevent curling for IPs. That's where our setup script fails and exits out.

Umbrel: curl / IP verification timing out

Systeminfos:

  • Umbrel (native linux)
  • Tailscale (deactivated after TS error)

setup script ends with:

Verifying tunnel ...
> ERR: TunnelSats VPN interface not successfully activated, please check debug logs

manual execution:

$ sudo docker run -ti --rm --net=docker-tunnelsats curlimages/curl https://api.ipify.org
  curl: (28) Failed to connect to api.ipify.org port 443 after 278832 ms: Operation timed out

restarting Umbrel:

creating network "umbrel_main_network" with the default driver
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule:  (iptables failed: iptables --wait -t nat -I DOCKER -i br-fcc540e07644 -j RETURN: iptables: No chain/target/match by that name.
 (exit status 1))
Failed to start containers
Skipping status update when not on Umbrel OS

wg stats:

allowed ips: 0.0.0.0/0, ::/0
latest handshake: 13 minutes, 36 seconds ago
transfer: 220 B received, 308 B sent

Second run of setupv2.sh needed to not leak the ISP_IP

Testrun on RaspiBlitz aarch64 v1.8.0rc2

Error:

Checking wireguard installation...
Installing wireguard...
> wireguard installed

Error: ipv4: FIB table does not exist.
Flush terminated
Copy wireguard conf file to /etc/wireguard and apply network rules...

Full logs:
redacted the ISP_IP TUNNELSATS_VPN_IP VPN_PORT

[email protected]:~/download/tunnelsats ₿ sudo bash setupv2.sh

###############################
         TunnelSats v2        
         Setup Script         
         Version:             
         v0.0.5
###############################

Looking for WireGuard config file...
> tunnelsatsv2.conf found, proceeding.

RaspiBlitz detected, lnd conf safety check removed

Checking and installing requirements...
Updating the package repositories...

Checking cgroup-tools...
Installing cgroup-tools...
> cgroup-tools installed

Checking nftables installation...
> nftables found

Checking wireguard installation...
Installing wireguard...
> wireguard installed

Error: ipv4: FIB table does not exist.
Flush terminated
Copy wireguard conf file to /etc/wireguard and apply network rules...
> tunnelsatsv2.conf copied to /etc/wireguard/
> network rules applied

Creating cgroup tunnelsats-create-cgroup.sh file in /etc/wireguard/...
> /etc/wireguard/tunnelsats-create-cgroup.sh created.

> tunnelsats-create-cgroup.sh created, executing...
> Successfully added cgroup net_cls subsystem
> Successfully added Mark for net_cls subsystem
> Created tunnelsats cgroup successfully

Creating cgroup systemd service...
Created symlink /etc/systemd/system/multi-user.target.wants/tunnelsats-create-cgroup.service → /etc/systemd/system/tunnelsats-create-cgroup.service.
> tunnelsats-create-cgroup.service: systemd service enabled and started

Creating tunnelsats-splitting-processes.sh file in /etc/wireguard/...
> /etc/wireguard/tunnelsats-splitting-processes.sh created
> tunnelsats-splitting-processes.sh created, executing...
> 2 Process(es) successfully excluded
> tunnelsats-splitting-processes.sh successfully executed

Creating tunnelsats-splitting-processes systemd service...
> tunnelsats-splitting-processes.service created
> tunnelsats-splitting-processes.timer created
Created symlink /etc/systemd/system/multi-user.target.wants/tunnelsats-splitting-processes.service → /etc/systemd/system/tunnelsats-splitting-processes.service.
> tunnelsats-splitting-processes.servicee: systemd service enabled and started
Created symlink /etc/systemd/system/timers.target.wants/tunnelsats-splitting-processes.timer → /etc/systemd/system/tunnelsats-splitting-processes.timer.
> tunnelsats-splitting-processes.timer: systemd timer enabled and started

> lnd.service updated now starts in cgroup tunnelsats

> backup saved under /etc/systemd/system/lnd.service.bak

> lnd.service restarting ...

> lnd.service restarted

Initializing the service...
Created symlink /etc/systemd/system/multi-user.target.wants/[email protected] → /lib/systemd/system/[email protected].
> wireguard systemd service enabled and started

Verifying tunnel ...
> Tunnel is active
      Your ISP external IP: ISP_IP 
      Your Tunnelsats external IP: TUNNELSATS_VPN_IP

Checking for firewalls and adjusting settings if applicable...
> ufw detected. VPN port rule added

______________________________________________________________________

These are your personal VPN credentials for your lightning configuration.

LND:
#########################################
[Application Options]
listen=0.0.0.0:9735
externalip=TUNNELSATS_VPN_IP:VPN_PORT
[Tor]
tor.streamisolation=false
tor.skip-proxy-for-clearnet-targets=true
#########################################

CLN:
###############################################################################
Umbrel 0.5+
(edit /home/umbrel/umbrel/app-data/core-lightning/docker-compose.yml file 
in section 'lightningd' - 'command' as follows):
comment out the following line: 
#- --bind-addr=:9735
add the following lines:
- --bind-addr=0.0.0.0:9735
- --announce-addr=TUNNELSATS_VPN_IP:VPN_PORT
- --always-use-proxy=false

Native CLN (config file):
bind-addr=0.0.0.0:9735
announce-addr=TUNNELSATS_VPN_IP:VPN_PORT
always-use-proxy=false
###############################################################################

Please save them in a file or write them down for later use.

A more detailed guide is available at: https://blckbx.github.io/tunnelsats/
Afterwards please restart LND / CLN for changes to take effect.

VPN setup completed!

The was no error on the second run and the CLN logs show the change:

INFO    PEER_1-channeld-chan#77: Peer connection lost
INFO    PEER_1-chan#77: Peer transient failure in CHANNELD_NORMAL: channeld: Owning subdaemon channeld died (62208)
INFO    PEER_1-chan#77: Peer transient failure in CHANNELD_NORMAL: Reconnected
INFO    PEER_2-channeld-chan#78: Peer connection lost
INFO    PEER_2-chan#78: Peer transient failure in CHANNELD_NORMAL: channeld: Owning subdaemon channeld died (62208)
INFO    lightningd: Peer says it sees our address as: ISP_IP.132:53888
INFO    PEER_3-channeld-chan#79: Peer connection lost
INFO    PEER_3-chan#79: Peer transient failure in CHANNELD_NORMAL: channeld: Owning subdaemon channeld died (62208)
INFO    lightningd: Peer says it sees our address as: ISP_IP.132:40076
INFO    PEER_1-channeld-chan#77: Peer connection lost
INFO    PEER_1-chan#77: Peer transient failure in CHANNELD_NORMAL: channeld: Owning subdaemon channeld died (62208)
INFO    PEER_2-channeld-chan#78: Peer connection lost
INFO    PEER_2-chan#78: Peer transient failure in CHANNELD_NORMAL: channeld: Owning subdaemon channeld died (62208)
INFO    lightningd: Peer says it sees our address as: TUNNELSATS_VPN_IP:53890
INFO    PEER_3-channeld-chan#79: Peer connection lost
INFO    PEER_3-chan#79: Peer transient failure in CHANNELD_NORMAL: channeld: Owning subdaemon channeld died (62208)
INFO    lightningd: Peer says it sees our address as: TUNNELSATS_VPN_IP:40078

Surpisingly:

$ curl api.ipify.org

still shows the ISP_IP

$ nc -zv TUNNELSAT_VPN_IP VPN_PORT

port [tcp/*] succeeded!

Is there any ways to avoid using nftables?

Now I’m trying to execute setupv2.sh, but something wrong happened.

I found Error: Could not process rule: Operation not supported on nftables.service log.

so I guess that /etc/nftables.conf ( or nftables modules) is not loaded correctly.

Is there any ways to avoid using nftables?
(Actually, I wanna use nftables. It seems hard to find solutions.)

My node is running on Jetson Xavier and use Umbrel.

cat /etc/os-release command returns

NAME="Ubuntu"
VERSION="20.04.4 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.4 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

uname -srm command returns

Linux 5.10.104-tegra aarch64

and nftables package version is 0.9.3-2

lsmod | grep nf_tables command returns nothing,

so is nftables missing from current kernel? (which nft command works.)

iptables --version command returns

iptables v1.8.4 (legacy)

thanks.

WG conf file: incorrect AllowedIPs entry returned from VPN

A user reported error on subscription renewal: wg-quick@tunnelsatsv2 didn't start up as expected.
Investigating this by manually starting up wg-quick up tunnelsatsv2 pointed to the entry AllowedIPs which was filled incorrectly or probably clipped at by the frontend (before running setupv2.sh script):

AllowedIPs = 0.0.0.0/0, ::/

expected outcome:

AllowedIPs = 0.0.0.0/0, ::/0

VPN server in this case: de1.tunnelsats.com

Validate the hostname check for raspiblitz

if [ "$(hostname)" == "raspberrypi" ] && [ "$lnImplementation" == "lnd" ]; then

Would like to raise whether we can lift the condition by removing the [ "$(hostname)" == "raspberrypi" ] in both CLN and LND for raspiblitz.

Any concerns @blckbx ?

# RaspiBlitz: deactivate config checks
if [ "$(hostname)" == "raspberrypi" ] && [ "$lnImplementation" == "lnd" ]; then
  if [ -f /home/admin/config.scripts/lnd.check.sh ]; then
    mv /home/admin/config.scripts/lnd.check.sh /home/admin/config.scripts/lnd.check.bak
    echo "RaspiBlitz detected, lnd conf safety check removed"
    echo
  fi
elif [ "$(hostname)" == "raspberrypi" ] && [ "$lnImplementation" == "cln" ]; then
  if [ -f /home/admin/config.scripts/cl.check.sh ]; then
    mv /home/admin/config.scripts/cl.check.sh /home/admin/config.scripts/cl.check.bak
    echo "RaspiBlitz detected, cln conf safety check removed"
    echo
  fi
fi

Umbrel v0.5 & CLN app: avoid editing non-persisting files

On Umbrel 0.5 we currently make changes to files that are being replaced on app updates (e.g. new cln version from app store). The changes need to be redone by the user each time which is not sustainable.
Instead of editing exports.sh and docker-compose.yml manually (see https://github.com/blckbx/tunnelsats#cln), we can create a default config file for CLN (Umbrel does not create that default config file on its own).

path to file:

~/umbrel/app-data/core-lightning/data/lightningd/config

contents:

bind-addr=0.0.0.0:9735
always-use-proxy=false
announce-addr={vpnIP}:{ vpnPort}

Problem here, we cannot use bind-addr in config file because it's already used by CLN's docker-compose.yml:

      - --bind-addr=${APP_CORE_LIGHTNING_DAEMON_IP}:9735

which is exposed as port 9736:

      - ${APP_CORE_LIGHTNING_DAEMON_PORT}:9735
...
export.sh:
      export APP_CORE_LIGHTNING_DAEMON_PORT="9736"

=> double-binding of port 9735

Logo proposal

Current logo is more graphic than usable logo. Its impossible to read in small scale and uses too many effects.
There is also a bit of confusion what the actual logo is. SOmething else on the web, something else is on twitter.

I propose the following:

Tunelsats-discovery

Tunelsats-web

I offer it as V4V contribution. It took me around 2.5h of discovery.

adaption of the install script to run tunnelsats on openvz/lxc virtualised linux systems (like strato.de)

Problem:
Standard WireGuard installation is not working on a v-linux server based on openVZ/lxc virtualisation platform (like strato.de), because the VM system does not allow the installation of additional Linux kernel modules, which is essential for WireGuard to work.
Solution:
However, the use of wireguard-go allows to run WireGuard on a user level without the need of kernel modules. It is a bit slower but fast enough for lightning node. Wireguard-go is written by the same team which writes WireGuard.
Here is a link https://d.sb/2019/07/wireguard-on-openvz-lxc how to install the newest version of wireguard-go.

The command to check for modules with the command modprobe cls_group in virtualized environments should be removed, cause it produced an error, therefore aborting the loading of wireguard.

Recommendation to correct two small minor bugs of the script:

  1. check for the correct path of bash and adapt the bash path in the script automatically (/usr/bin/bash was not linked on the virtualized environment, instead it was installed to /bin/bash)
  2. if the command ip route reports an empty response for subnets, then the wireguard configuration tunneslsatsv2.conf should omit ip daddr != {$localNetworks} in the command line for PostUp = nft add chain ip %i nat ... setting up the NAT. If the variable $localNetworks is empty then wireguard reports a syntax error and stops loading.

Raspiblitz 1.8.0 web-UI not able to connect to LND after install

Need to collect some further details here:

  • how the new UI connects to LND (Raspiblitz API details)
  • possible error logs like ~/raspiblitz.log catching more details

So far 3 users reporting the connection issue on their web-UI
image

But the API log doesn't show any error

initialsync: "done"
message: "Node Running"
setupPhase: "done"
state: "ready"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.