help.go 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /*
  2. * Copyright (c)2013-2020 ZeroTier, Inc.
  3. *
  4. * Use of this software is governed by the Business Source License included
  5. * in the LICENSE.TXT file in the project's root directory.
  6. *
  7. * Change Date: 2024-01-01
  8. *
  9. * On the date above, in accordance with the Business Source License, use
  10. * of this software will be governed by version 2.0 of the Apache License.
  11. */
  12. /****/
  13. package cli
  14. import (
  15. "fmt"
  16. "zerotier/pkg/zerotier"
  17. )
  18. var copyrightText = fmt.Sprintf(`ZeroTier Network Virtualization Service Version %d.%d.%d
  19. (c)2013-2020 ZeroTier, Inc.
  20. Licensed under the ZeroTier BSL (see LICENSE.txt)`, zerotier.CoreVersionMajor, zerotier.CoreVersionMinor, zerotier.CoreVersionRevision)
  21. // Help dumps help to stdout
  22. func Help() {
  23. fmt.Println(copyrightText)
  24. fmt.Println(`
  25. Usage: zerotier [-options] <command> [command args]
  26. Global Options:
  27. -j Output raw JSON where applicable
  28. -p <path> Use alternate base path
  29. -t <path> Use secret auth token from this file
  30. Commands:
  31. help Show this help
  32. version Print version
  33. service Start as service
  34. status Show ZeroTier status and config
  35. peers Show VL1 peers and link information
  36. roots Show only root peers
  37. addroot <identity> [IP/port] Add root with optional bootstrap IP
  38. removeroot <address|identity> Remove root
  39. join <network ID> [fingerprint] Join a virtual network
  40. leave <network ID> Leave a virtual network
  41. networks List joined VL2 virtual networks
  42. network <network ID> Show verbose network info
  43. set <network ID> [option] [value] Get or set a network config option
  44. manageips <boolean> Is IP management allowed?
  45. manageroutes <boolean> Is route management allowed?
  46. globalips <boolean> Allow assignment of global IPs?
  47. globalroutes <boolean> Can global IP space routes be set?
  48. defaultroute <boolean> Can default route be overridden?
  49. set [option] [value] Get or set a service config option
  50. phy <IP/bits> blacklist <boolean> Set or clear blacklist for CIDR
  51. phy <IP/bits> trust <path ID/0> Set or clear trusted path ID for CIDR
  52. port <port> Set primary port for P2P links
  53. secondaryport <port/0> Set secondary P2P port (0 disables)
  54. portsearch <boolean> Enable/disable port search on startup
  55. portmapping <boolean> Enable/disable use of uPnP/NAT-PMP
  56. identity <command> [args] Identity management commands
  57. new [c25519|p384] Create identity pair (default: c25519)
  58. getpublic <identity> Extract only public part of identity
  59. validate <identity> Locally validate an identity
  60. sign <identity> <file> Sign a file with an identity's key
  61. verify <identity> <file> <sig> Verify a signature
  62. The 'service' command does not exit until the service receives a signal.
  63. This is typically run from launchd (Mac), systemd or init (Linux), etc.
  64. If 'set' is followed by a 16-digit hex number it will get/set network config
  65. options. Otherwise it will get/set service options. Run with no arguments to
  66. see all options.
  67. An identity can be specified as a file or directly. This is auto-detected.
  68. Most commands require a secret token to permit control of a running
  69. service. The CLI will automatically try to read this token from the
  70. authtoken.secret file in the service's working directory and then from a
  71. file called .zerotierauth in the user's home directory. The -t option can
  72. be used to explicitly specify a location.`)
  73. fmt.Println()
  74. }