Skip to content

Instantly share code, notes, and snippets.

@muhammadardie
Created May 13, 2025 09:18
Show Gist options
  • Select an option

  • Save muhammadardie/08855b5838fade366a52588296546e07 to your computer and use it in GitHub Desktop.

Select an option

Save muhammadardie/08855b5838fade366a52588296546e07 to your computer and use it in GitHub Desktop.

Revisions

  1. muhammadardie created this gist May 13, 2025.
    144 changes: 144 additions & 0 deletions tailscale-parsec-guide.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,144 @@

    # πŸ›‘οΈ Using Tailscale with Parsec for Secure Remote Desktop Access

    ## πŸ“Œ Overview

    This guide shows how to use **Tailscale** (a mesh VPN) together with **Parsec** (a high-performance remote desktop tool) to:
    - Securely access your machine from anywhere
    - Avoid port forwarding or exposing public IPs
    - Improve peer-to-peer connection reliability

    ---

    ## πŸ”§ Requirements

    | Tool | Version/Notes |
    |----------|---------------|
    | Tailscale | Free or paid plan, installed on both client and host |
    | Parsec | Installed and configured on both client and host |
    | OS | Windows, Linux, or macOS supported by both tools |

    ---

    ## πŸ“₯ Step-by-Step Instructions

    ### 1. Install Tailscale on Both Machines

    #### πŸ–₯ Host (e.g., Gaming PC or Workstation)
    - Go to [https://tailscale.com/download](https://tailscale.com/download)
    - Install Tailscale for your OS
    - Log in using your preferred identity provider (e.g., Google, GitHub)

    #### πŸ’» Client (e.g., Laptop or Tablet)
    - Repeat the same steps to install and log in to Tailscale

    βœ… After login, both devices should appear in your [Tailscale admin panel](https://login.tailscale.com/admin/machines)

    ---

    ### 2. Confirm Tailscale Connection

    - Open a terminal or command prompt
    - Run:

    ```bash
    tailscale status
    ```

    You should see your host and client listed with 100.x.x.x IP addresses (Tailscale's private network).

    Try pinging the host from the client:

    ```bash
    ping 100.x.x.x
    ```

    🟒 If ping works, you have a successful Tailscale connection.

    ---

    ### 3. Install and Configure Parsec

    #### On the Host
    - Download Parsec: [https://parsec.app/downloads](https://parsec.app/downloads)
    - Sign in or create an account
    - Enable **Host Mode** in settings
    - Add your PC to your **Approved Devices** list

    #### On the Client
    - Install and log in using the same Parsec account
    - You should see the host listed if Parsec detects it via LAN

    ---

    ### 4. Force Parsec to Use Tailscale IP (Optional)

    If Parsec **fails to establish a direct connection** (due to NAT/firewall), you can:

    1. **Get the Host’s Tailscale IP** from the `tailscale status` output
    2. On the client, **manually connect** by running (Parsec CLI, advanced):

    ```bash
    parsecd --peer 100.x.x.x
    ```

    Or in the Parsec UI (when supported), edit the host config to use the Tailscale IP.

    ---

    ### 5. Optimize and Secure

    #### βœ” Use Tailscale ACLs
    Restrict access to the host device from certain clients via ACL rules:
    ```json
    {
    "ACLs": [
    {
    "Action": "accept",
    "Users": ["[email protected]"],
    "Ports": ["100.x.x.x:443", "100.x.x.x:3389"]
    }
    ]
    }
    ```

    #### βœ” Enable Tailscale SSH (Optional)
    This allows you to SSH into your host via Tailscale:

    ```bash
    ssh [email protected]
    ```

    Enable it from the admin panel and in your Tailscale config.

    ---

    ### 6. Test Your Setup

    - Start Parsec on the host
    - On the client, connect to the host
    - Confirm smooth, low-latency remote desktop session

    You should now have **Parsec running over Tailscale**, with no need for public IPs or port forwarding πŸŽ‰

    ---

    ## 🧠 Additional Notes

    | Feature | Supported |
    |--------------------------|-----------|
    | NAT Traversal | βœ… |
    | Cross-platform support | βœ… |
    | Works behind CGNAT/NAT | βœ… |
    | Secure (end-to-end) | βœ… via WireGuard |
    | Gamepad input + low-latency | βœ… via Parsec |

    ---

    ## βœ… Summary

    | Tool | Purpose |
    |------------|----------------------------------|
    | **Tailscale** | Creates a secure private network for your devices |
    | **Parsec** | Provides low-latency remote desktop access |
    | **Combined** | Gives you fast, secure, and private access to your workstation from anywhere |