ZeroTier One P2P LAN App

ZeroTier One is an easy-to-use encrypted P2P LAN app, which enables the use of a private IP address to securely connect devices from anywhere in the world. Create secure networks between on-premise, cloud, desktop, and mobile devices.

Simply download and install the appropriate ZeroTier One app version, then click the “Configure” button and follow the instructions. I’ve personally tested it on the My Cloud PR4100 and My Cloud EX2 Ultra. It should run fine on the NAS devices listed below, but I don’t have all the hardware required for testing.

USE AT YOUR OWN RISK!

x86_64 Hardware:

ARMv7 Hardware:

For more information, refer to the ZeroTier manual.

4 Likes

THANK YOU SO MUCH it’s working perfectly on my EX4100

1 Like

Which GitHub source did you use to compile the code?

EDIT: Gotya. You’re still using the official ZeroTier CLI linux client, but it’s prettified. Thank-you. :slight_smile:

muchas, muchas gracias!!!

Working perfect on my My Cloud 2Tb, thnks!

@dswv42 I have a request. Could you implement this into the scripts that gets performed after ZeroTier has initialised?

It allows for packets to be forwarded to from the ZeroTier subnet to any device on the physical network. I got the code from the Docker startup script. It loads the kernel drivers that make it possible do this. I guess the script will need tweaking to make it a bit more bomb proof.

With the an updated Docker App installed on the WD NAS that does this magic when it loads, I can access the physical network when connected through ZeroTier.

I wonder if this can be made to also operate over egiga1?

#!/bin/bash

# For iptables
ln -s /usr/local/modules/usrlib/xtables /usr/lib/xtables

if ! `lsmod | grep ^ipv6 &> /dev/null`; then
  echo "Loading ipv6"
  insmod /usr/local/modules/driver/ipv6.ko disable_ipv6=1
fi

echo "Loading drivers"

drivers=(
"/usr/local/modules/driver/nf_conntrack.ko"
"/usr/local/modules/driver/nf_nat.ko"
"/usr/local/modules/driver/nf_defrag_ipv4.ko"
"/usr/local/modules/driver/nf_conntrack_ipv4.ko"
"/usr/local/modules/driver/nf_nat_ipv4.ko"
# "/usr/local/modules/driver/nf_defrag_ipv6.ko"
# "/usr/local/modules/driver/nf_conntrack_ipv6.ko"
"/usr/local/modules/driver/x_tables.ko"
"/usr/local/modules/driver/xt_conntrack.ko"
"/usr/local/modules/driver/xt_addrtype.ko"
#"/usr/local/modules/driver/xt_mark.ko"
#"/usr/local/modules/driver/xt_policy.ko"
"/usr/local/modules/driver/xt_tcpudp.ko"
"/usr/local/modules/driver/xt_nat.ko"
"/usr/local/modules/driver/nf_nat_masquerade_ipv4.ko"
"/usr/local/modules/driver/ipt_MASQUERADE.ko"
#"/usr/local/modules/driver/ipt_REJECT.ko"
#"/usr/local/modules/driver/ipt_ULOG.ko"
#"/usr/local/modules/driver/ip6_tables.ko"
#"/usr/local/modules/driver/ip6t_REJECT.ko"
#"/usr/local/modules/driver/ip6t_ipv6header.ko"
#"/usr/local/modules/driver/ip6table_filter.ko"
#"/usr/local/modules/driver/ip6table_mangle.ko"
"/usr/local/modules/driver/ip_tables.ko"
"/usr/local/modules/driver/iptable_filter.ko"
#"/usr/local/modules/driver/iptable_mangle.ko"
"/usr/local/modules/driver/iptable_nat.ko"
"/usr/local/modules/driver/llc.ko"
"/usr/local/modules/driver/stp.ko"
"/usr/local/modules/driver/bridge.ko"
"/usr/local/modules/driver/br_netfilter.ko"
)

for m in "${drivers[@]}"; do
  echo "Loading $m"
  if ! insmod $m ; then
	echo "failed to load $m"
  fi
  #sleep 1
done

sysctl -w net.ipv4.ip_forward=1
PHY_IFACE=egiga0; ZT_IFACE=TheZeroTierVirtualInterfaceDeviceNameHasToReplaceThisText
iptables -t nat -A POSTROUTING -o $PHY_IFACE -j MASQUERADE
iptables -A FORWARD -i $PHY_IFACE -o $ZT_IFACE -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i $ZT_IFACE -o $PHY_IFACE -j ACCEPT

Are you planning on version 1.6.5?