For existing Tailscale members

Your guide to the new team VPN

Member guide · Version 4 · October 16, 2026 · Quick visual guide

We now host and manage our own VPN server. This guide explains what changes, how you join from a laptop or a phone, and how access is protected.

Your laptop or phoneInternetLab VPN server · MFALab machines
  1. 1Invitation link
  2. 2Password + MFA
  3. 3Install + connect
  4. 4Verify with John
01 / NOWRequest your access

Send John your devices and the resources you need.

02 / WHEN INVITEDSet up your account

Create your password, enable MFA, and connect from a laptop or phone.

03 / BEFORE SWITCHINGTest with John

Keep Tailscale until independent access is verified.

01Why we are making this change

Self-hosted NetBird gives us control over our VPN server, user accounts, and access policies, without a per-member VPN subscription for the Community Edition. We take responsibility for server operation, updates, and backups.

NetBird uses its own application. The dashboard is NetBird's standard interface running on our server; it is not the NetBird Cloud service.

What the migration means for members
AreaWhat to expect
VPN accountYour Tailscale identity does not automatically become a NetBird account. You will receive an individual invitation.
Device registrationEach laptop, workstation, or phone needs its own registration. Signing in on one device does not enroll your other devices.
Server addressesOld Tailscale IPs and hostnames may need to be replaced. John will supply the tested destination for each resource.
SSH and development toolsSSH, SCP, SFTP, and tools such as VS Code Remote SSH can use an authorized network path, but their account, key, and connection settings still need verification.
PermissionsMembership does not mean unrestricted access. Access is assigned to approved devices and resources.
Internet browsingDo not select an exit node or route all internet traffic through the lab unless John explicitly provides that configuration.

Readiness: the pilot demonstrated SSH connectivity and policy blocking, and the external HTTPS address has been live since October 10, 2026. John's Windows PC and the lab servers now connect through it without Tailscale. What remains is each member's own independent test from an outside network; some campus and office networks have been observed to reset the connection to our server (see section 09). This guide prepares your migration; it is not an announcement that the whole team has switched.

02What you need to do now
  • Keep your existing Tailscale connection available during the transition.
  • Tell John which devices you need to connect and which servers or services you need to access.
  • Have an authenticator app ready for multi-factor authentication (MFA).
  • Do not install a new VPN on a company-managed device without the required authorization.

Send this access request to John

Use your existing trusted communication channel. Ask only for the resources needed for your work.

Name:
Email for the invitation:
Device name:
Operating system and version:
Device ownership: personal / organization-managed
Resources needed: GPU server / robot system / test workstation / other
Tasks needed: SSH / file transfer / web application / other
Existing remote OS username, if known:
Access duration: ongoing / until a specific date
Expected connection locations: home / lab / other
Availability for the migration test:

Do not include a password, SSH private key, MFA code, or enrollment token. A public SSH key may be requested separately.

Before you install

  • Confirm that you have permission to install networking software. If local administrator approval is needed, arrange it first.
  • Save the current SSH hostnames and connection settings you use, so they can be checked during migration.
  • Use a recognizable device name, such as alice-laptop or alice-phone. Report replacements or duplicate registrations to John.
  • On a phone or tablet only one VPN app can be active at a time. You will need to disconnect Tailscale on that phone while NetBird connects; you can switch back at any time during the transition.
  • For a remote-only server, John must establish a recovery path before changing its VPN connection. Do not disconnect its only working management connection.
03How you will join
  1. Receive a personal invitation link. John creates it on our own NetBird server and sends it to you privately. It expires, normally within 3 days; ask for a new one if it has lapsed. Invitations are intended for a specific person and must not be forwarded.
  2. Create your own password and enroll in MFA. Open the link, set a unique password, and sign in. You will then be asked to scan an MFA QR code with your own authenticator app (Google Authenticator, Microsoft Authenticator, Authy, or similar). Nobody needs your password, one-time codes, or MFA QR code.
  3. Install the official NetBird application and point it at our server. Our address is https://your-server.example. Use it instead of the default NetBird Cloud service; section 04 shows where to enter it on each device.
  4. Sign in and send John your device name and NetBird IP. Registration alone grants no access: the app will say Connected but nothing is reachable until John adds that device to an access group.
  5. Test your approved connections. Confirm that the servers and services you need work through NetBird. Connection names or VPN IP addresses may change; use the updated instructions provided for your devices.
  6. Switch only after verification. We will test access with Tailscale disconnected. Remove Tailscale only when John confirms that your device has completed the migration.

The initial plan uses individual accounts on our server. Google or GitHub login has not been configured; do not assume an existing social account will sign you in.

What you should receive before starting

  • Your personal invitation link and its expiration time.
  • The server address, which is the same for everyone: https://your-server.example.
  • Your approved resource list, including destination hostname or IP, service port, and OS username where applicable.
  • A migration test window and an agreed fallback procedure.

Only that address is valid. Do not use a demonstration URL, localhost, or an address copied from someone else's screenshots. If an invitation or message shows a different host, stop and confirm with John.

Account and MFA checklist

  1. Open the invitation supplied by John and check that its host matches the announced server address.
  2. Choose a unique password and save it in your password manager.
  3. When prompted, scan the MFA QR code using your own authenticator app and enter the current code to finish enrollment.
  4. If recovery options are offered, store them privately. Never send the QR code or recovery information to another member.
  5. If the invitation has expired, request a replacement. Do not use another member's account.

Ask John for help if your account opens but no resources are available. That can be the expected state before access is assigned; repeatedly reinstalling the app will not grant permissions.

04Install and connect: Windows, macOS, Linux, Android, iPhone

Begin this section after your invitation link has worked once in a browser. Every device uses the same server address: https://your-server.example. If NetBird is already installed for another network, tell John before changing it.

Windows setup
  1. Open the official Windows installation guide and download the installer specified for the rollout.
  2. Run the installer and approve the normal administrator prompt if you are authorized to do so.
  3. Open NetBird from the Start menu or system tray. On first launch choose the self-hosted option and enter https://your-server.example. (Existing install: tray icon → Settings → server / management URL.)
  4. Select Connect. Complete the browser sign-in using your personal lab account and MFA, then return to NetBird.
  5. Confirm the app reports a connection and shows your device's NetBird address. Send John the device name and address for access assignment.

For a status check, open a new PowerShell window after installation and run:

netbird status

A terminal opened before installation may not find the command until it is reopened. A command-not-found error is different from a failed VPN connection.

Command-line alternative, in a PowerShell window opened as Administrator:

netbird up --management-url 'https://your-server.example'
macOS setup
  1. Follow the official macOS installation guide using the package approved for your Mac.
  2. Open NetBird. Complete the installation's required system authorization prompts; contact John or your IT administrator if a policy blocks installation.
  3. Choose the self-hosted deployment, enter https://your-server.example, and connect. Terminal alternative: sudo netbird up --management-url 'https://your-server.example'
  4. Complete the browser login and MFA. Check the menu-bar app for connection status and your assigned address.
Linux setup
  1. Use the instructions for your distribution in the official Linux installation guide. Confirm the CPU architecture, especially for ARM-based devices.
  2. Install the client and, if you want a graphical interface, the desktop package described in that guide.
  3. For a desktop machine, run sudo netbird up --management-url 'https://your-server.example' (or select the self-hosted server in the desktop app) and complete the same personal browser login.
  4. For a machine without a desktop or browser, ask John for a device-specific enrollment procedure. Do not borrow a reusable key from another machine.

After installation, a read-only status check is:

netbird status

Exact controls can vary with client version. The official desktop guide explains the self-hosted first-launch flow. Installing the application, authenticating a device, and authorizing access are separate steps.

Android phone or tablet
  1. Install NetBird from Google Play (Android 8 or newer; link in the official Android guide).
  2. Open the app and tap Continue on the first screen. It mentions the default NetBird Cloud server; the next step replaces it.
  3. Tap the ☰ menu (top left) → Change Server → confirm the warning (it only clears the app's default settings).
  4. Enter https://your-server.example and tap Change. Do not use the setup-key option unless John gave you a key for this phone.
  5. Disconnect Tailscale on the phone, then tap the large NetBird button. Tap OK when Android asks for permission to create a VPN connection.
  6. Sign in with your invited account and MFA in the browser that opens, then return to the app. It should show Connected and your NetBird IP (starts with the range John gave you). Send John the phone's name and that IP.

Mobile data works as well as Wi-Fi. If the sign-in page never loads on a campus or office network, try again on mobile data and tell John which network failed.

iPhone or iPad
  1. Install NetBird from the App Store (link in the official iOS guide).
  2. Open the app. Before connecting, open its menu or settings and choose the option to change the server (Change Server in current versions).
  3. Enter https://your-server.example and save.
  4. Disconnect Tailscale on the device, tap Connect, and tap Allow when iOS asks to add a VPN configuration.
  5. Sign in with your invited account and MFA, then return to the app. It should show Connected and your NetBird IP (starts with the range John gave you). Send John the device name and that IP.

Exact labels can differ between app versions. If you cannot find the server option, send John a screenshot of the app's menu (no codes or links).

Computer outside the lab (campus, office, abroad)

Enrollment works over the normal internet; you do not need Tailscale, a public IP, or any router change. Use the Windows, macOS, or Linux steps above with the same address.

  • Some campus and office networks have been observed to reset the connection to our server, so the sign-in page never loads or the client reports a TLS or "connection reset" error. That is the network, not your account.
  • Workaround: do the one-time sign-in on a phone hotspot or home network, then tell John which network failed so he can request an allow-list from IT. After sign-in the client keeps retrying automatically.
  • Do not change proxy, DNS, or firewall settings, and do not install software on an organization-managed computer without authorization.
  • For a server with no browser (headless Linux), ask John for a one-time enrollment key for that machine; never reuse a key from another device.

Keep the transition reversible

John may temporarily run both VPNs during testing. If routes or DNS conflict, report it; do not add manual routes or change DNS servers to force a connection. Keep Tailscale available until your independent NetBird test passes.

05How access will work
  • Access is restricted by default. Only approved devices, destinations, and service ports will be allowed.
  • Permissions follow your work. GPU servers, robot systems, and test equipment may have different access groups. Access to one does not imply access to the others.
  • Administrator access is separate. Ordinary member accounts do not grant control over users, VPN policies, or the management server.
  • SSH remains a separate permission. A working VPN connection does not create a Linux account or grant SSH or sudo access. Use your assigned account and personally authorized SSH key.
  • Periodic sign-in may be required. Login-based devices are configured for reauthentication after eight hours and after a management disconnection lasting ten minutes. Headless server enrollment works differently.

The free self-hosted pilot uses administrator-controlled group assignment to restrict device access. This is distinct from NetBird's licensed built-in “Peer Approval” feature.

Right after enrollment, expect “Connected” with nothing reachable. New devices start in no access group. Send John the device name and NetBird IP; access appears shortly after John assigns the group, without reinstalling or signing in again.

Check the IP range. On our server every device gets an address starting with the range John gave you. Any other range (for example 100.117.) means the app is signed in to a different NetBird network, usually the default NetBird Cloud or a Google/GitHub account. Repeat section 04 with our server address and the invited lab account.

Three separate checks must pass

  1. Identity: your account can authenticate and your device is registered.
  2. Network policy: that device is allowed to reach the requested destination and port.
  3. Application permission: the server accepts your SSH account/key or application login.

The pilot currently allows only a specific SSH test path among the enrolled devices. It does not authorize unrestricted lab traffic. Final member permissions will be assigned before each migration, and ping may remain blocked.

A VPN account also does not approve operating a robot or changing shared equipment. Follow the equipment's normal access and coordination procedures.

06SSH, file transfer, and development tools

Before attempting SSH, obtain three values from John: destination, port, and remote OS username. Your NetBird email and your Linux username may be different.

The pilot uses an SSH bridge on port 2222. That is a temporary implementation detail, not a port to assume for every machine. Production instructions may use standard port 22 or another explicitly assigned port.

Windows PowerShell: connect using assigned values

Run the following only after John supplies the connection details. It prompts for values rather than embedding a fake server address:

$SshHost = Read-Host 'Assigned server hostname or NetBird IP'
$SshUser = Read-Host 'Your assigned remote OS username'
$SshPort = Read-Host 'Assigned SSH port'
ssh -p $SshPort "$SshUser@$SshHost"

This uses your existing SSH configuration and available keys. If a particular key is required, John will provide the correct key-selection instructions for your device. In PowerShell, your home path uses $env:USERPROFILE; the CMD expression %USERPROFILE% is not expanded in the same way.

macOS or Linux: command format

The following is a format illustration, not a ready-to-run command. Replace each uppercase label with your assigned value:

ssh -p ASSIGNED_PORT YOUR_OS_USERNAME@ASSIGNED_HOST

SSH key handling

  • Use your own existing authorized key, or generate a separate key when requested. Do not overwrite an existing key file.
  • Only the public key, normally ending in .pub, is provided for server registration. The private key stays on your device.
  • On first connection, verify the server's host-key fingerprint through John before accepting it. Stop if an existing host key unexpectedly changes.
  • For VS Code Remote SSH, use the confirmed host, user, port, and identity file. Keep the old working host entry until the new connection is verified.
  • SCP and SFTP need the same authorized destination and credentials. Test with a small, non-sensitive file before relying on large transfers.

Never fix an SSH error by sharing a private key, disabling host-key checking, or enabling root login. A public-key authentication error usually means the network reached an SSH service but the username/key combination was not accepted.

07Migration acceptance checklist

Complete this with John for each device. One successful device does not validate every laptop or server.

  • The client is connected to the announced self-hosted management URL.
  • Your account and MFA work, and John has identified the correct registered device.
  • Your approved server connection succeeds with the assigned address, port, and account.
  • Your required workflow works: terminal, file transfer, editor, or approved web application.
  • John verifies that an explicitly chosen unauthorized destination or port is blocked. Do not scan the lab network.
  • From a different network, such as a mobile hotspot, the approved workflow works with Tailscale disconnected.
  • After reconnecting or rebooting at an agreed time, access recovers or prompts for reauthentication as expected.
  • You know how to report a failure and how to use the agreed fallback during the migration window.
  • John explicitly confirms that this device is ready to retire its Tailscale connection.

Do not stop the sole VPN connection on a remote-only host while connected through it. Independent testing must have a local operator, console, or other confirmed recovery path.

Send a completion report

Device:
Date/time and time zone:
Test network: lab / home / mobile hotspot / other
NetBird connected: yes / no
Approved resources tested:
SSH / file transfer / application results:
Tailscale disconnected during independent test: yes / no
Reconnect or reboot result:
Remaining problems:
John's cutover confirmation: pending / received
08Security rules for everyone
  • Use your own account. Do not share logins or SSH private keys.
  • Keep your operating system and VPN application updated, and lock your device when unattended.
  • Do not share invitation links, device enrollment keys, passwords, or MFA secrets in team chats.
  • Do not open router ports, publish internal services, or disable security controls to troubleshoot access.
  • If you see a certificate warning, stop and contact John. Do not bypass it.
  • Report a lost device, suspicious login, or exposed credential promptly so access can be revoked.

If a device or credential is lost

Contact John immediately through your established channel. Identify the affected device or account and the approximate time of the incident. Do not send the exposed secret itself. John will review VPN access, device registration, and any separate SSH credentials; replacing one does not automatically revoke the others.

When you replace a computer or leave the team

Ask for the old device to be removed and request enrollment for the replacement. Do not copy another device's VPN identity or your colleague's credentials. Let John know when access is no longer needed so VPN and server permissions can be removed.

09When something does not work

Send John your device name, operating system, the service you are trying to reach, and the error message. Remove passwords, tokens, invitation links, and other secrets before sharing screenshots or logs.

During the transition, keep Tailscale as the fallback until told otherwise. Ping may be intentionally blocked, so a failed ping alone does not mean the VPN is broken.

Our server and network can still experience outages. Self-hosting and MFA reduce certain risks; they do not guarantee uninterrupted service or make a system impossible to compromise.

“Invalid credentials” at sign-in

Try first: Use exactly the email address John invited. Another address, such as Gmail or a different spelling of your name, has no account. Google and GitHub sign-in are not enabled.

Tell John: Which address you typed and which address the invitation went to. Never your password.

Invitation expired or rejected

Try first: Check that you used your own latest invitation. Ask for a new link.

Tell John: Your account email and the displayed error; omit the invitation token.

Certificate warning

Try first: Stop. Verify the announced URL and your device's date/time. Do not bypass the warning.

Tell John: Hostname and warning text, without secrets.

Sign-in page never loads, or “connection reset” / TLS error

Try first: Check that the address is exactly https://your-server.example. Then retry on a phone hotspot or home network; some campus and office networks block or reset the connection to our server.

Tell John: Which network failed, the time, and the error text; omit any link with a token.

Phone: VPN permission denied or another VPN is active

Try first: Disconnect Tailscale or any other VPN on the phone, then tap the NetBird button again and accept the VPN permission prompt.

Tell John: Phone model, OS version, and whether the app shows Connected.

MFA code rejected

Try first: Use the entry for the lab account and enable automatic time on your phone. If access to the authenticator is lost, contact John.

Tell John: Account identifier and whether the authenticator is available; never the code or QR.

NetBird IP does not start with the range John gave you

Try first: You are on a different NetBird network (usually the default NetBird Cloud). Disconnect, set the server to https://your-server.example as in section 04, and sign in with the lab account from your invitation, not Google or GitHub.

Tell John: The device name and the new IP once it starts with the range John gave you

Connected, but no resources work

Try first: Check the selected server/profile and whether access has been assigned to this exact device.

Tell John: Device name, NetBird address, target, and error.

SSH times out

Try first: Check the approved destination and port. The target may be offline or traffic may be blocked.

Tell John: Exact command with sensitive values redacted, target, and time.

Permission denied (publickey)

Try first: Check the remote OS username and the selected key. VPN membership alone does not authorize SSH.

Tell John: Username and public-key fingerprint if requested; never the private key.

Host key changed

Try first: Stop and ask John to verify the server identity before modifying known_hosts.

Tell John: Target and the fingerprint shown in the warning.

Ping fails, SSH works

Try first: ICMP may be intentionally blocked. Use the approved application test.

Tell John: No incident is needed if the required workflow works and ICMP was not authorized.

IP works, hostname fails

Try first: Ask whether the name is an old Tailscale name. Do not replace system DNS settings on your own.

Tell John: The hostname, working destination IP, and active VPNs.

Works only with Tailscale enabled

Try first: The migration has not passed its independence test. Keep the fallback and report it.

Tell John: Which workflow fails when Tailscale is disconnected.

Connection is slow or intermittent

Try first: Check local internet access. Note whether it changes on another network; avoid changing firewall rules.

Tell John: Time, network type, client version, and affected workflow.

Support request template

Device and operating system:
NetBird client version:
Time of failure and time zone:
Network location/type:
NetBird connection status:
Tailscale state: connected / disconnected
Approved resource and service:
What I expected:
What happened / exact error:
What changed recently:
Checks already tried:

Start with netbird status or the app's status screen. Share only the relevant portion privately with John; diagnostic output can reveal device names, internal addresses, and network details. Send full diagnostic bundles only when requested.

10Frequently asked questions
Do I need to create a domain account or configure my router?

No. John manages the server's external address and router configuration. Members receive a ready-to-use HTTPS address. You do not need a public IP or an inbound SSH port on your laptop merely to enroll.

Do I need Tailscale to join NetBird?

No. Enrollment and connection work directly over the internet through the HTTPS address. Keep Tailscale as the fallback until your device passes its independent test, then remove it when John confirms.

Can I use my phone or tablet?

Yes. Android 8 or newer and iPhone/iPad are supported with the official NetBird app; see section 04. A phone counts as its own device and needs its own group assignment. Only one VPN app can be active on a phone at a time.

Will signing in let John access everything on my laptop?

Signing in registers your device in the VPN. Actual reachability depends on policy, device firewall settings, and services running on the device. Do not enable an SSH server or share local services unless that access is specifically required and approved.

Can I connect several devices?

Request access for each device separately. Every new device needs identification and an appropriate group assignment; sharing an account does not replace that process.

Can I connect to another member's computer?

Only if that connection is explicitly authorized. Request the specific purpose and service instead of assuming team membership grants access.

Is NetBird SSH already enabled?

The verified pilot used existing OpenSSH accounts and keys through a restricted test path. Do not assume NetBird's built-in SSH identity feature is deployed or that browser login replaces your SSH key.

What happens when the server or home internet is down?

Registration, authentication, policy updates, and relayed connections may be affected. Existing direct connections may behave differently. Report the outage and use the agreed fallback; no uptime guarantee has been established for the pilot.

Do I need to buy a VPN subscription?

The planned deployment uses self-hosted NetBird Community Edition, so members will not be asked to buy a NetBird Cloud plan for this network. Infrastructure and maintenance remain the administrator's responsibility.

11Official references

Use these for software instructions. John's messages remain the source for your assigned resources and migration timing.

Migration contact: John

Back to the quick visual guide

Your next step is to send John your device list and required resources. You will then receive a personal invitation link; the server address is already in this guide.