QNAP - Failed to install ZeroTier. Downgrade QTS to 5.0.0 or an older compatible version

Hi - this is for Martin -
I hope this is helpful.
In your explanation, you have not stated if you are using Zerotier 1.8.4 for 1.10.1 from QNAPClub. I am ASSUMING that you are using Zerotier 1.10.1

in your cli commands, you write
/share/CACHEDEV1_DATA/.qpkg/zeroteir/zerotier.sh start
but this is not what 1.10.1 from QNAPClub installs
the name of the folder is
/share/CACHEDEV1_DATA/.qpkg/0Tier1

anyway - I tried replacing zerotier with 0Tier1, and I can now see what is
in that directory
0Tier1.sh*
but it will not start. Once again - command not found

Thanks !
Bob Zelin

Hi,

I have the “official” 1.8.4 from zerotier.com.

Please check where zerotier is installed. Is your system volume CACHEDEV1_DATA? And is the package name “zerotier” or something else?

Cheers,
–Martin

Hello Martin -
If you do a clean installation on The QNAP, once you have QTS 5.0.1 installed, it will not allow you to install ZeroTier 1.8.4. Perhaps you had a QTS 5.0.0 system running with ZeroTier 1.8.4, and you upgraded to 5.0.1 (and the ZeroTier package gets “grayed out” as you see in the comments in this thread).
If you do not have ZeroTier installed, and have QTS 5.0.1 on your QNAP, you can no longer install ZeroTier 1.8.4 - you have to use the “new version” which is 1.10.1, which you get from QNAPCLUB in the link that I showed.

when you took at
/share/CACHEDEV1_DATA/.qpkg
you now see /OTier1
as the next directory. You DO NOT see
/share/CACHEDEV1_DATA/.qpkg/zerotier
you see
/share/CACHEDEV1_DATA/.qpkg/OTier1

anyway - I tried to manually change the commands that you showed us with ZeroTier 1.10.1
and replaced zerotier and zerotier.sh
to
/.qpkg/0Tier1/0Tier1.sh
and the error message is -
fatal error: cannot bind to local control interface port 9993

I appreciate all the feedback you are giving on this.
I am going to downgrade my QNAP to QTS 5.0.0, reinstall Zerotier 1.8.4,
get it working again, upgrade to QTS 5.0.1 without uninstalling Zerotier 1.8.4 and
try your commands, and see if that works.

I will report back. I am grateful for all the work you are doing on this. I am disappointed that this is not a priority to Zerotier at this time.
Bob Zelin

Hi Bob,

Thanks for the info. I haven’t even tried to revert to 5.0.0 because 5.0.1 mostly works and reinstalling would be a pain.

The “fatal error: cannot bind to local control interface port 9993” happens when another zerotier instance is already running on port 9993. If you run ps ax | grep zerotier, does it show anything?

The situation is indeed disappointing. It looks like there is a misconfiguration in the qpkg package that prevents installation or, if already installed, causes the package to disable itself. The binaries themselves work fine (or at least 1.8.4 on 5.0.1).

Cheers,
–Martin

Hi Martin and Bob:

I am grateful for your exchange here. I am in a similar situation… EXCEPT I was running an old instance of ZeroTier (1.2.12 which was an earlier version available for an extended period). Everything was working as I needed it. Then I updated to QTS 5.0.1 and have the same exact situation. I run Martin’s commands above and get the same result as Bob (I run: /share/CACHEDEV1_DATA/.qpkg/zerotier/zerotier.sh start
it returns -
“No such file or directory”).

I am not a Linux expert, and do not feel comfortable trying to back-level to 5.0.0, so I am not able to install the ZeroTier 1.8.4 to try this again.

So in summary, using ZeroTier 1.2.12, I get the same situation/result that Bob gets when using 1.10.1

I really appreciate everyone’s attempt to get a work-around operational here.

UPDATE

Martin, Bob, others:

As previously mentioned, I am not a Linux expert. However, I kept at this debug (based on my previous update). I found a utility that allowed me to search (in the system files) on my previously-installed ZeroTier installation. There I found a clue which moved me forward. It turns out the path commands are case-sensitive. Here is the first issue that I was able to resolve:

prior command: /share/CACHEDEV1_DATA/.qpkg/zerotier/zerotier.sh start
updated command: /share/CACHEDEV1_DATA/.qpkg/ZeroTier/ZeroTier.sh start

This worked, and then moved me forward. However, I then received a permissions error. After some research, I recalled that I had previously disabled my ADMIN account, and always log-in under a separate account (that has administrative authority). This evidently is also a problem.

I temporarily re-enabled ADMIN authority from the GUI, logged-back-in under ADMIN, entered the script again, and it now works!

Thanks so much for everyone’s assistance in this matter. I’ll have to eventually update my ZeroTier levels, but I actually might just leave this working as-is for awhile, since it works fine for me now.

1 Like

Hi Jim,

Apparently the install directory was previously named ZeroTier and then renamed to lowercase zerotier at some point between 1.2.12 and 1.8.4. And as Bob figured out, the community package is named 0Tier1. Further, I’m not sure that the System volume is always on /share/CACHEDEV1_DATA although it looks likely. So people who want to try out this workaround may have to snoop around a little. (There are ways to use shell globbing to find the right directory but I don’t have my laptop handy right now.)

Oh, and remember that this will work only until the next reboot.

Cheers,
–Martin

1 Like

Hello boys !
Well, this has been exhausting, but I now have a detailed explanation of how to get ZeroTier to work with QNAP QTS 5.0.1. Many Many thanks to everyone, especially Martin (mvonweis). Here is the explanation.

First, forget the QNAPCLUB download for Zerotier 1.10.1.
You have your QNAP QTS 5.0.0 installation, and you then install ZeroTier 1.8.4 right from the Zerotier.com website. You ssh into your QNAP, you type in
zerotier-cli join YourNetworkID
and it works, and you see 200 join OK
if you type in zerotier-cli info, you will see it says 200 info ONLINE
or zerotier-cli status, and you will see ONLINE.

OK - but we all knew that was working with QTS 5.0.0. So now we UPDATE THE QNAP to
QTS 5.0.1, which is how we all got into trouble. But we leave the ZeroTier 1.8.4 installation in the App
center alone.
The QNAP reboots with the new QTS 5.0.1 firmware, and when you look in the App Center, you will see that Zerotier 1.8.4 is now grayed out, and you cannot start it.
SO - just like Martin (mvonweis) has shown us, you simply follow his exact instructions.
I ran everything line by line to see if there were any failures. And there were not.
I even manually went into
/share/CACHEDEV1_DATA/.qpkg
and I can see that in Zerotier 1.8.4, the accurate name is zerotier, just like Martin told us -
and not ZeroTier, or 0Tier1 (0Tier1 was from the QNAPCLUB installation of Zerotier 1.10.1).

and you run that last line (just like Martin told us) -
/share/CACHEDEV1_DATA/.qpkg/zerotier/zerotier.sh start
and it starts
and you can now run
zerotier-cli join YourNetworkID

so THANK YOU MARTIN, as this is the TEMPORARY fix. But God help you if you have to reboot that QNAP, because you have to run all the lines again.

I sure hope that Zerotier finds this important enough to address. All of you guys were great.
The person that is not great is Mr. Qoolbox, who wrote the 1.10.1 .qpkg on QNAPCLUB, as it’s obvious that he never bothered to really test this, or ask anyone else if they were having any issues with his new package.

Thanks again - and see you guys soon !
Bob Zelin

1 Like

Thanks guys for all efforts and discoveries.

I am running QTS 5.0.1 and Zerotier 1.8.4

After running the command:

I get: zerotier is disabled

Off course when it is not running i cannot join the network

In the event I can get this work, can we run this as a cron job?
Enjoy the weekend
m

Dear All,
seems I got the community version 1.10.1 running on my TS251+.
After Installation I sshd into the NAS, and created a few links.

cd /share/CACHEDEV1_DATA/.qpkg
ln -s 0Tier1 ZeroTier
ln -s 0Tier1 zerotier
cd Zerotier
ln -s usr/sbin/zerotier-one
cd /usr/sbin
ln -s /share/CACHEDEV1_DATA/.qpkg/Zerotier/zerotier-one
cd /usr/lib
ln -s /share/CACHEDEV1_DATA/.qpkg/ZeroTier zerotier-one

/share/CACHEDEV1_DATA/.qpkg/ZeroTier/0Tier1.sh start
zerotier-cli info
zerotier-cli join

For those who get the port 9993 error, you can either reboot, or
lsof -i :9993
and then kill the flagged process.

Whether I have to ssh in again after a reboot I have not testet yet.
Also, pls consider this a proposal as it might have typos or I might have misspelled or forgotten commands I had used.

Good luck

-MartinWM

2 Likes

Hi Martin -
I appreciate all of your efforts on this, but unfortunately, this is not working.
First, as you guessed, there are some syntax errors in your document.
You write
cd Zerotier
but it’s either cd zerotier or cd ZeroTier
this appears on another line as well -
ln -s /share/CACHEDEV1+DATA/.qpkg/Zerotier/zerotier-one
when in fact the directory is called ZeroTier

with all of that said (and I tried it with the corrections -
even after a kill of the PID after finding out the process with lsot -I :9993
after running
/share/CACHEDEV1_DATA/.qpkg/ZeroTier/0Tier1.sh start
I get when I type zerotier-cli status
zerotier-cli: missing port and Zerotier-one port not found in /var/lib/zerotier-one

so I reboot the TS-251+ ,and try again - with the exact same results.

So I cannot get the Zerotier 1.10.1 package from the QNAPClub to run with QTS 5.0.1

The best I can do at this moment (thanks to your help) is get Zerotier 1.8.4 to run with QTS 5.0.1 with your previous instructions. But as you noted, when you reboot, you have to go thru the entire process again. Fine for me, but not for a client that has no
technical knowledge.

Thank you for all of your efforts.

Bob Zelin

Hi @marqueMC

QTS will disable the package for some reason. If you read the zerotier.sh shell script, you’ll find that it runs getcfgto check whether the package is enabled or not. If it isn’t, the script simply aborts with the error you mentioned. You need to first enable the package manually using the command setcfg zerotier Enable TRUE -f /etc/config/qpkg.conf and then zerotier.sh will (or should) work as expected.

No need to run it as a cron job, you only need to do it once at startup.

Cheers,
–Martin

Hello Bob,
thanks a lot for pointing out my typos.
The missing port error results from a missing link which is due to my typo - I had written usr instead of var

cd /var/lib
ln -s /share/CACHEDEV1_DATA/.qpkg/ZeroTier zerotier-one

Hope that helps

-MartinWM

Hello Martin -
we all need to buy you a present after this is all over. You just responded to marqueMC, the following, when he asked about running a cron job, since it’s not automatically running Zerotier upon a QNAP reboot - you wrote -

QTS will disable the package for some reason. If you read the zerotier.sh shell script, you’ll find that it runs getcfgto check whether the package is enabled or not. If it isn’t, the script simply aborts with the error you mentioned. You need to first enable the package manually using the command setcfg zerotier Enable TRUE -f /etc/config/qpkg.conf and then zerotier.sh will (or should) work as expected.

No need to run it as a cron job, you only need to do it once at startup.

so once we get Zerotier up and running as per your instructions (Zerotier 1.10.1, QTS 5.0.1) - and enter all the CLI commands to get it running, to be clear (because it’s not clear to me) - we now run -

setcfg zerotier Enable TRUE -f /etc/config/qpkg.conf

and this will now “stick” upon a reboot of the QNAP ? Is that accurate, or am I missing something ?

Thank you once again -
Bob Zelin

Hi @bobzelin,

Unfortunately this will not stick across a reboot. Some things will trigger QTS to disable the package, one of them is booting up and another seems to be opening the App Center in the QTS web UI (although I can’t replicate it every time).

The QNAP maintains a configuration dictionary with sections and fields. Zerotier has its own section (named “zerotier” for the 1.8.4 package) and one of the fields is called “Enabled”. This field is set to TRUE if the service should be started, or FALSE if not. When the zerotier.sh script is run, it checks this flag and acts accordingly. Our workaround is to set the flag to TRUE just before we run the zerotier.sh script:

setcfg zerotier Enable TRUE -f /etc/config/qpkg.conf
/share/CACHEDEV1_DATA/.qpkg/zerotier/zerotier.sh start

The script will complain that some symlinks already exist, but it will start anyway.

You can also check the current state with the following command:
getcfg zerotier Enable -d FALSE -u -f /etc/config/qpkg.conf

When you open the QTS web UI and wait a few moments, you will get an error notification in the “menu bar” saying that the zerotier package has an invalid signature. That’s my best hypothesis of the root cause.

Cheers,
–Martin

Dear All,

seems the community package 1.10.1 survives a restart.

I have added the following bold lines to 0Tier1.sh:

modprobe tun
/bin/ln -s $QPKG_ROOT/zerotier-one /usr/sbin/zerotier-cli
/bin/ln -s $QPKG_ROOT/zerotier-one /usr/bin/zerotier-cli
/bin/ln -s $QPKG_ROOT /var/lib/zerotier-one

killall zerotier-one
rm -rf /usr/sbin/zerotier-cli
rm -rf /usr/bin/zerotier-cli
rm -rf /var/lib/zerotier-one

Now not only the zerotier network runs, but also the CLI command.

-MartinWM

1 Like

Well done! I’ll have to check that out. :grinning:

Cheers,
–Martin

Hello Martin martinwm -
I cannot begin to thank you enough for doing this. I can assure everyone here, that once you follow the instructions to modify 0Tier1.sh* as shown, The QNAP running QTS 5.0.1 will now survive a reboot, and ZeroTier 1.10.1 will continue to run, without having to manually re enter all the command line stuff in ssh.

I would like to thank martinwm, mvonweis, marqueMC and cubicgarden for their incredible participation and observations in this ordeal, to get ZeroTier working properly with QTS 5.0.1. I think that Mr. Qoolbox at the QNAPCLUB.eu user site has got some explaining to do, where he posted ZeroTier 1.10.1, which of course, does not work unless it is accompanied by the instructions on this very thread, that all you guys so wonderfully participated in.

I am planning to “write this up” and repost this in a “cleaned up version” with all the instructions, so that a novice user doesn’t have to read thru all the little fixes and corrections that we did to get this to work.

Once again, Martinmw - you are wonderful - thank you thank you thank you !

Bob Zelin

Hi boys ! -
I thought some of you might enjoying seeing the suffering that the Tailscale folks are going through with QTS 5.0.1

Ivokub, who is the developer for Tailscale for QNAP, wrote this 7 days ago -
" My QNAP is other side of the continent and I get physical access to it once a year, so I really wouldn’t to lose connectivity :/"

Bob Zelin

There’s at least a few more typos in the 0Tier1.sh file:
export PIDF=/var/run/0Tier1pid

Should be:
export PIDF=/var/run/0Tier1.pid

And the following line:
ID=$(more /var/run/0Tier1.pid)

Should be:
ID=$(more $PIDF)

Cheers,
–Martin

1 Like