netbird icon indicating copy to clipboard operation
netbird copied to clipboard

[PULL REQUEST] Support for BIN install in Synology

Open zzecool opened this issue 9 months ago • 19 comments

As im noob in Git i will throw the install script modification for Synology NAS.

I just updated my BIN install in my NAS using the modded script

image

You better check my code here and refine it if needed. install.zip

Forgive my ignorance :D At least it working :P

zzecool avatar May 13 '24 20:05 zzecool

Hello @zzecool,

Thank you for bringing this to our attention. To better understand the current behavior when installing on Synology NAS, could you please execute the following command:

curl -fsSL https://pkgs.netbird.io/install.sh | USE_BIN_INSTALL=true sh

Once you've tried it, kindly share the results with us. Your feedback will help us ensure the installer works as expected.

bcmmbaga avatar May 14 '24 12:05 bcmmbaga

Hi @bcmmbaga,

Here you are :

$ curl -fsSL https://pkgs.netbird.io/install.sh | USE_BIN_INSTALL=true sh
sh: line 352: /etc/os-release: No such file or directory

So you need to detect synology with other tricks.

zzecool avatar May 14 '24 12:05 zzecool

Thanks, I will use your changes to make the installer work and then let you test it again

bcmmbaga avatar May 14 '24 12:05 bcmmbaga

@zzecool, could you please uninstall the currently installed NetBird and test the installation again using the following command:

curl -fsSL https://raw.githubusercontent.com/netbirdio/netbird/fix-synology-installer/release_files/install.sh | sh

Additionally, please test updating the installed NetBird with the following command:

curl -fsSL https://raw.githubusercontent.com/netbirdio/netbird/fix-synology-installer/release_files/install.sh | sh -s -- --update

bcmmbaga avatar May 14 '24 13:05 bcmmbaga

@bcmmbaga

$ curl -fsSL https://github.com/netbirdio/netbird/blob/fix-synology-installer/release_files/install.sh | sh
sh: line 7: syntax error near unexpected token `newline'
sh: line 7: `<!DOCTYPE html>'
curl: (23) Failure writing output to destination

zzecool avatar May 14 '24 13:05 zzecool

If i download and run :

$ ./install_synology.sh 
Installing netbird from https://github.com/netbirdio/netbird/releases/download/v0.27.6/netbird_0.27.6_linux_amd64.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 10.3M  100 10.3M    0     0  7000k      0  0:00:01  0:00:01 --:--:-- 11.5M
LICENSE
tar: LICENSE: Cannot open: File exists
README.md
tar: README.md: Cannot open: File exists
netbird
tar: Exiting with failure status due to previous errors

Seem the script leaves leftovers at tmp ?

zzecool avatar May 14 '24 13:05 zzecool

@bcmmbaga

$ curl -fsSL https://github.com/netbirdio/netbird/blob/fix-synology-installer/release_files/install.sh | sh
sh: line 7: syntax error near unexpected token `newline'
sh: line 7: `<!DOCTYPE html>'
curl: (23) Failure writing output to destination

You test again with updated URL's

curl -fsSL https://raw.githubusercontent.com/netbirdio/netbird/fix-synology-installer/release_files/install.sh | sh
curl -fsSL https://raw.githubusercontent.com/netbirdio/netbird/fix-synology-installer/release_files/install.sh | sh -s -- --update

bcmmbaga avatar May 14 '24 13:05 bcmmbaga

After Manuualy clearing the /tmp

$ curl -fsSL https://raw.githubusercontent.com/netbirdio/netbird/fix-synology-installer/release_files/install.sh | sh
Installing netbird from https://github.com/netbirdio/netbird/releases/download/v0.27.6/netbird_0.27.6_linux_amd64.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 10.3M  100 10.3M    0     0  7339k      0  0:00:01  0:00:01 --:--:-- 26.2M
LICENSE
README.md
netbird
Installing netbird-ui from https://github.com/netbirdio/netbird/releases/download/v0.27.6/netbird-ui-linux_0.27.6_linux_amd64.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 9951k  100 9951k    0     0  7161k      0  0:00:01  0:00:01 --:--:-- 23.9M
LICENSE
README.md
netbird-ui
Netbird service has been installed
Netbird service has been started
Installation has been finished. To connect, you need to run NetBird by executing the following command:

netbird up
$ curl -fsSL https://raw.githubusercontent.com/netbirdio/netbird/fix-synology-installer/release_files/install.sh | sh -s -- --update
Installed NetBird version (0.27.6) is up-to-date

What does the netbird-ui do actually ? I think for Synology we must skip UI

zzecool avatar May 14 '24 13:05 zzecool

I have pushed the changes to complete skip installing UI on Synalogy

bcmmbaga avatar May 14 '24 13:05 bcmmbaga

Can I use zzecool's latest command if I want to test it on mine?

pcfriek1987 avatar May 14 '24 13:05 pcfriek1987

Can I use zzecool's latest command if I want to test it on mine?

Yes, you can use the commands

bcmmbaga avatar May 14 '24 13:05 bcmmbaga

Tested with DSM 7

curl -fsSL https://raw.githubusercontent.com/netbirdio/netbird/fix-synology-installer/release_files/install.sh | sh


LICENSE
README.md
netbird
Netbird service has been installed
Netbird service has been started
Installation has been finished. To connect, you need to run NetBird by executing the following command:

netbird up

I was successfully added my nas to netbird console, but I got error trying do netbird up

Error: unable to get daemon status: rpc error: code = Unknown desc = new wg interface: couldn't check or load tun module

Found an old script in my snippets

#!/bin/sh

# Create the necessary file structure for /dev/net/tun
if ( [ ! -c /dev/net/tun ] ); then
  if ( [ ! -d /dev/net ] ); then
    mkdir -m 755 /dev/net
  fi
  mknod /dev/net/tun c 10 200
  chmod 0755 /dev/net/tun
fi

# Load the tun module if not already loaded
if ( !(lsmod | grep -q "^tun\s") ); then
  insmod /lib/modules/tun.ko
fi

run it and now it works

potatoru avatar May 15 '24 04:05 potatoru

Isn't that the code tailscale also uses? The below script that is.

pcfriek1987 avatar May 15 '24 08:05 pcfriek1987

I see it was just merged in main, can we use the main installer now as well then?

pcfriek1987 avatar May 15 '24 16:05 pcfriek1987

I see it was just merged in main, can we use the main installer now as well then?

Nope its not released yet

image

install.sh is not updated.

zzecool avatar May 15 '24 16:05 zzecool

It will be in our next release, for now you can use the https://raw.githubusercontent.com/netbirdio/netbird/main/release_files/install.sh URL.

mlsmaycon avatar May 15 '24 16:05 mlsmaycon

Cool, I was just about to comment how to install it now since the fix branch was deleted :) let's see how it holds up to Tailscale, as i do not really like how they do acl's and that selfhosting is more difficult :)

pcfriek1987 avatar May 15 '24 16:05 pcfriek1987

Thats only the first step though for Synology as it will only provide you access on the machine.

If you want to use it as an Exit Node - Or enable Routes to access the local network, then the client needs more work.

Please join me on the other issues that im describing.

Synlogy Exit node + Routes : https://github.com/netbirdio/netbird/issues/1976

Synology Internal Netbird Hostname DNS resolve : https://github.com/netbirdio/netbird/issues/1983

Fingers crossed for full Synology support.

zzecool avatar May 15 '24 18:05 zzecool

I can do so, currently still fighting with the admin panel for my free account, i got peers and documentation and thats it :)

pcfriek1987 avatar May 15 '24 18:05 pcfriek1987

@pcfriek1987 if you are still facing the issue, please send us an email at [email protected] with your user email.

mlsmaycon avatar May 22 '24 15:05 mlsmaycon

closing this one as completed.

mlsmaycon avatar May 22 '24 15:05 mlsmaycon

I have it successfully install, but what's the correct update method with newer versions?

Stunt0265 avatar Jul 22 '24 22:07 Stunt0265

I have it successfully install, but what's the correct update method with newer versions?

add the --update switch

zzecool avatar Jul 23 '24 14:07 zzecool

Thanks. That worked, but now getting this error:

Management: Disconnected, reason: new wg interface: couldn't check or load tun module Signal: Disconnected, reason: new wg interface: couldn't check or load tun module

*update - testing another Synology NAS, and after a reboot - as in the original NAS, I'm seeing the same error:

Error: status failed: new wg interface: couldn't check or load tun module

Stunt0265 avatar Jul 23 '24 16:07 Stunt0265

I added the script referenced above as a startup script, and now things are working.

#!/bin/sh

Create the necessary file structure for /dev/net/tun

if ( [ ! -c /dev/net/tun ] ); then if ( [ ! -d /dev/net ] ); then mkdir -m 755 /dev/net fi mknod /dev/net/tun c 10 200 chmod 0755 /dev/net/tun fi

Load the tun module if not already loaded

if ( !(lsmod | grep -q "^tun\s") ); then insmod /lib/modules/tun.ko fi

Stunt0265 avatar Jul 23 '24 19:07 Stunt0265