IP Transit Dashboard for everyone
Everything you need to know about Shulker IP Transit — what it is, why you might need it, and how the dashboard works. Written for someone who has never done networking before. No jargon without an explanation.
What is IP Transit?
Imagine your server as a house, and its IP address as its street address. In normal life, each house has exactly one address, given by the phone/cable company, and you can't get a second one without buying more land.
Shulker IP Transit changes that. It gives your server a second, dedicated public IPv4 address — delivered through a private encrypted link we call a tunnel — that works on any server anywhere: a VPS you rent from another provider, a dedicated server in a data centre, or even the computer sitting in your bedroom.
You run one command on your server. Within about 30 seconds, your server responds to the internet on the new IP — while keeping all of its existing IPs and services exactly as they are.
💰 Price — $2.66 per IP per month, or pay quarterly ($7.98 per IP per 3 months). Billed in USD, cheaper than buying a dedicated IPv4 from most hosting providers.
The problems it solves
IP Transit isn't a "nice to have" for most people — it fixes a real, concrete problem. Here are the most common ones:
Your ISP puts you behind a shared router. You have no public IP of your own, and port forwarding in your home router does nothing. Visitors on the internet literally can't reach your server.
IP Transit gives you a real public IP that bypasses this completely.
You run a game server, a web app, or an API. When someone attacks you, your server dies — or worse, your home internet connection dies because the flood of attack traffic saturates it.
IP Transit routes traffic through our protected network first, so attacks never touch you.
One server, many services. You want your website on one IP, mail on another, a game server on a third — so they don't fight over port 80 or affect each other's reputation.
Order several IPs and attach them all to the same server.
Your old VPS is dying. You've bought a new one. Normally you'd have to tell every user, player or DNS record that your IP changed.
Instead, detach the IP from the old server and attach it to the new one. Same IP, new machine.
Minecraft, CS2, Rust servers get DDoSed by angry players and competitors. Without protection, one attack wipes out your player base.
Your players connect to your Shulker IP. Attacks get absorbed by our network. Game plays like normal.
You're running Nextcloud, Home Assistant, Plex, or a personal mail server at home. You want it reachable from the outside, securely.
IP Transit gives it a public address while keeping your home IP completely hidden.
Why don't I just use port forwarding?
Port forwarding works only if two things are true: your ISP gives you a real public IP, and you can access your router's admin panel. Both fail in many real situations:
| Situation | Port forwarding works? |
|---|---|
| Home fibre with a public IP (rare now) | ✅ Usually |
| Home internet behind CGNAT | ❌ Impossible |
| Mobile broadband / 4G / 5G router | ❌ Almost never |
| Dorm / hostel / office network | ❌ Router admin locked |
| Shared apartment WiFi | ❌ No admin access |
| Any setup where the ISP blocks incoming ports (port 80/443) | ❌ Blocked upstream |
In any of these cases, IP Transit is a direct solution: your server gets a public address through a tunnel your ISP can't block, because the tunnel uses the same outbound connection your server uses for anything else.
✅ Bottom line — if you've ever said "I want to host X but I can't because of my ISP / my router / CGNAT", IP Transit is the answer.
How it works (in plain English)
IP Transit is built on a tunnel — a secure private connection between two computers over the internet. Think of it like a covered walkway between two buildings: data goes in one end and comes out the other, protected from the weather outside.
Here's what happens, step by step, when a visitor types your new IP into their browser:
- Visitor → Shulker network. The visitor's request arrives at our edge. Our network holds your new IP, so this is where it lands.
- Shulker filters the traffic. Our DDoS scrubbing layer looks at every packet. Normal traffic is let through; attack traffic is dropped right here.
- Clean traffic enters the tunnel. The remaining good packets travel through an encrypted private connection to your server.
- Your server answers. Replies go back through the tunnel, out through our network, and to the visitor — who only ever sees your Shulker IP, never your real one.
WireGuard and GRE — what are they?
These are two flavours of "tunnel" technology. WireGuard is a modern encrypted tunnel (fast, lightweight, encrypted). GRE is an older, simpler, very stable tunnel. Shulker picks the right one for you automatically — the install command sets it up — and you never need to configure either by hand.
🕵️ Your real IP stays private — from the outside world, all anyone sees is your Shulker IP. They cannot discover your real server IP or your home IP. This is one of the biggest advantages over simply pointing DNS at your home connection.
Getting started — your first IP in 3 steps
- Order an IP. Click the Order IP button at the top of the dashboard. Choose how many (up to 10 per order) and whether to pay monthly or quarterly. Complete the payment. Your IP appears in the dashboard instantly.
- Generate an install command. Click your new IP's card, switch to the Connect tab, and press Generate install command. You'll get a single one-time command.
- Paste it into your server. SSH into your server as
root, paste the command, press Enter. Wait about 30 seconds. The IP flips from Offline to Online on the dashboard.
# SSH into your server (your real IP, not the Shulker one) ssh root@your-server-ip # Paste the one-time command from the dashboard curl -fsSL https://shulker.in/cdn/ip-transit/install.sh | sudo bash -s -- --token ipt_xxxxxxxxxxxx # Wait ~30 seconds. Check it worked: curl ifconfig.me # Output should now include your new Shulker IP
⚠️ You need root access — the install command runs with full privileges because it needs to create the tunnel and add the IP to your network interface. On a VPS or dedicated server, you almost always have root. On a personal computer, use sudo.
The dashboard — every element explained
This is the page you land on. It shows every IP you own, their live status, and lets you do everything — order, rename, renew, connect, view history. Let's walk through it from top to bottom.
1. Page header
2. Flash messages and alerts
Below the header you may see coloured banners:
| Colour | What it means |
|---|---|
| Green | Success — e.g. "Payment received — 1 IP was delivered instantly." |
| Amber | Warning — e.g. live status temporarily unavailable, or a payment is being processed. |
| Blue | Info — e.g. "You have 1 paid order under manual review by our team." |
| Red | Error — e.g. order could not be created. Read the message; usually retryable. |
3. Waitlist card (only appears when stock is short)
If you placed a multi-IP order but we didn't have enough free tunnels on the backend, you'll see an amber card here showing "1 of 3 IPs activated". A progress bar tracks how many IPs have been delivered.
Two buttons: Retry now asks our backend again immediately (rate-limited to a few seconds between tries). Contact support appears after the first retry — use it if the wait is dragging on. The card updates live on its own as soon as new stock arrives.
4. Stat cards
- Total IPs — how many addresses you own (active + expiring + expired + suspended combined).
- Online now — how many are currently up and answering on the tunnel. Only counts IPs that are not expired and not suspended.
- Need attention — how many IPs are expiring, expired, or suspended. This is your "things to fix" number.
5. Search and filters
Search matches against the IP address, the name you gave it, and the region — all at the same time. Typing "fra" will find any IP whose name or region contains "fra". It's instant — no page reload.
The chips on the right filter the list to a specific status. Click All to clear the filter. You can combine search + filter: search "proxy" and click Expiring to see only expiring IPs whose name contains "proxy".
6. The tunnel card — the main thing on the page
Each IP you own is shown as a horizontal card. This is what you look at most, so it's packed with information at a glance. Here's what each part means, from left to right:
| Part | What it shows |
|---|---|
| 🇩🇪 flag icon | The country of the IP's region. Quick visual recognition — you don't need to read "de0" every time. |
| IP address | Your public IPv4, in mono font. This is what the outside world sees. |
| Name (alias) | A label you give the IP ("Production proxy", "Minecraft EU", etc.). Only you see it. Click it to rename. Shows "Add a name" if empty. |
| Region | The node the IP is attached to (e.g. de0, us1). Useful if you have IPs in multiple locations. |
| ⬇ Download / ⬆ Upload | Current throughput in Mbps, updated live every few seconds. Both show 0 bps when the IP is offline. |
| Sparkline | A tiny chart of the last ~4 minutes of traffic. Green = download, blue = upload. Fills in as the dashboard polls. |
| Status pill | One of ● Online, ○ Offline, Expiring, Expired, or Suspended. Explained below. |
| Expiry info | Exact expiry date and how many days left. Turned amber when expiring, red when expired. |
| Manage / Renew | Opens the detail window on click. Shows Renew (with a warning colour) when the IP is expiring or expired, so you can fix it in one click. |
Status pills — what each one means
| Pill | Meaning |
|---|---|
| ● Online | The tunnel is up and traffic is flowing. Everything is working. |
| ○ Offline | No server is currently connected through the tunnel. Either you haven't run the install command yet, or your server has been down/rebooted without the tunnel coming back. |
| Expiring | Expires within 7 days. Not yet a problem, but renew soon. |
| Expired | Already past the expiry date. Still held for you for 3 more days — renew immediately or you lose the IP. |
| Suspended | Administratively suspended (billing, abuse, or by request). Doesn't matter what state the tunnel is in — the IP is not usable. Contact support. |
7. Expired IPs section
Expired IPs move into their own collapsible section below the active list. The header shows "N expired" — expand it to see them. Each card still shows all the usual info and lets you renew with one click. The 3-day grace period is highlighted so you know how much time you have left.
8. Billing & renewal history
At the bottom, a collapsible table shows every purchase and renewal: date, IP, type, term, billing period and amount. Useful for reconciliation, expense reports, and seeing what you've been paying for what. Click the header to expand.
The IP detail window
Click any tunnel card and a large window opens. This is where you do everything with that specific IP. It's split into three tabs.
Overview tab
Everything about the IP at a glance, live:
The live traffic chart
A big Grafana-style graph showing download (green) and upload (blue) over the last few minutes. It updates every 4 seconds. Hover anywhere on the chart to see the exact values at that moment, plus a "how long ago" timestamp — perfect for diagnosing whether a spike was real.
The dashed horizontal grid lines are auto-scaled to your traffic peak, so slow traffic still fills the chart nicely, and fast traffic shows the real shape.
Details table
Below the chart, a two-column table with all the technical details:
| Field | What it tells you |
|---|---|
| IP address | Your public IPv4 |
| Name | Your custom label, or "Not set" |
| Region | Node/country with a flag |
| Tunnel IP | The private IP on the tunnel side (not the public one). Only matters if you're setting up advanced routing — ignore otherwise. |
| Protocol | WireGuard or GRE — whichever we chose for you |
| Subnet | If you own a whole block, the CIDR(s). Single IPs show just one entry. |
| Created | When the IP was first delivered to you |
| Last billed | Last renewal / purchase timestamp |
| Expires | Date, colour-coded by urgency |
| Service ID | Internal ID — useful when contacting support |
Action buttons
At the bottom: Rename opens the name dialog, Renew opens the renewal modal. Renew is hidden if the IP is suspended (you can't renew suspended IPs — you need to fix the suspension first).
Connect tab
This is where you generate the one-time install command. Detailed in the next section.
History tab
A chronological list of every purchase and renewal for this specific IP, with amounts and dates. Very useful when your accountant asks "how much have we paid for this IP?".
The Connect tab — step by step
This is the most important tab. Everything that actually attaches an IP to a server happens here.
- Choose the command lifetime. The dropdown offers 1 hour, 24 hours, 3 days, or 7 days. This is how long the install command stays valid before it can no longer be used. Pick the shortest window that gives you time to paste it — 1 hour is plenty if you're ready to go, 24 hours if you want a buffer.
- Click Generate install command. The command is created on our side and shown in a black box with a copy button. It works once and it expires at the time shown. Treat it like a password.
- Copy and paste it into your server. SSH into the server as
root, paste, press Enter. The command creates the tunnel interface, adds the IP, and starts forwarding. - Wait ~30 seconds. The tunnel establishes and traffic starts flowing. The dashboard flips the IP from Offline to Online automatically — you don't need to refresh.
// Install command (single use, expires) curl -fsSL https://shulker.in/cdn/ip-transit/install.sh | sudo bash -s -- --token ipt_xxxxxxxx // Remove command (single use, same token) curl -fsSL https://shulker.in/cdn/ip-transit/install.sh | sudo bash -s -- --remove --token ipt_xxxxxxxx
What the remove command is for
The remove command does the opposite — it disconnects the IP from the server you ran it on. Use it when:
- You're moving the IP to a different server (run remove on old, install on new).
- You want to stop using the IP on that server but keep it (for example, shutting down a service).
- You're decommissioning a server.
🔐 Never share the install command — anyone who has it can attach your IP to their server and receive your traffic. Generate a fresh command each time, never reuse, never paste into public chats, logs, or screenshot tutorials. Treat it exactly like a root password.
⚠️ When the tab is blocked — if the IP is suspended or expired, the Connect tab shows a warning and hides the generate button. You'll need to renew (expired) or contact support (suspended) first.
Rate limit
To prevent accidental command-spam, install commands are limited to 6 per minute per user. If you hit that limit, wait 60 seconds and try again.
Ordering more IPs
Click Order IP at the top of the dashboard. A modal opens with a few choices:
| Field | What it does |
|---|---|
| How many IPs? | Stepper between 1 and 10. If you need more, place multiple orders. |
| Billing period | Monthly ($2.66 per IP) or Quarterly ($7.98 per IP — three months up-front). |
| Total due | The amount shown is what will be charged. Prices are calculated on our server — the number you see is final. |
| Approx. in INR | A display-only estimate at a fixed conversion rate. Your card is charged in USD. |
Clicking Continue to payment creates the order, opens the checkout page, and after payment you land back on the dashboard with a green banner: "Payment received — 1 IP was delivered instantly." The IP shows up in your list immediately.
ℹ️ Sometimes it takes a few seconds — if our backend is momentarily out of stock (rare), the IP goes into the waitlist. You still paid, and the dashboard keeps retrying until stock comes back — usually within a few minutes. Your payment is safe the whole time.
Renewing an IP
There are three places you can renew from:
- Click the yellow Renew button directly on an expiring / expired card.
- Open the IP's detail window, then click Renew at the bottom of the Overview tab.
- Expand the Expired IPs section and renew from there.
The renewal modal shows the IP address, billing period selector, and the new expiry date the renewal would give you. Click Renew and pay, complete payment, and the IP's expiry extends immediately.
✅ Renewing extends, it doesn't replace — renewing an IP does not change it. Same IP, same tunnel, same configuration. The only thing that changes is the expiry date.
⚠️ Renew before expiry to keep the same IP — you have a 3-day grace period after expiry. Renew any time within that window and you keep the IP. After 3 days the IP goes back to our pool and may be given to another customer — at which point it cannot be recovered.
Renaming (adding a name)
Every IP can have a friendly name to help you recognise it. Names are purely cosmetic — they don't affect routing, DNS, or anything technical.
- Click the small pencil icon next to the IP address on its card, or Rename in the detail window.
- Type a name — up to 40 characters. Letters, numbers, spaces, dashes, underscores, dots.
- Press Enter or click Save. Instantly applied across the dashboard and the API.
To remove a name, clear the field and save. The card will say "Add a name" again.
Naming conventions we recommend
Good names make multi-IP setups much easier to reason about:
Moving an IP to a different server
One of the biggest advantages of IP Transit: you can move an IP between servers without it changing. Useful when upgrading hardware, migrating hosts, or replacing a failed machine.
- On the OLD server, open the IP's Connect tab, copy the remove command, and run it. The IP disconnects from the old server and goes Offline.
- On the NEW server, open the IP's Connect tab again, generate a fresh install command (the old one was single-use), copy it, and run it.
- Wait ~30 seconds. The IP flips back to Online — now answering on the new machine.
💡 No DNS changes needed — since the IP itself never changes, DNS records, firewall rules, partner integrations, and saved bookmarks all keep working. The DNS was pointing at the IP all along — only the machine behind it changed.
⚠️ Only one server per IP at a time — if you run the install command on a second server while the first is still connected, the second one takes over and the first loses the tunnel. Always run remove first when you can, so you don't lose packets unexpectedly.
Expired IPs and the 3-day grace period
When an IP passes its expiry date, it doesn't disappear instantly. Here's the timeline:
| When | What happens |
|---|---|
| 7 days before expiry | IP shows Expiring. The card is highlighted amber. |
| Expiry date | IP moves to Expired. Tunnel is disabled, traffic stops. You can still renew. |
| Expiry + 1 to 3 days | Still in grace period. Renew and it stays yours, same IP, same setup. |
| Expiry + 3 days | IP returns to our pool. It may be given to another customer at any moment. Cannot be recovered. |
🚨 Renew before grace ends — we cannot recover an IP after the grace period, even for support. If it's gone, it's gone. Enable billing reminders or renew early.
What "out of stock" means
Occasionally our backend runs out of free tunnels for your region — especially for multi-IP orders during busy periods. When this happens:
- You still pay. Your order is not lost.
- Any IPs we could deliver are delivered immediately.
- The remaining ones go on a waitlist — an amber card at the top of the dashboard shows your progress ("1 of 3 activated").
- Our team is alerted automatically. We add capacity as fast as we can.
- The dashboard retries every few seconds — you don't have to do anything.
If it's been more than a few hours, click Contact support on the waitlist card. Include your order number (shown on the card) and we'll look into it immediately.
Troubleshooting
"My IP is stuck on Offline"
- Have you actually run the install command on a server? A new IP with no install command will show Offline until you connect one.
- If you ran it and it says Offline: SSH back into the server and check the tunnel interface exists. The install script creates one named something like
shulker0orwg-ipt. Runip ato check. - Rebooted the server? The tunnel should come back automatically. If it doesn't, re-run the install command on that server (the previous one has likely expired).
- Still offline after 2 minutes? Open the Connect tab again, generate a fresh command, and re-run it. If that also fails, contact support.
"The install command failed with a permission error"
You need to be root or use sudo. If you're logged in as a normal user, prefix the whole line with sudo — or log in with sudo -i first.
"The install command says 'token expired' or 'already used'"
Install commands are single-use and expire after the TTL you chose (1h / 24h / 3 days / 7 days). Generate a new one from the Connect tab. This is intentional — the previous one cannot be re-used, because if anyone saw it, it could attach your IP to their server.
"I can't generate an install command"
Possible reasons, in order of likelihood:
- IP is suspended — the button is hidden. Contact support.
- IP is expired — renew it first.
- Rate limit hit — 6 commands per minute. Wait 60 seconds.
- Our backend is temporarily unavailable — try again in a minute.
"I paid but my IP hasn't shown up"
Give it 30 seconds and refresh. Then look at the top of the dashboard — is there a waitlist card? If yes, some IPs are delivered, others are queued. If there's no waitlist card and no IP, the payment might still be processing (bank confirmation can take a few minutes). If 5+ minutes have passed and nothing appeared, contact support with your order number.
"My IP shows Suspended — why?"
Suspension can happen for billing issues, abuse reports, or by manual request. The detail window shows the exact reason when one is available. Contact support — you cannot renew, rename, or generate commands while suspended.
"Live stats show 0 bps but the IP is Online"
That means the tunnel is up but nothing is currently flowing. Perfectly normal if the server is idle. Open the Overview tab and watch the chart — traffic spikes when someone actually uses the service.
Glossary
Every term you might trip over, defined in plain language.
203.0.113.10 that identifies a device on the internet. IPv4 addresses are 32-bit, which is why there's a global shortage and they cost money.192.168.1.5. Not routable on the internet.ssh command. This is how you run the install command.203.0.113.0/28. Used when you own more than one IP.10.64.0.2. Different from your public Shulker IP. You rarely need to think about it.FAQ
Will I lose my existing IP when I install the new one?
No. Your server keeps every IP it already has. The Shulker IP is added, not replacing anything.
Can I run more than one IP on the same server?
Yes. Run the install command for each IP on the same server. Each becomes an additional address the server answers on.
What OS can I use?
Any modern Linux (Ubuntu, Debian, CentOS, Alma, Rocky, Arch — all supported). The install command handles the specifics. Windows is not directly supported through the script.
Can I use the IP from a home connection?
Yes — that's one of the main use cases. As long as your home computer can reach the internet (which it obviously can), the tunnel works.
Does the tunnel consume my bandwidth?
The tunnel itself is lightweight, but traffic you push through it counts as your server's normal outbound/inbound traffic — because the data still flows over your server's internet connection. The tunnel doesn't double it, but it's still using the same pipe.
What if I lose access to the server that's running the tunnel?
Generate a new install command from the dashboard and run it on a new server. The old server's tunnel is instantly displaced. The IP itself never changes.
Do I need to open any ports in my firewall?
You need to allow the tunnel's outbound connection. Typically UDP 51820 (WireGuard) or IP protocol 47 (GRE) if using GRE. The install script usually handles the local firewall for you. If you're on a restrictive network, contact support with your environment and we'll help.
Can I get a block of IPs, not just single addresses?
By default each order is single IPs. Blocks are available on request — contact support with the size and region you need.
Is the IP shared with anyone else?
No. Every IP is fully dedicated to you for the lifetime of your subscription. No CGNAT, no sharing, no surprises.
How do I cancel?
Don't renew. The IP runs until its expiry, then goes through the 3-day grace period, then releases. If you want to release immediately, run the remove command on your server and contact support.