David Jimenez
d7c4a89106
Add max upstream connections dns-proxy option ( #290 )
...
* Add max upstream connections dns-proxy option
Allows defining a limit to the number of connections that can be
established with the upstream DNS host.
If left unset, there may be situations where connections fail to
establish, which causes the Transport to create an influx of connections
causing upstream to throttle our requests and triggering a runaway
effect resulting in high CPU usage. See https://github.com/cloudflare/cloudflared/issues/91
* Code review with proposed changes
* Add max upstream connections flag to tunnel flags
* Reduce DNS proxy max upstream connections default value
Reduce the default value of maximum upstream connections on the DNS
proxy to guarantee it works on single-core and other low-end hardware.
Further testing could allow for a safe increase of this value.
* Update dns-proxy flag name
Also remove `MaxUpstreamConnsFlag` const as it's no longer referenced in more than one place and to make things more consistent with how the other flags are referenced.
Co-authored-by: Adam Chalmers <achalmers@cloudflare.com>
2021-02-12 21:32:29 +04:00
Adam Chalmers
7f97e2f030
TUN-3913: Help gives wrong exit code for autoupdate
2021-02-11 08:39:56 -06:00
Adam Chalmers
a278753bbf
TUN-3902: Add jitter to backoffhandler
...
Jitter is important to avoid every cloudflared in the world trying to
reconnect at t=1, 2, 4, etc. That could overwhelm the backend. But
if each cloudflared randomly waits for up to 2, then up to 4, then up
to 8 etc, then the retries get spread out evenly across time.
On average, wait times should be the same (e.g. instead of waiting for
exactly 1 second, cloudflared will wait betweeen 0 and 2 seconds).
This is the "Full Jitter" algorithm from https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/
2021-02-11 14:36:13 +00:00
Akemi Davisson
67680f5536
AUTH-3375 exchangeOrgToken deleted cookie fix
2021-02-10 16:09:50 +00:00
Security Generation
a4f185fd28
Update error message to use login command
...
Unless I'm mistaken, when there is no existing token for an app, the `login` command needs to be run to obtain a token (not the `token` command, which itself doesn't generate a token).
2021-02-09 17:15:13 +00:00
Igor Postelnik
cf562ef8c8
TUN-3635: Send event when unregistering tunnel for gracful shutdown so /ready endpoint reports down status befoe connections finish handling pending requests.
2021-02-08 15:38:42 +00:00
Adam Chalmers
dbd90f270e
TUN-3864: Users can choose where credentials file is written after creating a tunnel
2021-02-05 11:20:51 -06:00
Adam Chalmers
dca77ee13e
TUN-3854: cloudflared tunnel list flags to sort output
2021-02-03 23:47:49 +00:00
Adam Chalmers
0d22106416
TUN-3848: Use transport logger for h2mux
2021-02-03 17:31:16 -06:00
Areg Harutyunyan
88b53eb886
TUN-3826: Use go-fips when building cloudflared for linux/amd64
2021-02-02 18:12:14 +00:00
Igor Postelnik
6cdd20e820
TUN-3792: Handle graceful shutdown correctly when running as a windows service. Only expose one shutdown channel globally, which now triggers the graceful shutdown sequence across all modes. Removed separate handling of zero-duration grace period, instead it's checked only when we need to wait for exit.
2021-01-27 07:21:34 -06:00
Areg Harutyunyan
c4fbb05c1b
TUN-3165: Add reference to Argo Tunnel documentation in the help output
2021-01-25 16:17:00 +00:00
Igor Postelnik
d503aeaf77
TUN-3118: Changed graceful shutdown to immediately unregister tunnel from the edge, keep the connection open until the edge drops it or grace period expires
2021-01-22 11:14:36 -06:00
Nuno Diegues
2d0b86f2e4
TUN-3777: Fix /ready endpoint for classic tunnels
...
Classic tunnels flow was triggering an event for RegisteringTunnel for
every connection that was about to be established, and then a Connected
event for every connection established.
However, the RegistreringTunnel event had no connection ID, always
causing it to unset/disconnect the 0th connection making the /ready
endpoint report incorrect numbers for classic tunnels.
2021-01-19 13:02:44 +00:00
Igor Postelnik
4a76ed12e7
TUN-3766: Print flags defined at all levels of command hierarchy, not just locally defined flags for a command. This fixes output of overriden settings for subcommand.
2021-01-18 11:16:42 +00:00
Igor Postelnik
04b1e4f859
TUN-3738: Refactor observer to avoid potential of blocking on tunnel notifications
2021-01-18 11:16:23 +00:00
Nuno Diegues
7c3ceeeaef
TUN-3757: Fix legacy Uint flags that are incorrectly handled by ufarve library
...
The following UInt flags:
* Uint64 - heartbeat-count, compression-quality
* Uint - retries, port, proxy-port
were not being correctly picked from the configuration YAML
since the multi origin refactor
This is due to a limitation of the ufarve library, which we
overcome for now with handling those as Int flags.
2021-01-14 13:08:55 +00:00
Nuno Diegues
01f0d67875
TUN-3744: Fix compilation error in windows service
2021-01-13 16:20:41 +00:00
Nuno Diegues
9ed536c990
TUN-3738: Consume UI events even when UI is disabled
...
Not doing so was causing cloudflared to become stuck after
some time. This would happen because the Observer pattern
was sending events to the UI channel (that has 16 slots) but
no one was consuming those when the UI is not enabled (which
is the default case).
Hence, events (such as connection disconnect / reconnect) would
cause that buffer to be full and cause cloudflared to become
apparently stuck, in the sense that the connections would not be
reconnected.
2021-01-13 13:10:30 +00:00
Adam Chalmers
94ca4f98dd
Review from Igor
2021-01-11 19:36:31 +00:00
Adam Chalmers
b601b24f52
Adam's suggestions
2021-01-11 19:36:31 +00:00
TownLake
b40d8557cf
TUN-3691: Edit Teamnet help text
2021-01-11 19:36:31 +00:00
Adam Chalmers
78ffb1b846
TUN-3688: Subcommand for users to check which route an IP proxies through
2021-01-07 15:31:26 +00:00
Areg Harutyunyan
55bf904689
TUN-3471: Add structured log context to logs
2021-01-05 20:21:16 +00:00
Adam Chalmers
b855e33327
TUN-3706: Quit if any origin service fails to start
2020-12-30 13:48:19 -06:00
Adam Chalmers
32336859f8
TUN-3689: Delete routes via cloudflared CLI
2020-12-29 13:53:48 -06:00
Adam Chalmers
94c639d225
TUN-3669: Teamnet commands to add/show Teamnet routes.
2020-12-29 17:39:08 +00:00
Areg Harutyunyan
2ea491b1d0
TUN-3607: Set up single-file logger with zerolog
2020-12-23 14:15:39 -06:00
Areg Harutyunyan
870f5fa907
TUN-3470: Replace in-house logger calls with zerolog
2020-12-23 14:15:17 -06:00
Sudarsan Reddy
1c0dac77d7
TUN-3599: improved delete if credentials isnt found.
...
Tunnel delete is successful even if we don't find the credentials
file in the user's filesystem. We no longer "error" indicating this
is a problem. This fix also enables chaining of the delete command
by removing a pre-mature return if the credentials file is not found.
2020-12-04 11:44:13 +00:00
Adam Chalmers
38fb0b28b6
TUN-3593: /ready endpoint for k8s readiness. Move tunnel events out of UI package, into connection package.
2020-12-02 15:22:59 -06:00
Adam Chalmers
69fd502db3
TUN-3581: Tunnels can be run by name using only --credentials-file, no
...
origin cert necessary.
2020-11-25 09:54:28 -06:00
Michael Borkenstein
fcc393e2f0
AUTH-3221: Saves org token to disk and uses it to refresh the app token
2020-11-24 21:38:59 +00:00
Areg Harutyunyan
cad58b9b57
TUN-3561: Unified logger configuration
2020-11-23 16:49:07 +00:00
Adam Chalmers
a08a7030d1
TUN-3578: cloudflared tunnel route dns should allow wildcard subdomains
2020-11-23 09:37:46 -06:00
Adam Chalmers
b7e91466f5
TUN-3558: cloudflared allows empty config files
2020-11-18 21:13:06 +00:00
Adam Chalmers
029f7e0378
TUN-3555: Single origin service should default to localhost:8080
2020-11-17 23:12:32 +00:00
cthuang
c40cb7dc56
TUN-3514: Stop setting --is-autoupdated flag after autoupdate because it can break named tunnel running in k8s
2020-11-16 09:40:38 +00:00
Adam Chalmers
1475cf61ee
TUN-3534: Specific error message when credentials file is a .pem not .json
2020-11-12 16:38:24 +00:00
cthuang
ebc003d478
TUN-3514: Transport logger write to UI when UI is enabled
2020-11-11 15:21:00 +00:00
cthuang
5974fb4cfd
TUN-3500: Integrate replace h2mux by http2 work with multiple origin support
2020-11-11 15:20:57 +00:00
cthuang
a490443630
TUN-3458: Upgrade to http2 when available, fallback to h2mux when we reach max retries
2020-11-11 15:11:42 +00:00
cthuang
b5cdf3b2c7
TUN-3456: New protocol option auto to automatically select between http2 and h2mux
2020-11-11 15:11:42 +00:00
cthuang
9ac40dcf04
TUN-3462: Refactor cloudflared to separate origin from connection
2020-11-11 15:11:42 +00:00
cthuang
8d7b2575ba
TUN-3400: Use Go HTTP2 library as transport to connect with the edge
2020-11-11 15:11:42 +00:00
cthuang
d7498b0c03
TUN-3449: Use flag to select transport protocol implementation
2020-11-11 15:11:42 +00:00
Adam Chalmers
196762d9d3
TUN-3527: More specific error for invalid YAML/JSON
2020-11-10 21:42:26 +00:00
Adam Chalmers
4698ec8dee
TUN-3461: Show all origin services in the UI
2020-11-10 14:25:37 +00:00
Igor Postelnik
8c6181db9f
TUN-3524: Don't ignore errors from app-level action handler ( #248 )
2020-11-10 13:06:49 +00:00
Adam Chalmers
64d3836645
TUN-3522: ingress validate checks that the config file exists
2020-11-09 12:31:50 -06:00
Adam Chalmers
87e2679744
TUN-3516: Better error message when parsing invalid YAML config
2020-11-09 10:35:28 -06:00
Adam Chalmers
d01770107e
TUN-3492: Refactor OriginService, shrink its interface
2020-11-04 21:28:33 +00:00
Adam Chalmers
e933ef9e1a
TUN-2640: Users can configure per-origin config. Unify single-rule CLI
...
flow with multi-rule config file code.
2020-10-30 07:42:20 -05:00
cthuang
ea71b78e6d
TUN-3478: Increase download timeout to 60s
2020-10-22 10:38:18 +01:00
Igor Postelnik
b6cd54d854
TUN-3459: Make service install on linux use named tunnels
2020-10-21 10:46:29 -05:00
cthuang
f0cfad8efa
TUN-3476: Fix conversion to string and int slice
2020-10-21 16:03:25 +01:00
Igor Postelnik
ed54d150fe
Move raw ingress rules to config package
2020-10-20 12:00:34 -05:00
Igor Postelnik
ca4887fb19
Split out typed config from legacy command-line switches; refactor ingress commands and fix tests
2020-10-20 10:10:19 -05:00
Igor Postelnik
eaf03305bd
TUN-3475: Unify config file handling with typed config for new fields
2020-10-20 08:55:30 -05:00
Igor Postelnik
051908aaef
TUN-3463: Let users run a named tunnel via config file setting
2020-10-19 12:27:18 +00:00
Adam Chalmers
c96b9e8d8f
TUN-3464: Newtype to wrap []ingress.Rule
2020-10-15 12:48:14 -05:00
Adam Chalmers
4a4a1bb6b1
TUN-3441: Multiple-origin routing via ingress rules
2020-10-13 08:55:17 -05:00
Adam Chalmers
0eebc7cef9
TUN-3438: move ingress into own package, read into TunnelConfig
2020-10-12 16:33:22 +00:00
Igor Postelnik
53a1fa46a8
TUN-3452: Fix loading of flags from config file for tunnel run subcommand. This change also cleans up building of tunnel subcommand list, hides deprecated subcommands and improves help.
2020-10-09 12:07:17 -05:00
Adam Chalmers
86a7af3dc4
TUN-3451: Cloudflared tunnel ingress command
2020-10-08 22:06:40 +00:00
Adam Chalmers
407c9550d7
TUN-3440: 'tunnel rule' command to test ingress rules
2020-10-08 22:06:40 +00:00
Adam Chalmers
2319003e10
TUN-3439: 'tunnel validate' command to check ingress rules
2020-10-08 22:06:40 +00:00
Adam Chalmers
b05d826d22
TUN-3436, TUN-3437: Parse ingress from YAML, ensure last rule catches everything
2020-10-07 16:36:28 +00:00
Dalton
be7b7c7149
AUTH-2993 cleaned up worker service tests
2020-10-02 13:01:05 -05:00
cthuang
03d7320a44
TUN-3430: Copy flags to configure proxy to run subcommand, print relevant tunnel flags in help
2020-10-01 21:44:27 +00:00
Dalton
ba4c8d8849
AUTH-2993 added workers updater logic
2020-10-01 14:41:58 -05:00
Lee Valentine
8e8513e325
TRAFFIC-448: allow the user to specify the proxy address and port to bind to, falling back to 127.0.0.1 and random port if not specified
2020-09-25 09:54:40 -05:00
Bojan Zelic
fa061ab54e
updater service exit code should be 11
2020-09-22 18:26:56 +04:00
cthuang
197d65659a
TUN-3291: cloudflared tunnel run -h explains how to use flags from parent command
2020-09-21 19:07:30 +00:00
Igor Postelnik
85d0afd3b0
TUN-3295: Show route command results
2020-09-21 16:32:08 +00:00
Areg Harutyunyan
747427f816
TUN-3216: UI improvements
2020-09-17 13:22:08 +04:00
Rachel Williams
f99b6c6421
TUN-3335: Dynamically set connection table size for UI
2020-09-17 11:52:10 +04:00
Rachel Williams
250bc54110
TUN-3333: Add text to UI explaining how to exit
2020-09-17 11:52:10 +04:00
Rachel Williams
02587c1edc
TUN-3321: Add box around logs on UI
2020-09-17 11:52:10 +04:00
Rachel Williams
26fc20d406
TUN-3198: Handle errors while running tunnel UI
2020-09-17 11:52:10 +04:00
Rachel Williams
fee13dc62f
TUN-3255: Update UI to display URL instead of hostname
2020-09-17 11:52:10 +04:00
Rachel Williams
094e0c7592
TUN-3238: Update UI when connection re-connects
2020-09-17 11:52:10 +04:00
Rachel Williams
b57a953caa
TUN-3200: Add connection information to UI
2020-09-17 11:52:10 +04:00
Rachel Williams
d8ebde37ca
TUN-3201: Create base cloudflared UI structure
2020-09-17 11:52:07 +04:00
Igor Postelnik
cb6d424765
TUN-3395: Improve help for list command
2020-09-16 16:48:43 +00:00
Igor Postelnik
5753aa9f18
TUN-3294: Perform basic validation on arguments of route command; remove default pool name which wasn't valid
2020-09-16 16:48:43 +00:00
Igor Postelnik
bfae12008d
TUN-3395: Improve help for list command
2020-09-16 08:30:24 -05:00
Igor Postelnik
c52e0dc8ef
TUN-3395: Unhide named tunnel subcommands, tweak help
2020-09-15 12:41:15 +00:00
Adam Chalmers
3be2545ad4
TUN-3292: Mention cleanup in tunnel run help.
2020-09-10 11:02:31 -05:00
cthuang
22d771b51d
TUN-3284: Use cloudflared/<version> as user agent of tunnelstore client
2020-09-09 10:34:26 +01:00
cthuang
5fb938d6d6
TUN-3345: tunnel run accepts name of tunnel as argument
2020-09-05 09:32:50 +00:00
Adam Chalmers
218ee30206
TUN-3377: Tunnel route should check dns/lb before checking tunnel ID
2020-09-04 18:44:06 +00:00
Adam Chalmers
1a96889141
TUN-3286: Use either ID or name in Named Tunnel subcommands.
2020-08-19 14:39:45 +00:00
Dalton Cherry
60de05bfc1
AUTH-2712 added MSI build for a windows agent
2020-08-17 14:44:28 -05:00
cthuang
3deef6197f
TUN-3213: Create, route and run named tunnels in one command
2020-08-17 19:38:38 +00:00
Dalton
5499c77e62
AUTH-2975 don't check /etc on windows
2020-08-17 12:40:36 -05:00
cthuang
292a7f07a2
TUN-3243: Refactor tunnel subcommands to allow commands to compose better
2020-08-11 10:02:52 +01:00
Adam Chalmers
1b61d699c4
TUN-3237: By default, don't show connections that are pending reconnect
2020-08-07 10:16:13 -05:00
cthuang
a7562dff68
TUN-3233: List tunnels support filtering by deleted, name, existed at and id
2020-08-07 10:09:26 +01:00
cthuang
1cbc8fb8ac
TUN-3220: tunnel route reports created route
2020-07-31 17:48:58 +01:00
Igor Postelnik
d61e3fb130
TUN-3190: Initialize logger using command line flags in tunnels subcommands
2020-07-21 17:25:48 +00:00
Dalton
ca7d6797e1
AUTH-2902 redirect with just the root host on curl commands
2020-07-21 11:08:31 -05:00
cthuang
8836ee1dda
TUN-3156: Add route subcommand under tunnel
2020-07-17 05:51:24 +08:00
Michael Borkenstein
7afde79600
AUTH-2890: adds error handler to cli actions
2020-07-15 14:33:36 +00:00
Rachel Williams
3d782f7162
TUN-3048: Handle error when user tries to delete active tunnel
2020-07-14 15:32:46 +00:00
Michael Borkenstein
28d556b8d4
AUTH-2858: Set file to disable autoupdate
2020-07-10 18:03:07 +00:00
Rachel Williams
f7ff41f1dc
TUN-3150: cloudflared tunnel list's table should use intelligent column width
2020-07-07 15:48:56 +00:00
cthuang
f5c8ff77e9
TUN-3008: Implement cloudflared tunnel cleanup command
2020-07-07 21:56:46 +08:00
cthuang
87e06100df
TUN-3131: Allow user to specify tunnel credentials path, and remove it in tunnel delete command
2020-07-07 14:22:08 +08:00
Dalton
92765b4261
AUTH-2850 log config file path
2020-07-06 16:32:57 +00:00
Igor Postelnik
2a3d486126
TUN-3007: Implement named tunnel connection registration and unregistration.
...
Removed flag for using quick reconnect, this logic is now always enabled.
2020-07-01 04:19:30 +00:00
Dalton
0c65daaa7d
AUTH-2712 mac package build script and better config file handling when started as a service
2020-06-25 16:44:57 -05:00
Adam Chalmers
4d3ebaf984
TUN-3106: Pass NamedTunnel config to StartServer
2020-06-17 23:20:37 +00:00
Dalton
4f9cfa6542
TUN-3100 make updater report the right text
2020-06-17 17:33:19 +00:00
Adam Chalmers
a1a8645294
TUN-3066: Command line action for tunnel run
2020-06-17 17:25:23 +00:00
Adam Chalmers
b95b289a8c
TUN-3101: Tunnel list command should only show non-deleted, by default
2020-06-16 17:55:33 -05:00
Dalton
425554077f
AUTH-2815 flag check was wrong. stupid oversight
2020-06-16 16:19:38 -05:00
Dalton
6e5ccd7c85
AUTH-2815 add the log file to support the config.yaml file
...
added small delay to handle the possiblity of the server not being started yet
2020-06-16 17:48:12 +00:00
Adam Chalmers
3ec500bdbb
TUN-3084: Generate and store tunnel_secret value during tunnel creation
2020-06-16 11:45:27 -05:00
Dalton
1a6403b2fd
AUTH-2694 added destination header support to config file
2020-06-15 10:10:22 -05:00
Dalton
55acf7283c
AUTH-2810 added warn for backwards compatibility sake
2020-06-12 22:15:28 +00:00
Adam Chalmers
acb7d604fd
TUN-3038: Add connections to tunnel list table
2020-06-12 11:43:06 -05:00
Dalton
ae8d784e36
AUTH-2763 don't redirect from curl command
2020-06-11 15:38:11 -05:00
Dalton
c716dd273c
AUTH-2648 updated usage text
2020-06-11 11:08:05 -05:00
Dalton
0d87279b2f
AUTH-2785 service token flag fix and logger fix
2020-06-09 11:00:56 -05:00
Dalton
f8638839c0
AUTH-2729 added log file and level to cmd flags to match config file settings
2020-06-08 19:42:34 +00:00
Dalton
2f70b05c64
AUTH-2169 make access login page more generic
2020-06-08 11:20:30 -05:00
Dalton
9e76e42e3c
AUTH-2687 don't copy config unnecessarily
2020-06-08 15:24:36 +00:00
Dalton
e376a13025
AUTH-2645 protect against user mistaken flag input
2020-06-05 15:10:09 -05:00
cthuang
fb82b2ced5
TUN-3019: Remove declarative tunnel entry code
2020-05-30 05:54:17 +08:00
Michael Fornaro
be0514c5c9
Adding support for multi-architecture images and binaries ( #184 )
...
* Allow Dockerfile --build-args to override GOOS and GOARCH defaults
Allow Dockerfile --build-args to override GOOS and GOARCH defaults
Support building multi architecture binaries
remove default OS and ARCH to avoid tag confusion when compiling image through Makefile
Tag image with corrosponding OS and ARCH build variables
updating Makefile
Signed-off-by: Michael Fornaro <20387402+xUnholy@users.noreply.github.com>
* remove duplicate import on windows_service.go
Signed-off-by: Michael Fornaro <20387402+xUnholy@users.noreply.github.com>
2020-05-29 02:06:27 +01:00
Dalton
046be63253
AUTH-2596 added new logger package and replaced logrus
2020-05-27 17:07:19 -05:00
Igor Postelnik
a908453aa4
TUN-2928, TUN-2929, TUN-2930: Add tunnel subcommands to interact with tunnel store service
2020-05-21 15:36:49 -05:00
Michael Borkenstein
b89cc22896
AUTH-2369: RDP Bastion prototype
2020-05-19 21:10:50 -05:00
Michael Borkenstein
6a7418e1af
AUTH-2686: Added error handling to tunnel subcommand
2020-05-18 15:36:25 -05:00
Dalton
df3ad2b223
AUTH-2529 added deprecation text to db-connect command
2020-05-14 10:26:09 -05:00
Dalton
8c870c19a6
AUTH-2505 added aliases
2020-05-13 15:15:08 -05:00
Dalton
2b7fbbb7b7
AUTH-2588 add DoH to service mode
2020-05-11 17:09:16 +00:00
Michael Borkenstein
2c878c47ed
AUTH-2564: error handling and minor fixes
2020-05-11 15:42:35 +00:00
Igor Postelnik
8cc69f2a95
TUN-2860: Enable quick reconnect feature by default
2020-05-07 14:41:55 -05:00
cthuang
c3fa4552aa
TUN-2872: Exit with non-0 status code when the binary is updated so launchd will restart the service
2020-05-06 05:53:14 +08:00
Igor Postelnik
dd0881f32b
TUN-2940: Added delay parameter to stdin reconnect command.
2020-05-01 15:58:19 +00:00
Dalton
41c358147c
AUTH-2587 add config watcher and reload logic for access client forwarder
2020-04-29 11:07:35 -05:00
Austin Cherry
f18209af7d
ARES-899: Fixes DoH client as system resolver. Fixes #91
2020-04-14 12:37:59 -05:00
Elvin Tan
6d63f84a75
AUTH-2235 GetTokenIfExists now parses JWT payload for json expiry field to detect if the cached access token is expired
2020-04-14 15:29:30 +00:00
Dalton
a37da2b165
AUTH-2394 added socks5 proxy
2020-04-07 13:30:28 -05:00
Areg Harutyunyan
ae374c0463
TUN-2846: Trigger debug reconnects from stdin commands, not SIGUSR1
2020-03-27 17:04:21 +00:00
Dalton
a368fbbe9b
AUTH-2394 fixed header for websockets. Added TCP alias
2020-03-23 10:27:53 -05:00
Adam Chalmers
6dcf3a4cbc
TUN-2819: cloudflared should close its connections when a signal is sent
2020-03-19 21:02:15 +00:00
Adam Chalmers
1b2a96f96b
TUN-2755: ReconnectTunnel RPC now transmits ConnectionDigest
2020-03-06 14:48:16 -06:00