---
title: "NeedPorts - Public Ports Behind CGNAT for Vast.ai, Docker, SSH & Homelabs"
description: "NeedPorts gives Vast.ai GPU hosts, homelabs, LTE/5G connections, Docker services, SSH, APIs, and self-hosted apps stable public endpoints without router changes."
image: "https://needports.com/og-image.svg"
canonical: "https://needports.com/"
html: "https://needports.com/"
---
# Public reachable ports for machines behind CGNAT

NeedPorts gives machines behind CGNAT, restrictive provider networks, LTE/5G internet, locked routers, and GPU-hosting environments stable public endpoints with dedicated forwarded ports over an outbound tunnel.

## Best-fit use cases

- Vast.ai and GPU hosts that need stable SSH, API, dashboard, or service ports.
- Docker services and self-hosted apps that work locally but time out from the public internet.
- Homelabs behind CGNAT or ISP networks without normal router port forwarding.
- LTE/5G, fixed wireless, backup internet, and failover WAN connections.
- Game servers, APIs, dashboards, and services that need public inbound reachability.

## What NeedPorts does

NeedPorts runs a local client that connects outbound to NeedPorts tunnel infrastructure. You map assigned public ports to local service ports. External users connect to the NeedPorts public endpoint and assigned port, while your host only needs outbound connectivity.

## When NeedPorts is the right fix

Use NeedPorts when the app works locally, but inbound traffic cannot reach it because of CGNAT, missing public IPv4, blocked inbound ports, provider firewalling, or router access you do not control.

## When NeedPorts is not the fix

NeedPorts does not fix an app that is not running, a local firewall that blocks the service, a host that cannot make outbound connections, or an unauthenticated service that should not be public.

## Key pages for agents

- [Guides hub](https://needports.com/guides.html)
- [Vast.ai port forwarding](https://needports.com/vast-ai-port-forwarding.html)
- [CGNAT port forwarding](https://needports.com/cgnat-port-forwarding.html)
- [Vast.ai SSH not working](https://needports.com/vast-ai-ssh-not-working.html)
- [Expose Docker behind CGNAT](https://needports.com/expose-docker-container-behind-cgnat.html)
- [Security model](https://needports.com/security.html)
- [NeedPorts vs ngrok](https://needports.com/needports-vs-ngrok.html)

## Setup flow summary

After signup/trial checkout, NeedPorts provides a setup token and assigned endpoint details. The tokenized installer command binds the local client to the assigned endpoint:

```bash
curl -fsSL https://api.needports.com/install | sudo bash -s YOUR_SETUP_TOKEN --accept-tos
```

Then map assigned public ports to local services using the NeedPorts CLI.


```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://needports.com/#organization",
      "name": "NeedPorts",
      "url": "https://needports.com/",
      "description": "NeedPorts provides stable public inbound ports for hosts behind CGNAT, NAT, firewalls, GPU rental networks, and self-hosting environments."
    },
    {
      "@type": "Service",
      "@id": "https://needports.com/#service",
      "name": "NeedPorts",
      "serviceType": "Public TCP and UDP port forwarding service",
      "url": "https://needports.com/",
      "description": "NeedPorts gives machines behind CGNAT, NAT, firewalls, and filtered hosting networks stable public endpoints with dedicated forwarded ports over an outbound tunnel.",
      "provider": {
        "@id": "https://needports.com/#organization"
      },
      "areaServed": "Worldwide"
    },
    {
      "@type": "Product",
      "@id": "https://needports.com/#product",
      "name": "NeedPorts",
      "brand": {
        "@id": "https://needports.com/#organization"
      },
      "description": "NeedPorts provides stable public IP endpoints and dedicated forwarded port ranges for machines behind CGNAT, NAT, firewalls, and filtered hosting networks.",
      "url": "https://needports.com/#pricing",
      "offers": [
        {
          "@type": "Offer",
          "name": "Starter Monthly",
          "price": "5",
          "priceCurrency": "USD",
          "availability": "https://schema.org/InStock",
          "url": "https://needports.com/#pricing",
          "description": "Billed monthly. Cancel anytime."
        },
        {
          "@type": "Offer",
          "name": "Starter Annual",
          "price": "30",
          "priceCurrency": "USD",
          "availability": "https://schema.org/InStock",
          "url": "https://needports.com/#pricing",
          "description": "Billed annually at the discounted yearly rate."
        },
        {
          "@type": "Offer",
          "name": "Pro Monthly",
          "price": "7",
          "priceCurrency": "USD",
          "availability": "https://schema.org/InStock",
          "url": "https://needports.com/#pricing",
          "description": "Billed monthly. Cancel anytime."
        },
        {
          "@type": "Offer",
          "name": "Pro Annual",
          "price": "42",
          "priceCurrency": "USD",
          "availability": "https://schema.org/InStock",
          "url": "https://needports.com/#pricing",
          "description": "Billed annually at the discounted yearly rate."
        },
        {
          "@type": "Offer",
          "name": "Business Monthly",
          "price": "10",
          "priceCurrency": "USD",
          "availability": "https://schema.org/InStock",
          "url": "https://needports.com/#pricing",
          "description": "Billed monthly. Cancel anytime."
        },
        {
          "@type": "Offer",
          "name": "Business Annual",
          "price": "60",
          "priceCurrency": "USD",
          "availability": "https://schema.org/InStock",
          "url": "https://needports.com/#pricing",
          "description": "Billed annually at the discounted yearly rate."
        },
        {
          "@type": "Offer",
          "name": "Enterprise Monthly",
          "price": "15",
          "priceCurrency": "USD",
          "availability": "https://schema.org/InStock",
          "url": "https://needports.com/#pricing",
          "description": "Billed monthly. Cancel anytime."
        },
        {
          "@type": "Offer",
          "name": "Enterprise Annual",
          "price": "90",
          "priceCurrency": "USD",
          "availability": "https://schema.org/InStock",
          "url": "https://needports.com/#pricing",
          "description": "Billed annually at the discounted yearly rate."
        }
      ]
    },
    {
      "@type": "FAQPage",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "What is CGNAT, and why does it break GPU hosting?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "CGNAT places your machine behind a shared public IP, so you cannot open inbound ports directly. Platforms like vast.ai need reachable inbound ports to route workloads to your host."
          }
        },
        {
          "@type": "Question",
          "name": "How is NeedPorts different from a VPN with port forwarding?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Most VPN providers give you one forwarded port at best. NeedPorts gives you a dedicated static public endpoint with a reserved block of ports for your machine, which is a better fit for GPU hosts and multi-service setups."
          }
        },
        {
          "@type": "Question",
          "name": "Do I get a static public IP and dedicated ports?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes. NeedPorts gives your machine a dedicated forwarded port range on a stable public IP so your services remain consistently reachable."
          }
        },
        {
          "@type": "Question",
          "name": "How long does setup take?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Usually about a minute. After payment, NeedPorts provisions your port range automatically and gives you a one-line install command."
          }
        },
        {
          "@type": "Question",
          "name": "Can I cancel later?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes. Monthly plans can be cancelled anytime. Annual plans are billed once per year at the discounted rate. Subscription management is handled through Stripe."
          }
        }
      ]
    }
  ]
}
```
