Skip to content

TunnelX is a lightweight ingress tunneling tool designed to create a secure SOCKS5 proxy server for routing network traffic.

License

Notifications You must be signed in to change notification settings

projectdiscovery/tunnelx

Repository files navigation

TunnelX

TunnelX is a lightweight ingress tunneling tool designed to create a secure SOCKS5 proxy server for routing network traffic. TunnelX is created for enabling internal network scanning from the ProjectDiscovery platform, ensuring a seamless and isolated connection.

Features

  • Secure network ingress via SOCKS5 proxy.
  • Authenticated connections using your ProjectDiscovery API key.
  • Isolated traffic routing for internal scanning and discovery.

How It Works

TunnelX creates secure ingress tunnels using your ProjectDiscovery API key, enabling isolated internal scanning via a SOCKS5 proxy.

You can run TunnelX on different networks by specifying unique network names. This allows you to scan multiple networks independently, with each connection appearing as a selectable option in the network dropdown menu on the ProjectDiscovery Scans page.

Quick Start

Docker (Recommended)

  1. Run the Docker image:

    docker run --network host -d -e PDCP_API_KEY="your_api_key" projectdiscovery/tunnelx:latest

    Replace your_api_key with your ProjectDiscovery API key.

  2. Alternatively, build and run locally:

    docker build . -t tunnelx
    docker run --network host -d -e PDCP_API_KEY="your_api_key" tunnelx

Go

  1. Install and run:

    go install github.com/projectdiscovery/tunnelx@latest
    export PDCP_API_KEY="your_api_key"
    tunnelx
  2. Run directly from source:

    git clone https://github.com/projectdiscovery/tunnelx.git
    cd tunnelx
    export PDCP_API_KEY="your_api_key"
    go run .
  3. Run as a systemd service: If you want to run TunnelX under systemd:

    • Update the deployment/systemd/tunnelx.service file - Set Environment="PDCP_API_KEY=your_api_key_here"
    • Add your username under ExecStart=, User= and set WorkingDirectory= to the TunnelX directory in deployment/systemd/tunnelx.service file.
    • Copy, execute and enable the service:
       sudo cp deployment/systemd/tunnelx.service /etc/systemd/system/tunnelx.service
       sudo systemctl daemon-reload
       sudo systemctl enable tunnelx
       sudo systemctl start tunnelx
       sudo systemctl status tunnelx
  4. After successful connection, navigate to ProjectDiscovery Scans to create and manage scans using the established connection.

Internal Network

Command-Line Usage

Flags

Flag Description
-auth Your ProjectDiscovery API key (required).
-name (Optional) Specify a custom network name. Default is your machine’s hostname.

Example:

tunnelx -auth <your_api_key> -name <custom_network_name>

Output Example:

tunnelx -auth <your_api_key>

[INF] Session established. Leave this terminal open to enable continuous discovery and scanning.
[INF] Your network is protected—connection isolated and not exposed to the internet.
[INF] To create a scan, visit: https://cloud.projectdiscovery.io/scans

[HELP] To terminate, press Ctrl+C.

Running in the Background

To keep tunnelx running continuously in the background, follow these instructions based on your operating system:

# Linux & MacOS
nohup tunnelx -auth <your_api_key>

# Windows
start /B tunnelx -auth <your_api_key>

About

TunnelX is a lightweight ingress tunneling tool designed to create a secure SOCKS5 proxy server for routing network traffic.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published