mirror of
https://github.com/juanfont/headscale.git
synced 2026-01-11 20:00:28 +01:00
VPN Fails (no SSH/Ping) in windows 10 devices after restart or logging off #116
Closed
opened 2025-12-29 01:23:28 +01:00 by adam
·
4 comments
No Branch/Tag Specified
main
update_flake_lock_action
gh-pages
kradalby/release-v0.27.2
dependabot/go_modules/golang.org/x/crypto-0.45.0
dependabot/go_modules/github.com/opencontainers/runc-1.3.3
copilot/investigate-headscale-issue-2788
copilot/investigate-visibility-issue-2788
copilot/investigate-issue-2833
copilot/debug-issue-2846
copilot/fix-issue-2847
dependabot/go_modules/github.com/go-viper/mapstructure/v2-2.4.0
dependabot/go_modules/github.com/docker/docker-28.3.3incompatible
kradalby/cli-experiement3
doc/0.26.1
doc/0.25.1
doc/0.25.0
doc/0.24.3
doc/0.24.2
doc/0.24.1
doc/0.24.0
kradalby/build-docker-on-pr
topic/docu-versioning
topic/docker-kos
juanfont/fix-crash-node-id
juanfont/better-disclaimer
update-contributors
topic/prettier
revert-1893-add-test-stage-to-docs
add-test-stage-to-docs
remove-node-check-interval
fix-empty-prefix
fix-ephemeral-reusable
bug_report-debuginfo
autogroups
logs-to-stderr
revert-1414-topic/fix_unix_socket
rename-machine-node
port-embedded-derp-tests-v2
port-derp-tests
duplicate-word-linter
update-tailscale-1.36
warn-against-apache
ko-fi-link
more-acl-tests
fix-typo-standalone
parallel-nolint
tparallel-fix
rerouting
ssh-changelog-docs
oidc-cleanup
web-auth-flow-tests
kradalby-gh-runner
fix-proto-lint
remove-funding-links
go-1.19
enable-1.30-in-tests
0.16.x
cosmetic-changes-integration
tmp-fix-integration-docker
fix-integration-docker
configurable-update-interval
show-nodes-online
hs2021
acl-syntax-fixes
ts2021-implementation
fix-spurious-updates
unstable-integration-tests
mandatory-stun
embedded-derp
prtemplate-fix
v0.28.0-beta.1
v0.27.2-rc.1
v0.27.1
v0.27.0
v0.27.0-beta.2
v0.27.0-beta.1
v0.26.1
v0.26.0
v0.26.0-beta.2
v0.26.0-beta.1
v0.25.1
v0.25.0
v0.25.0-beta.2
v0.24.3
v0.25.0-beta.1
v0.24.2
v0.24.1
v0.24.0
v0.24.0-beta.2
v0.24.0-beta.1
v0.23.0
v0.23.0-rc.1
v0.23.0-beta.5
v0.23.0-beta.4
v0.23.0-beta3
v0.23.0-beta2
v0.23.0-beta1
v0.23.0-alpha12
v0.23.0-alpha11
v0.23.0-alpha10
v0.23.0-alpha9
v0.23.0-alpha8
v0.23.0-alpha7
v0.23.0-alpha6
v0.23.0-alpha5
v0.23.0-alpha4
v0.23.0-alpha4-docker-ko-test9
v0.23.0-alpha4-docker-ko-test8
v0.23.0-alpha4-docker-ko-test7
v0.23.0-alpha4-docker-ko-test6
v0.23.0-alpha4-docker-ko-test5
v0.23.0-alpha-docker-release-test-debug2
v0.23.0-alpha-docker-release-test-debug
v0.23.0-alpha4-docker-ko-test4
v0.23.0-alpha4-docker-ko-test3
v0.23.0-alpha4-docker-ko-test2
v0.23.0-alpha4-docker-ko-test
v0.23.0-alpha3
v0.23.0-alpha2
v0.23.0-alpha1
v0.22.3
v0.22.2
v0.23.0-alpha-docker-release-test
v0.22.1
v0.22.0
v0.22.0-alpha3
v0.22.0-alpha2
v0.22.0-alpha1
v0.22.0-nfpmtest
v0.21.0
v0.20.0
v0.19.0
v0.19.0-beta2
v0.19.0-beta1
v0.18.0
v0.18.0-beta4
v0.18.0-beta3
v0.18.0-beta2
v0.18.0-beta1
v0.17.1
v0.17.0
v0.17.0-beta5
v0.17.0-beta4
v0.17.0-beta3
v0.17.0-beta2
v0.17.0-beta1
v0.17.0-alpha4
v0.17.0-alpha3
v0.17.0-alpha2
v0.17.0-alpha1
v0.16.4
v0.16.3
v0.16.2
v0.16.1
v0.16.0
v0.16.0-beta7
v0.16.0-beta6
v0.16.0-beta5
v0.16.0-beta4
v0.16.0-beta3
v0.16.0-beta2
v0.16.0-beta1
v0.15.0
v0.15.0-beta6
v0.15.0-beta5
v0.15.0-beta4
v0.15.0-beta3
v0.15.0-beta2
v0.15.0-beta1
v0.14.0
v0.14.0-beta2
v0.14.0-beta1
v0.13.0
v0.13.0-beta3
v0.13.0-beta2
v0.13.0-beta1
upstream/v0.12.4
v0.12.4
v0.12.3
v0.12.2
v0.12.2-beta1
v0.12.1
v0.12.0-beta2
v0.12.0-beta1
v0.11.0
v0.10.8
v0.10.7
v0.10.6
v0.10.5
v0.10.4
v0.10.3
v0.10.2
v0.10.1
v0.10.0
v0.9.3
v0.9.2
v0.9.1
v0.9.0
v0.8.1
v0.8.0
v0.7.1
v0.7.0
v0.6.1
v0.6.0
v0.5.2
v0.5.1
v0.5.0
v0.4.0
v0.3.6
v0.3.5
v0.3.4
v0.3.3
v0.3.2
v0.3.1
v0.3.0
v0.2.2
v0.2.1
v0.2.0
v0.1.1
v0.1.0
Labels
Clear labels
CLI
DERP
DNS
Nix
OIDC
SSH
bug
database
documentation
duplicate
enhancement
faq
good first issue
grants
help wanted
might-come
needs design doc
needs investigation
no-stale-bot
out of scope
performance
policy 📝
pull-request
question
regression
routes
stale
tags
tailscale-feature-gap
well described ❤️
wontfix
Mirrored from GitHub Pull Request
No Label
bug
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/headscale#116
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Ranakau62 on GitHub (Feb 3, 2022).
Description -
Hi, I started using headscale for a small personal project and i ran into an issue with regard to implementing it in windows devices. I am new to this and cant quite figure out where the issue lies, whether its in the tailscale client or the server.
When ever a windows machine is shutdown, restarted, user is logged off and relogged in and if logged off from the tailscale client itself, The data transfer through the VPN stops. Tailscale ping works across all devices. But normal ping as well as ssh fail. I was able ping/ssh before performing the above actions.
To Reproduce -
Context info -
Things i've tried
Server config file content -
{
"server_url": "http://33.225.165.15:8080",
"listen_addr": "0.0.0.0:8080",
"private_key_path": "private.key",
"derp": {
"urls": [
"https://controlplane.tailscale.com/derpmap/default"
],
"paths": [
"derp.yaml"
],
"auto_update_enabled": true,
"update_frequency": "24h"
},
"disable_check_updates": false,
"ephemeral_node_inactivity_timeout": "30m",
"db_type": "postgres",
"db_host": "localhost",
"db_port": 5432,
"db_name": "headscale",
"db_user": "foo",
"db_pass": "bar",
"acme_url": "https://acme-v02.api.letsencrypt.org/directory",
"acme_email": "",
"tls_letsencrypt_hostname": "",
"tls_letsencrypt_listen": ":http",
"tls_letsencrypt_cache_dir": ".cache",
"tls_letsencrypt_challenge_type": "HTTP-01",
"tls_cert_path": "",
"tls_key_path": "",
"acl_policy_path": "",
"dns_config": {
"nameservers": [
"1.1.1.1"
],
"domains": [],
"magic_dns": true,
"base_domain": "example.com"
},
"unix_socket": "/var/run/headscale.sock"
}
The only workaround found is killing the tailscale process, deleting the node from the server and re-adding the device to the VPN.
@kradalby commented on GitHub (Feb 3, 2022):
See this comment: https://github.com/juanfont/headscale/issues/269#issuecomment-1010758673
@rjmalagon commented on GitHub (Feb 5, 2022):
For the Windows clients, the use of a Headscale server exposes the subtle and complex credential management that the Tailscale client do in the user context.
The tailscaled daemon store the main auth and config on c:\programdata\tailscale, but the login credentials are stored on %localappdata%\tailscale where the current user has the tailscale-ipn gui app loaded.
Without the unattended flag, the user tailscale-ipn app manages and resets this login process when loaded, with the unattended flag (or the unattended checkbox within tailascale-ipn app) the client store the login credentials on the user %localappdata%\tailscale and a special config on c:\programdata\tailscale that points to this user folder for the login data when the tailscaled service is started even without the user tailscale-ipn app loaded.
The catch with Headscale. The user tailscale-ipn app resets the login server config on %localappdata%\tailscale folder when loaded, and make a mess with Headscale connection keys process. But if you try to store the config via tailscale cli commnad without the user tailscale-ipn app (and prevent tailscale-ipn app to load), it fails to properly store the login server config too.
(TLDR is here)
The registry config is news for me, and my actual workaround is login on the Headscale server via cli with the user tailscale-ipn app loaded, then check the unattended box on the gui app, close the gui app, and prevent the same user app from loading, usually removing the C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\tailscale.lnk file.
Tip, if tailscale-ipn made a mess with the config, a shortcut is to clean the config: close the user Tailscale gui app, stop the Tailscale service, remove %localappdata%\tailscale and c:\programdata\tailscale, start the Tailscale service, open the Tailsacle gui app.
Opinion here.
The elegant simplicity on the *nix Tailscale client is a hard contrast to, somewhat overengineered, ACL and user credential management of the Windows (and OS X) Tailscale client. A big part of the complexity that Wireguard lacks, and someone needs (and Loves?).
@rjmalagon commented on GitHub (Feb 19, 2022):
As a followup, this bug can be closed for now.
The docs have the right answers for the correct Windows client setup
https://github.com/juanfont/headscale/blob/main/docs/windows-client.md
The registry keys make the setup easier enough.
@ghost commented on GitHub (Jun 23, 2022):
so , is there a way to use tailscale/tailscaled cli without tailscale-ipn (Tailsacle gui app) on windows ? i really need it