mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2026-09-22 15:29:03 -07:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b6248c7cb7 | ||
|
|
f6e7be102a | ||
|
|
c8213a3f58 | ||
|
|
d19516b40a | ||
|
|
ca5334509c | ||
|
|
a0a9d52213 | ||
|
|
2efc9b31bd | ||
|
|
1d9977b8b9 | ||
|
|
edad580c32 | ||
|
|
2536352e5d | ||
|
|
dbb509a302 | ||
|
|
3daf73710a | ||
|
|
d372cd1b17 | ||
|
|
ee7e826f0c | ||
|
|
d7bd3e37cb | ||
|
|
b23748aa5a | ||
|
|
8584515a50 | ||
|
|
08fe84d707 | ||
|
|
150a53eb17 | ||
|
|
1f9a7e26ba | ||
|
|
fc18334dbb | ||
|
|
4ce88d7f72 | ||
|
|
ce1a03bde3 | ||
|
|
d6414c9ff7 | ||
|
|
5076c75b07 | ||
|
|
36af3d92ec | ||
|
|
2ad80063ec | ||
|
|
2fbe1e200b | ||
|
|
53996050a2 | ||
|
|
f5d77a1bc2 | ||
|
|
93a7eef2a5 | ||
|
|
67acba4bc9 | ||
|
|
9979474f1e | ||
|
|
6c53891b44 | ||
|
|
95a23dc7ec | ||
|
|
7c3a446499 | ||
|
|
6a24ac4f00 | ||
|
|
3af55f4423 | ||
|
|
95c0790a88 | ||
|
|
5cabb60a6f | ||
|
|
86056fdbd9 | ||
|
|
8a46452a70 | ||
|
|
20f8668c28 | ||
|
|
7015992b84 | ||
|
|
4be890c171 | ||
|
|
e98fd3dba0 | ||
|
|
f5717f4427 | ||
|
|
5f8a3f4a7f | ||
|
|
499ac2699f | ||
|
|
b342f56bec | ||
|
|
28a73b620e | ||
|
|
e73c4cb68b | ||
|
|
c9c63074bb | ||
|
|
70f368fdc3 | ||
|
|
a7c4cbe53a | ||
|
|
3368330b77 | ||
|
|
b9aeec9f29 | ||
|
|
bf5c07f79a | ||
|
|
63fa4a684d | ||
|
|
3635a940f9 | ||
|
|
71b1eb9d52 | ||
|
|
58c9e90b49 | ||
|
|
d415c61c67 | ||
|
|
2e373f6400 | ||
|
|
421a04b35f | ||
|
|
80d8b7d0ae | ||
|
|
f823fd05ac | ||
|
|
2a6b74746e | ||
|
|
741642ba53 | ||
|
|
8d30d51cf3 | ||
|
|
ee9a811b81 | ||
|
|
f260c2839c | ||
|
|
2ba97fb46b | ||
|
|
9df88a3933 | ||
|
|
3daea24d50 | ||
|
|
7e156b2622 | ||
|
|
e4c5ad9f43 | ||
|
|
439e602d5a | ||
|
|
a53cfc9096 | ||
|
|
e7b515c86c | ||
|
|
304ed641fe | ||
|
|
7a17f6ca80 | ||
|
|
d35d322890 | ||
|
|
dd203f0065 | ||
|
|
fb975ead23 | ||
|
|
a816f56426 | ||
|
|
e6e825da70 | ||
|
|
917b95a1d6 | ||
|
|
b0a83093ce | ||
|
|
57d8730f1b | ||
|
|
af8fcac0fc | ||
|
|
9cf734b74a | ||
|
|
083ae2d097 | ||
|
|
668c428051 | ||
|
|
10fc164fcb | ||
|
|
0c7f8e247c | ||
|
|
b8e9a79d00 | ||
|
|
e4e517e9c3 | ||
|
|
5f4eb1ebc6 | ||
|
|
c345c699fd | ||
|
|
a677597b44 | ||
|
|
1fce55fab1 | ||
|
|
2e85cf18c1 | ||
|
|
76bc9968ff | ||
|
|
557cc359b3 | ||
|
|
102b0865cb | ||
|
|
a793dc2b29 | ||
|
|
a6f4de8172 | ||
|
|
1d36ea8ddf | ||
|
|
ca83f07b54 | ||
|
|
195ded4608 | ||
|
|
97cbd98bc5 | ||
|
|
3e49337d9a | ||
|
|
c6dd5b239f | ||
|
|
aa59c1de10 | ||
|
|
a004878546 | ||
|
|
086050686f | ||
|
|
f934b81703 | ||
|
|
77fd78d5c9 | ||
|
|
a86e1cdb88 | ||
|
|
2510f594e5 | ||
|
|
339b2314ea | ||
|
|
fd2b383c3e | ||
|
|
ae93c95151 | ||
|
|
ffad0b2780 | ||
|
|
bcd079b70e | ||
|
|
9f8069434a | ||
|
|
9e28bbfbb2 | ||
|
|
47f611e7b8 | ||
|
|
b14856da50 | ||
|
|
1111d11be1 | ||
|
|
51295e77d0 | ||
|
|
a20b540fb0 | ||
|
|
ef3e319c64 | ||
|
|
41cd980bf7 | ||
|
|
1ecf6ed3d0 | ||
|
|
775fef9ce9 | ||
|
|
6eb77da094 | ||
|
|
366f556e5b | ||
|
|
e7f20ad5f9 | ||
|
|
f8cfdf973e | ||
|
|
e2a2d33f8f | ||
|
|
c68ab6b70f | ||
|
|
3397273322 | ||
|
|
0a7a8b415d | ||
|
|
9eec6adc8c | ||
|
|
5c543b3b4a | ||
|
|
2fffdfdaf5 | ||
|
|
ef08494237 | ||
|
|
2eaac3891e | ||
|
|
7f3dea018c | ||
|
|
7c85a638b0 | ||
|
|
68cc5ea523 | ||
|
|
2c0cdc9484 | ||
|
|
cfef114c31 | ||
|
|
118247e8b5 | ||
|
|
a18162d58b | ||
|
|
7640801952 | ||
|
|
0b46f2869a |
No files matched your search
+10
@@ -6,3 +6,13 @@ zerotier-*
|
||||
*.dSYM
|
||||
mac-tap/tuntap/src/tap/tap
|
||||
mac-tap/tuntap/tap.kext
|
||||
/ipch
|
||||
/ZeroTierOne.sdf
|
||||
/ZeroTierOne.v11.suo
|
||||
/vsprojects/SelfTest/Debug
|
||||
/vsprojects/SelfTest/Release
|
||||
/Debug
|
||||
/Release
|
||||
*.log
|
||||
*.opensdf
|
||||
*.user
|
||||
+2
-8
@@ -1,6 +1,6 @@
|
||||
This file will track authors and contributors to ZeroTier's code base.
|
||||
People who contribute code that is accepted into the master (trunk) branch
|
||||
will be credited here.
|
||||
People who contribute new code or bug fixes that are accepted into
|
||||
the master (trunk) branch will be credited here.
|
||||
|
||||
--
|
||||
|
||||
@@ -16,12 +16,6 @@ ZeroTier One includes or links with the following third party software:
|
||||
* LZ4 compression algorithm by Yann Collet (BSD license)
|
||||
http://code.google.com/p/lz4/
|
||||
|
||||
* JsonCPP by Baptiste Lepilleur (public domain)
|
||||
http://jsoncpp.sourceforge.net
|
||||
|
||||
* http-parser, a simple C http parser library (MIT license)
|
||||
https://github.com/joyent/http-parser
|
||||
|
||||
* OpenSSL libcrypto (BSD-style OpenSSL license)
|
||||
http://www.openssl.org/
|
||||
|
||||
|
||||
@@ -2,6 +2,10 @@ Building ZeroTier One on different platforms:
|
||||
|
||||
(See RUNNING.txt for what to do next.)
|
||||
|
||||
Developers note: there is currently no management of dependencies on *nix
|
||||
platforms, so you should make clean ; make if you change a header. Will
|
||||
do this eventually.
|
||||
|
||||
-- MacOS
|
||||
|
||||
make -f Makefile.mac
|
||||
|
||||
+10
-10
@@ -6,12 +6,12 @@ ARCH=$(shell uname -m)
|
||||
DEFS=-DZT_ARCH="$(ARCH)" -DZT_OSNAME="linux" -DZT_TRACE
|
||||
|
||||
# Uncomment for a release optimized build
|
||||
CFLAGS=-Wall -O6 -fno-unroll-loops -pthread $(INCLUDES) -DNDEBUG $(DEFS)
|
||||
STRIP=strip --strip-all
|
||||
#CFLAGS=-Wall -O3 -fno-unroll-loops -fstack-protector -pthread $(INCLUDES) -DNDEBUG $(DEFS)
|
||||
#STRIP=strip --strip-all
|
||||
|
||||
# Uncomment for a debug build
|
||||
#CFLAGS=-Wall -g -pthread $(INCLUDES) -DZT_TRACE -DZT_LOG_STDOUT $(DEFS)
|
||||
#STRIP=echo
|
||||
CFLAGS=-Wall -g -pthread $(INCLUDES) -DZT_TRACE $(DEFS)
|
||||
STRIP=echo
|
||||
|
||||
CXXFLAGS=$(CFLAGS) -fno-rtti
|
||||
|
||||
@@ -20,16 +20,20 @@ CXXFLAGS=$(CFLAGS) -fno-rtti
|
||||
# separate binaries for the RedHat and Debian universes to distribute via
|
||||
# auto-update. This way we get one Linux binary for all systems of a given
|
||||
# architecture.
|
||||
LIBS=ext/bin/libcrypto/linux-$(ARCH)/libcrypto.a
|
||||
LIBS=ext/bin/libcrypto/linux-$(ARCH)/libcrypto.a -lm -ldl
|
||||
|
||||
include objects.mk
|
||||
|
||||
all: one launcher
|
||||
all: one cli launcher
|
||||
|
||||
one: $(OBJS)
|
||||
$(CXX) $(CXXFLAGS) -o zerotier-one main.cpp $(OBJS) $(LIBS)
|
||||
$(STRIP) zerotier-one
|
||||
|
||||
cli: $(OBJS)
|
||||
$(CXX) $(CXXFLAGS) -o zerotier-cli cli.cpp $(OBJS) $(LIBS)
|
||||
$(STRIP) zerotier-cli
|
||||
|
||||
selftest: $(OBJS)
|
||||
$(CXX) $(CXXFLAGS) -o zerotier-selftest selftest.cpp $(OBJS) $(LIBS)
|
||||
$(STRIP) zerotier-selftest
|
||||
@@ -38,10 +42,6 @@ idtool: $(OBJS)
|
||||
$(CXX) $(CXXFLAGS) -o zerotier-idtool idtool.cpp $(OBJS) $(LIBS)
|
||||
$(STRIP) zerotier-idtool
|
||||
|
||||
packtool: $(OBJS)
|
||||
$(CXX) $(CXXFLAGS) -o zerotier-packtool packtool.cpp $(OBJS) $(LIBS)
|
||||
$(STRIP) zerotier-packtool
|
||||
|
||||
launcher:
|
||||
$(CC) -Os -o zerotier-launcher launcher.c
|
||||
$(STRIP) zerotier-launcher
|
||||
|
||||
+10
-10
@@ -5,7 +5,7 @@ INCLUDES=-Iext/bin/libcrypto/include -Iext/jsoncpp/include
|
||||
DEFS=-DZT_ARCH="x86_combined" -DZT_OSNAME="mac" -DZT_TRACE
|
||||
|
||||
# Uncomment for a release optimized universal binary build
|
||||
CFLAGS=-arch i386 -arch x86_64 -Wall -O6 -ftree-vectorize -pthread -mmacosx-version-min=10.6 -DNDEBUG $(INCLUDES) $(DEFS)
|
||||
CFLAGS=-arch i386 -arch x86_64 -Wall -O3 -ftree-vectorize -fstack-protector -pthread -mmacosx-version-min=10.6 -DNDEBUG $(INCLUDES) $(DEFS)
|
||||
STRIP=strip
|
||||
|
||||
# Uncomment for a debug build
|
||||
@@ -13,19 +13,20 @@ STRIP=strip
|
||||
#STRIP=echo
|
||||
|
||||
CXXFLAGS=$(CFLAGS) -fno-rtti
|
||||
|
||||
# We statically link against libcrypto since Apple has apparently decided
|
||||
# to deprecate it and may remove it in future OS releases.
|
||||
LIBS=ext/bin/libcrypto/mac-x86_combined/libcrypto.a
|
||||
LIBS=-lcrypto -lm
|
||||
|
||||
include objects.mk
|
||||
|
||||
all: one launcher mac-tap
|
||||
all: one cli launcher mac-tap
|
||||
|
||||
one: $(OBJS)
|
||||
$(CXX) $(CXXFLAGS) -o zerotier-one main.cpp $(OBJS) $(LIBS)
|
||||
$(STRIP) zerotier-one
|
||||
|
||||
cli: $(OBJS)
|
||||
$(CXX) $(CXXFLAGS) -o zerotier-cli cli.cpp $(OBJS) $(LIBS)
|
||||
$(STRIP) zerotier-cli
|
||||
|
||||
selftest: $(OBJS)
|
||||
$(CXX) $(CXXFLAGS) -o zerotier-selftest selftest.cpp $(OBJS) $(LIBS)
|
||||
$(STRIP) zerotier-selftest
|
||||
@@ -34,10 +35,6 @@ idtool: $(OBJS)
|
||||
$(CXX) $(CXXFLAGS) -o zerotier-idtool idtool.cpp $(OBJS) $(LIBS)
|
||||
$(STRIP) zerotier-idtool
|
||||
|
||||
packtool: $(OBJS)
|
||||
$(CXX) $(CXXFLAGS) -o zerotier-packtool packtool.cpp $(OBJS) $(LIBS)
|
||||
$(STRIP) zerotier-packtool
|
||||
|
||||
mac-tap: FORCE
|
||||
cd mac-tap/tuntap ; make tap.kext
|
||||
|
||||
@@ -55,6 +52,9 @@ launcher-fakebin:
|
||||
$(CC) $(CFLAGS) -DZEROTIER_FAKE_VERSION_MAJOR=1 -DZEROTIER_FAKE_VERSION_MINOR=2 -DZEROTIER_FAKE_VERSION_REV
|
||||
$(CC) $(CFLAGS) -DZEROTIER_FAKE_VERSION_MAJOR=1 -DZEROTIER_FAKE_VERSION_MINOR=2 -DZEROTIER_FAKE_VERSION_REV
|
||||
|
||||
makekeypair: $(OBJS)
|
||||
$(CXX) $(CXXFLAGS) -o zerotier-makekeypair makekeypair.cpp $(OBJS) $(LIBS)
|
||||
|
||||
clean:
|
||||
rm -rf *.dSYM
|
||||
rm -f $(OBJS) zerotier-*
|
||||
|
||||
@@ -5,7 +5,7 @@ ZeroTier One creates flat virtual Ethernet networks of almost unlimited size. [V
|
||||
|
||||
This code is presently in **ALPHA** testing. That means that the protocol spec may change in incompatible ways, and it certainly has bugs. Testers should "git pull," rebuild, and restart fairly often. If things mysteriously stop working, do that.
|
||||
|
||||
See BUILDING.txt and RUNNING.txt for instructions. It currently builds on Mac and Linux. A Windows port is coming soon. Nice packages/installers and auto-update is also coming when alpha transitions to beta.
|
||||
See BUILDING.txt and RUNNING.txt for instructions. It currently builds on Mac and Linux. A Windows port is coming soon. Nice packages/installers and auto-update are also coming when alpha transitions to beta.
|
||||
|
||||
Note that this won't work if your firewall does not allow outbound UDP. It must allow UDP conversations on port 8993 at a minimum.
|
||||
|
||||
@@ -13,7 +13,7 @@ At present there is only one virtual LAN and you are dumped there by default. It
|
||||
|
||||
**Security warning:** You read that right. ZeroTier One places your computer on an absolutely open global Ethernet party line. Please ensure that you are up to date on your OS patches and we recommend turning off unnecessary services. Also be sure that anything else you are sharing is password protected provided you don't want to share it: printers, iPhoto and iTunes shares, etc.
|
||||
|
||||
ZeroTier One is licensed under the GNU General Public License version 3. Anyone wishing to embed this in a commercial product or create a derivative product should contact [ZeroTier Networks LLC](https://www.zerotier.com/) to obtain a commercial license.
|
||||
ZeroTier One is licensed under the GNU General Public License version 3. You are free to use, modify, or redistribute it under the terms of that license. If you would like to embed ZeroTier One in a closed source product or create a closed source derivative product, contact ZeroTier Networks LLC.
|
||||
|
||||
Check out the [blog](http://blog.zerotier.com/) for announcements, in-depth articles, and related thoughts. There is also a [Google group](https://groups.google.com/forum/#!forum/zerotier-one-users) for questions and discussion.
|
||||
|
||||
@@ -21,16 +21,19 @@ Check out the [blog](http://blog.zerotier.com/) for announcements, in-depth arti
|
||||
**FAQ**
|
||||
|
||||
**Q:** What can I do with this?
|
||||
**A:** For starters, try opening iTunes if you have it installed. If others are also online and sharing their collections, you might see them. If you have any games that run over a LAN (except those that require IPX), try those. What else can you think of to do on a completely flat, open network? Collaborative software development? Remote debugging? Transferring files using simple drive shares? Sharing your desktop printer to someone on another continent? Use your imagination.
|
||||
**A:** For starters, try opening iTunes if you have it installed. If others are also online and sharing their collections, you might see them. If you have any games that run over a LAN (except those that require IPX), try those. What else can you think of to do on a completely flat, open network? Games? Collaborative software development? Remote debugging? Transferring files using simple drive shares? Sharing your desktop printer to someone on another continent? Use your imagination.
|
||||
|
||||
**Q:** Why do I get an IP address in the 27.0.0.0 or 28.0.0.0 range? And why does a lookup claim these addresses belong to the U.S. Department of Defense?
|
||||
**A:** Short answer: because IPv4 needs to die. Long answer: the Earth network assigns IPv4 IPs from these ranges. They do in fact belong to the DOD, but they are *not* routed to the open Internet. The DOD owns them but uses them internally for private networks. As a result, there is nothing *technically* wrong with "bogarting" these for our own private network. It's considered bad practice, but if you want a private address space in IPv4 that is unlikely to overlap other private address spaces (like 10/8 and 192.168/16), it's the only way. [Cellular carriers](http://www.androidcentral.com/sprint-internet-dept-defense-and-you) and [cable companies](http://www.dslreports/forum/r25679029-Why-is-my-first-hop-to-a-DoD-assigned-IP-address-) frequently do the same thing.
|
||||
**A:** Short answer: because IPv4 needs to die. Long answer: the Earth network assigns IPv4 IPs from these ranges. They do in fact belong to the DOD, but they are *not* routed to the open Internet. The DOD owns them but uses them internally for private networks. As a result, there is nothing *technically* wrong with "bogarting" these for our own private network. It's considered bad practice, but if you want a private address space in IPv4 that is unlikely to overlap other private address spaces (like 10/8 and 192.168/16), it's the only way. [Cellular carriers](http://www.androidcentral.com/sprint-internet-dept-defense-and-you) and [cable companies](http://www.dslreports.com/forum/r25679029-Why-is-my-first-hop-to-a-DoD-assigned-IP-address-) frequently do the same thing.
|
||||
|
||||
**Q:** Is IPv6 supported?
|
||||
**A:** Yes. IPv6 link-local addresses (those in the fe80::/10 block) are auto-assigned and should work fine. No other IPv6 addresses are assigned *yet*, but there are plans to do interesting things in this area in the future.
|
||||
|
||||
**Q:** I don't want a giant Ethernet party line. Can I leave it and create private LANs instead?
|
||||
**A:** Yes, soon. A GUI to configure such things is in development. But for now there's only Earth.
|
||||
|
||||
**Q:** Are you going to charge for this?
|
||||
**A:** Public networks will remain free, but we intend to charge for private virtual LANs. ZeroTier has other ideas too, but they're top secret for the moment.
|
||||
**A:** Public virtual LANs will remain free. We intend to charge for private networks in some way, but the exact model is TBD. Other cloud-supported paid features are also TBD.
|
||||
|
||||
**Q:** What's a supernode?
|
||||
**A:** Supernodes are nodes run by ZeroTier Networks that orindary users use to find one another and communicate until/unless they can perform NAT traversal and connect directly. They run the exact same software as everyone else. The only thing that really makes a supernode special is that it's designated as such.
|
||||
@@ -38,14 +41,20 @@ Check out the [blog](http://blog.zerotier.com/) for announcements, in-depth arti
|
||||
**Q:** Can I run a supernode?
|
||||
**A:** No, not at the moment, and there would be no benefit to doing so.
|
||||
|
||||
**Q:** Will my local firewall rules apply to ZeroTier One traffic?
|
||||
**A:** ZeroTier creates a virtual Ethernet tap device (zt# on Mac and Linux) that emulates a wired Ethernet port. If your firewall applies to *all* network ports, it will filter traffic through this port as well. If it applies only to the primary interface, it may not. See your OS's firewall documentation, as different OSes and flavors thereof have slightly different configurations in this regard.
|
||||
|
||||
**Q:** Can you see my traffic? What about other users? Can you sniff the LAN?
|
||||
**A:** No. All unicast (direct computer to computer) traffic is encrypted end-to-end (even if it's being relayed), and the ZeroTier virtual LAN behaves like a LAN with a secure enterprise-grade switch that does not allow unicast conversations to be sniffed. Multicast and broadcast traffic will of course be seen by many recipients, but that's the idea.
|
||||
|
||||
**Q:** You say "almost unlimited size." Isn't multicast and broadcast traffic eventually going to be too much? What happens then?
|
||||
**A:** ZeroTier One uses an algorithm called *implicit social switching*. The overall maximum number of recipients for a multicast is limited, so if there are too many listeners to a given multicast address then obviously not everyone will receive every message. So who does? Social switching causes multicasts to propagate in the direction of peers to whom you have recently communicated. As a result, multicasts tend to propagate along lines of association. The people most likely to get your service announcements are those with whom you frequently connect.
|
||||
**Q:** What about privacy? Does this hide my location on the network?
|
||||
**A:** ZeroTier is not a connection anonymizer. Other than encryption, it doesn't do anything special to hide your identity or network location. If you want strong privacy protection there are already very advanced tools like [Tor](https://www.torproject.org) for that, and this isn't trying to duplicate their functionality. At the same time, ZT does not do anything special to harm your privacy either. It's not spyware or snoop-ware.
|
||||
|
||||
**Q:** I don't see broadcasts.
|
||||
**A:** At the moment only Ethernet multicast is propagated, not broadcast (ff:ff:ff:ff:ff:ff). This may change in the future. IPv4 ARP uses broadcast but is handled by special code that subscribes to a multicast group using the broadcast address combined with the IPv4 address to make it address-specific. See comments in MulticastGroup.hpp for deeper technical details.
|
||||
**Q:** Is this designed to replace IP, BGP, IPv6, routers, etc.?
|
||||
**A:** No. Its purpose is to act as a collaboration tool, a VPN alternative, a network mobility tool, a testbed for the development of software that takes advantage of fully open networking, a virtual LAN party for gamers, and so on, but it's not intended (or able) to replace the core of the Internet.
|
||||
|
||||
**Q:** Can I bridge this to a physical port and plug in an Xbox, PlayStation, etc.?
|
||||
**A:** Not currently, as foreign Ethernet frames are not forwarded. This may be possible in a future version.
|
||||
|
||||
----
|
||||
**Status**
|
||||
@@ -62,9 +71,8 @@ Check out the [blog](http://blog.zerotier.com/) for announcements, in-depth arti
|
||||
* Changes in your local network configuration are generally detected and will cause peers to be re-acquired.
|
||||
|
||||
*Known immediate issues:*
|
||||
* Multiple network support is in but there is no interface to configure it, hence it is useless. But in alpha it'll be nice to shove everyone onto "Earth" in order to stress test that little "almost unlimited size" boast. LAN party!
|
||||
* Multiple networks would currently all have the same MAC, which some OSes may not like. There is a possible strategy for dealing with this, but it needs to be explored.
|
||||
* There is no multiple-launch protection yet. If you launch more than one instance on the same working directory everything breaks. Take care that zerotier-one is not running before launching it again. The command "sudo killall zerotier-one" is helpful.
|
||||
* Multiple network support is in but there is no interface to configure it, hence it is useless. But in alpha it'll be nice to shove everyone onto "Earth" in order to stress test that little "almost unlimited size" boast.
|
||||
* There is no multiple-launch protection yet and multiple instances on the same system do not work well due to route conflicts. Take care that zerotier-one is not running before launching it again. The command "sudo killall zerotier-one" is helpful.
|
||||
* Sometimes ZeroTier One doesn't like to terminate when asked nicely. This is related to issues with the tap device closing down properly. If it hangs around after a TERM signal, send it a KILL (9) signal.
|
||||
* The locally bound UDP port isn't configurable yet. It's 8993 by default.
|
||||
* Known security issues:
|
||||
@@ -81,4 +89,7 @@ Check out the [blog](http://blog.zerotier.com/) for announcements, in-depth arti
|
||||
|
||||
----
|
||||
|
||||
<a href="http://flattr.com/thing/1611614/ZeroTier-Networks" target="_blank"><img src="http://api.flattr.com/button/flattr-badge-large.png" alt="Flattr this" title="Flattr this" border="0" /></a>
|
||||
[](http://githalytics.com/zerotier/ZeroTierOne)
|
||||
|
||||
(c)2012-2013 [ZeroTier Networks LLC](https://www.zerotier.com/)
|
||||
+1
-1
@@ -9,7 +9,7 @@ By convention, ZeroTier One will keep its state here on mac:
|
||||
ZeroTier ships with a kernel extension for its own tap device, which it
|
||||
stores in the above directory. To install this from source, type:
|
||||
|
||||
sudo make install-mac-tap
|
||||
sudo make -f Makefile.mac install-mac-tap
|
||||
|
||||
This will create the ZeroTier One home above if it does not exist and install
|
||||
the kext there. Note that the kext must be owned by root:wheel. The make
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 2012
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SelfTest", "vsprojects\SelfTest\SelfTest.vcxproj", "{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Debug|x64 = Debug|x64
|
||||
Release|Win32 = Release|Win32
|
||||
Release|x64 = Release|x64
|
||||
Vista Debug|Win32 = Vista Debug|Win32
|
||||
Vista Debug|x64 = Vista Debug|x64
|
||||
Vista Release|Win32 = Vista Release|Win32
|
||||
Vista Release|x64 = Vista Release|x64
|
||||
Win7 Debug|Win32 = Win7 Debug|Win32
|
||||
Win7 Debug|x64 = Win7 Debug|x64
|
||||
Win7 Release|Win32 = Win7 Release|Win32
|
||||
Win7 Release|x64 = Win7 Release|x64
|
||||
Win8 Debug|Win32 = Win8 Debug|Win32
|
||||
Win8 Debug|x64 = Win8 Debug|x64
|
||||
Win8 Release|Win32 = Win8 Release|Win32
|
||||
Win8 Release|x64 = Win8 Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Debug|Win32.ActiveCfg = Release|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Debug|Win32.Build.0 = Release|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Release|Win32.Build.0 = Release|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Release|x64.ActiveCfg = Release|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Vista Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Vista Debug|Win32.Build.0 = Debug|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Vista Debug|Win32.Deploy.0 = Debug|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Vista Debug|x64.ActiveCfg = Debug|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Vista Release|Win32.ActiveCfg = Release|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Vista Release|Win32.Build.0 = Release|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Vista Release|Win32.Deploy.0 = Release|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Vista Release|x64.ActiveCfg = Release|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Win7 Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Win7 Debug|Win32.Build.0 = Debug|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Win7 Debug|Win32.Deploy.0 = Debug|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Win7 Debug|x64.ActiveCfg = Debug|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Win7 Release|Win32.ActiveCfg = Release|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Win7 Release|Win32.Build.0 = Release|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Win7 Release|Win32.Deploy.0 = Release|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Win7 Release|x64.ActiveCfg = Release|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Win8 Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Win8 Debug|Win32.Build.0 = Debug|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Win8 Debug|Win32.Deploy.0 = Debug|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Win8 Debug|x64.ActiveCfg = Debug|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Win8 Release|Win32.ActiveCfg = Release|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Win8 Release|Win32.Build.0 = Release|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Win8 Release|Win32.Deploy.0 = Release|Win32
|
||||
{DCD73B97-0F44-4044-8BA4-95B59CCAB4BD}.Win8 Release|x64.ActiveCfg = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -1,32 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
#
|
||||
# This probably won't be useful to anyone outside ZeroTier itself.
|
||||
#
|
||||
|
||||
#
|
||||
# This bumps the revision in version.h, which triggers a build and deploy
|
||||
# to the now/ subfolder on update.zerotier.com. This allows nodes tracking
|
||||
# the bleeding edge to track the bleedingest of the bleeding edge.
|
||||
#
|
||||
|
||||
cur_rev=`grep -F ZEROTIER_ONE_VERSION_REVISION version.h | cut -d ' ' -f 3`
|
||||
next_rev=`expr $cur_rev + 1`
|
||||
|
||||
echo Current revision: $cur_rev
|
||||
echo Next revision: $next_rev
|
||||
|
||||
rm -f version.h.new
|
||||
cat version.h | sed "s/ZEROTIER_ONE_VERSION_REVISION $cur_rev/ZEROTIER_ONE_VERSION_REVISION $next_rev/g" >>version.h.new
|
||||
|
||||
new_cur_rev=`grep -F ZEROTIER_ONE_VERSION_REVISION version.h.new | cut -d ' ' -f 3`
|
||||
|
||||
if [ "$new_cur_rev" = "$next_rev" ]; then
|
||||
mv -f version.h.new version.h
|
||||
echo Done.
|
||||
else
|
||||
echo Error: version.h.new updated incorrectly, leaving in place.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
exit 0
|
||||
@@ -0,0 +1,143 @@
|
||||
/*
|
||||
* ZeroTier One - Global Peer to Peer Ethernet
|
||||
* Copyright (C) 2012-2013 ZeroTier Networks LLC
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* --
|
||||
*
|
||||
* ZeroTier may be used and distributed under the terms of the GPLv3, which
|
||||
* are available at: http://www.gnu.org/licenses/gpl-3.0.html
|
||||
*
|
||||
* If you would like to embed ZeroTier into a commercial application or
|
||||
* redistribute it in a modified binary form, please contact ZeroTier Networks
|
||||
* LLC. Start here: http://www.zerotier.com/
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifndef __WINDOWS__
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#include "node/Node.hpp"
|
||||
#include "node/Constants.hpp"
|
||||
#include "node/Utils.hpp"
|
||||
#include "node/Thread.hpp"
|
||||
#include "node/Condition.hpp"
|
||||
|
||||
using namespace ZeroTier;
|
||||
|
||||
static void printHelp(FILE *out,const char *exename)
|
||||
{
|
||||
fprintf(out,"Usage: %s [-switches] <command>"ZT_EOL_S,exename);
|
||||
fprintf(out,ZT_EOL_S);
|
||||
fprintf(out,"Switches:"ZT_EOL_S);
|
||||
fprintf(out," -t<token> - Specify token on command line"ZT_EOL_S);
|
||||
fprintf(out," -T<file> - Read token from file"ZT_EOL_S);
|
||||
fprintf(out,ZT_EOL_S);
|
||||
fprintf(out,"Use the 'help' command to get help from ZeroTier One itself."ZT_EOL_S);
|
||||
}
|
||||
|
||||
static volatile unsigned int numResults = 0;
|
||||
static Condition doneCondition;
|
||||
|
||||
static void resultHandler(void *arg,unsigned long id,const char *line)
|
||||
{
|
||||
++numResults;
|
||||
if (strlen(line))
|
||||
fprintf(stdout,"%s"ZT_EOL_S,line);
|
||||
else doneCondition.signal();
|
||||
}
|
||||
|
||||
int main(int argc,char **argv)
|
||||
{
|
||||
if (argc <= 1) {
|
||||
printHelp(stdout,argv[0]);
|
||||
return -1;
|
||||
}
|
||||
|
||||
std::string authToken;
|
||||
std::string command;
|
||||
bool pastSwitches = false;
|
||||
for(int i=1;i<argc;++i) {
|
||||
if ((argv[i][0] == '-')&&(!pastSwitches)) {
|
||||
if (strlen(argv[i]) <= 1) {
|
||||
printHelp(stdout,argv[0]);
|
||||
return -1;
|
||||
}
|
||||
switch(argv[i][1]) {
|
||||
case 't':
|
||||
authToken.assign(argv[i] + 2);
|
||||
break;
|
||||
case 'T':
|
||||
if (!Utils::readFile(argv[i] + 2,authToken)) {
|
||||
fprintf(stdout,"FATAL ERROR: unable to read token from '%s'"ZT_EOL_S,argv[i] + 2);
|
||||
return -2;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
} else {
|
||||
pastSwitches = true;
|
||||
if (command.length())
|
||||
command.push_back(' ');
|
||||
command.append(argv[i]);
|
||||
}
|
||||
}
|
||||
|
||||
if (!authToken.length()) {
|
||||
const char *home = getenv("HOME");
|
||||
if (home) {
|
||||
std::string dotZeroTierAuthToken(home);
|
||||
dotZeroTierAuthToken.push_back(ZT_PATH_SEPARATOR);
|
||||
dotZeroTierAuthToken.append(".zerotierOneAuthToken");
|
||||
if (!Utils::readFile(dotZeroTierAuthToken.c_str(),authToken)) {
|
||||
#ifndef __WINDOWS__
|
||||
#ifdef __APPLE__
|
||||
const char *systemAuthTokenPath = "/Library/Application Support/ZeroTier/One/authtoken.secret";
|
||||
#else
|
||||
const char *systemAuthTokenPath = "/var/lib/zerotier-one/authtoken.secret";
|
||||
#endif
|
||||
if (!Utils::readFile(systemAuthTokenPath,authToken)) {
|
||||
fprintf(stdout,"FATAL ERROR: no token specified on command line and could not read '%s' or '%s'"ZT_EOL_S,dotZeroTierAuthToken.c_str(),systemAuthTokenPath);
|
||||
return -2;
|
||||
}
|
||||
#else // __WINDOWS__
|
||||
fprintf(stdout,"FATAL ERROR: no token specified on command line and could not read '%s'"ZT_EOL_S,dotZeroTierAuthToken.c_str());
|
||||
return -2;
|
||||
#endif // __WINDOWS__
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!authToken.length()) {
|
||||
fprintf(stdout,"FATAL ERROR: could not find auth token"ZT_EOL_S);
|
||||
return -2;
|
||||
}
|
||||
|
||||
Node::LocalClient client(authToken.c_str(),&resultHandler,(void *)0);
|
||||
client.send(command.c_str());
|
||||
|
||||
doneCondition.wait(1000);
|
||||
|
||||
if (!numResults) {
|
||||
fprintf(stdout,"ERROR: no results received. Is ZeroTier One running?"ZT_EOL_S);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
This is the Microsoft "devcon" utility, which as far as I know is
|
||||
fair game to redistribute. It's packaged with OpenVPN and several
|
||||
other things and also distributed in source code form as an example
|
||||
program by Microsoft.
|
||||
|
||||
It's used to automatically install the Microsoft Loopback Adapter
|
||||
or remove it when no longer needed.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Symlink
+1
@@ -0,0 +1 @@
|
||||
linux-armv4/
|
||||
@@ -0,0 +1,4 @@
|
||||
make clean
|
||||
./Configure no-sock no-ssl2 no-ssl3 no-err no-krb5 no-engine no-hw no-tlsext no-jpake no-capieng no-idea no-camellia no-seed no-bf no-cast no-des no-rc2 no-rc4 no-rc5 no-md2 no-md4 no-ripemd no-mdc2 no-rsa no-dsa no-dh no-shared no-zlib no-dso no-cms no-ocsp no-txt_db no-pem no-mdc2 no-ui no-ts linux-armv4
|
||||
make depend
|
||||
make build_crypto
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loaded 20 of 129 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user