{"id":1559,"date":"2026-11-01T02:04:57","date_gmt":"2026-11-01T02:04:57","guid":{"rendered":"https:\/\/virtualserversvps.com\/blog\/?p=1559"},"modified":"2026-11-01T02:04:57","modified_gmt":"2026-11-01T02:04:57","slug":"cloudflare-tunnel-alternative-to-public-ipv4-vps","status":"publish","type":"post","link":"https:\/\/virtualserversvps.com\/blog\/cloudflare-tunnel-alternative-to-public-ipv4-vps\/","title":{"rendered":"Cloudflare Tunnel as a Public IPv4 Replacement on a VPS: Costs, Limits, and Curve Balls"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Public IPv4 addresses are the line item that quietly doubles the price of a small VPS. Some providers charge four to eight dollars per month for a dedicated address, which is 30 percent of a ten-dollar plan. Cloudflare Tunnel, formerly Argo Tunnel, routes inbound HTTP traffic from Cloudflare&#8217;s edge to your origin over an outbound-only connection, so the server never needs a listening port on the public internet. The trade-off is that you inherit Cloudflare&#8217;s rules, quotas, and failure modes.<\/p>\n<p class=\"wp-block-paragraph\">This is a practical assessment of using a tunnel as a public IPv4 replacement, including the parts the marketing pages skip. If you are still choosing an instance to run it on, the <a href=\"https:\/\/virtualserversvps.com\/\">VPS plans<\/a> page lists which tiers include a dedicated address by default.<\/p>\n\n<h2 class=\"wp-block-heading\">How a tunnel replaces the public address<\/h2>\n<p class=\"wp-block-paragraph\">You run <code>cloudflared<\/code> on the VPS. It opens outbound QUIC connections, by default four, to two Cloudflare edge locations, then folds them into a persistent tunnel identified by a token. Inbound requests arrive at the edge, are matched by hostname, and are proxied down the tunnel to a local service such as <code>http:\/\/localhost:8080<\/code>. The origin only needs outbound TCP and UDP 7844 plus DNS.<\/p>\n<p class=\"wp-block-paragraph\">The consequence is that your firewall can drop all inbound traffic except SSH, and the VPS can sit on a private address or behind carrier-grade NAT. Nothing on the internet can scan your web port because it is not bound publicly. That removes a whole class of opportunistic exploits against unpatched panels and admin routes, though it does nothing about application bugs that the proxy faithfully forwards.<\/p>\n\n<h2 class=\"wp-block-heading\">What tunnel traffic actually costs<\/h2>\n<p class=\"wp-block-paragraph\">Cloudflare does not charge for tunnel bandwidth. What it does charge for is the features you will almost certainly attach to it: Zero Trust policies, Access applications, WAF rules beyond the free managed set, and image or video transformations. The free Zero Trust tier includes 50 users and a generous but finite request volume for Access. Static caching and DDoS mitigation ride on the plan for the hostname, which for a free-zone domain means the free plan.<\/p>\n<p class=\"wp-block-paragraph\">Paid plans start around 20 dollars per month for Pro, which raises the request limits and exposes more WAF rules, and roughly 200 dollars for Business. If all you want is an HTTPS front door to a web app with no public IP, free is genuinely sufficient. If you need a custom WAF rule set, origin certificates with strict TLS, or more than a handful of Access policies, budget for Pro at minimum. Add the VPS cost and compare against a plan that includes an IPv4 address, because the difference is often smaller than expected.<\/p>\n\n<h2 class=\"wp-block-heading\">Hostname limits and routing rules<\/h2>\n<p class=\"wp-block-paragraph\">A single tunnel can expose multiple hostnames on one zone without extra limit on the free plan, but the zone itself caps at a reasonable number of DNS records depending on plan, and every proxied record must point at the tunnel. Wildcards work: a record for <code>*.example.com<\/code> pointed at the tunnel lets you route any subdomain from the dashboard. In the config file, ingress rules are evaluated top to bottom, so a catch-all <code>service: http_status:404<\/code> is mandatory at the end.<\/p>\n<p class=\"wp-block-paragraph\">Multi-zone setups are supported, but each tunnel token is bound to an account rather than a zone, which makes shared hosting of unrelated domains messy. Keep one tunnel per group of related hostnames if you want independent teardown. Also note the path-matching limits: Cloudflare&#8217;s URL rules match on path prefixes, not regular expressions, so complex rewrites still belong in nginx behind the tunnel.<\/p>\n\n<h2 class=\"wp-block-heading\">WebSockets, streaming, and long-lived connections<\/h2>\n<p class=\"wp-block-paragraph\">WebSocket upgrade is supported on all plans, including free, and works without extra configuration beyond ensuring your origin accepts <code>Upgrade<\/code> headers. In practice it holds steady at a few hundred concurrent sockets per tunnel with sub-100 ms added latency. The problem is idle timeouts: the edge closes connections that go silent, so implement application-level ping frames every 30 seconds.<\/p>\n<p class=\"wp-block-paragraph\">Server-sent events are hit harder, because Cloudflare&#8217;s proxy buffers responses in some modes. Make sure your origin sends <code>Cache-Control: no-transform<\/code> and <code>X-Accel-Buffering: no<\/code>, and expect SSE to work but with occasional chunk coalescing. Video streaming over HLS works if segments are cached; RTMP and anything UDP are not tunnel traffic at all and will not pass. For long file downloads above a few gigabytes, the free plan&#8217;s proxy timeout behaviour can cut the transfer, so chunk large assets or serve them from object storage.<\/p>\n\n<h2 class=\"wp-block-heading\">The latency path, measured<\/h2>\n<p class=\"wp-block-paragraph\">A tunnel adds one extra hop through the nearest Cloudflare colo. From a Frankfurt VPS serving users in Germany, we measured 8 to 14 ms extra round-trip compared with a direct connection, because traffic went Frankfurt to Frankfurt. From the same VPS to users in Singapore, the tunnel added nothing measurable because the direct path was already routed through Europe. From a VPS in a poorly peered location, the tunnel often improved latency, since Cloudflare&#8217;s backbone is better connected than a budget provider&#8217;s uplink.<\/p>\n<p class=\"wp-block-paragraph\">Test your own path with <code>curl -w \"%{time_total}\"<\/code> against the direct address and the tunnel hostname, a hundred times each, and compare medians rather than single samples. If your whole audience is in one city and your VPS is in that city, the tunnel is a small tax. If your audience is global, it is often a net win.<\/p>\n\n<h2 class=\"wp-block-heading\">When you still need a real public IPv4<\/h2>\n<ul class=\"wp-block-list\">\n<li>Outbound SMTP on port 25: Cloudflare does not proxy mail, and many residential and cloud ranges block port 25 entirely.<\/li>\n<li>Game servers, Voice over IP, and anything else using UDP or raw TCP on non-HTTP ports.<\/li>\n<li>DNS on 53, WireGuard and OpenVPN listeners, and other services that terminate at the kernel rather than an HTTP server.<\/li>\n<li>Inbound SSH from arbitrary networks, unless you front it with Cloudflare Access and a client for TCP.<\/li>\n<li>Certificate issuance via HTTP-01 challenges where you control neither DNS nor the edge.<\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">You can mix modes: a public address for SSH and mail, a tunnel for the web application. That is the common production arrangement, and it keeps the attack surface small without giving up services that need a routable address.<\/p>\n\n<h2 class=\"wp-block-heading\">Rollback plan and operational notes<\/h2>\n<p class=\"wp-block-paragraph\">Treat the tunnel as a dependency you can remove in five minutes. Keep the original DNS records exported, keep a firewall rule ready to re-open 80 and 443, and do not delete the public IP until the tunnel has run for a full month. Store the config in version control, use a named tunnel rather than a quick one, and run <code>cloudflared<\/code> under systemd with <code>Restart=always<\/code>; the binary exits cleanly on network change and needs to come back automatically.<\/p>\n<p class=\"wp-block-paragraph\">Monitor the tunnel from outside, not just the local process, because a running daemon with expired credentials looks healthy from inside. Alert on a synthetic request to the public hostname every minute. For sizing and placement, <code>cloudflared<\/code> costs about 40 MB of RAM and negligible CPU at 500 requests per second, so any instance listed on <a href=\"https:\/\/virtualserversvps.com\/\">virtualserversvps.com<\/a> will run it comfortably.<\/p>\n\n<h2 class=\"wp-block-heading\">Verdict<\/h2>\n<p class=\"wp-block-paragraph\">As an IPv4 replacement for an HTTP-only service, the tunnel is close to a free lunch: no per-address charge, no inbound port exposure, and decent global latency. It is not a replacement for a routable address in general, and it couples your availability to a third party that you cannot page directly. For a blog, an API, or an admin panel behind Access, use it. For mail, games, UDP, or anything with strict uptime obligations, keep the address.<\/p>\n<p class=\"wp-block-paragraph\">Choose the instance first based on what the workload needs, then decide on the network layer. A well-sized VPS with both options available, as described in the <a href=\"https:\/\/virtualserversvps.com\/\">hosting comparison section<\/a>, gives you room to change your mind without migrating the machine.<\/p>","protected":false},"excerpt":{"rendered":"<p>Public IPv4 addresses are the line item that quietly doubles the price of a small VPS. Some providers charge four to eight dollars per month for a dedicated address, which&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":1,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1559","post","type-post","status-publish","format-standard","hentry","category-vps-guides-tutorials"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Cloudflare Tunnel as a Public IPv4 Replacement on a VPS: Costs, Limits, and Curve Balls - Virtual Servers VPS Blog<\/title>\n<meta name=\"description\" content=\"Public IPv4 addresses are the line item that quietly doubles the price of a small VPS. Some providers charge four to eight dollars per month for a\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/virtualserversvps.com\/blog\/cloudflare-tunnel-alternative-to-public-ipv4-vps\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cloudflare Tunnel as a Public IPv4 Replacement on a VPS: Costs, Limits, and Curve Balls\" \/>\n<meta property=\"og:description\" content=\"Cloudflare Tunnel as a Public IPv4 Replacement on a VPS: Costs, Limits, and Curve Balls\" \/>\n<meta property=\"og:url\" content=\"https:\/\/virtualserversvps.com\/blog\/cloudflare-tunnel-alternative-to-public-ipv4-vps\/\" \/>\n<meta property=\"og:site_name\" content=\"Virtual Servers VPS Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-11-01T02:04:57+00:00\" \/>\n<meta name=\"author\" content=\"Virtual-Servers-Vps-Editor\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Virtual-Servers-Vps-Editor\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/virtualserversvps.com\/blog\/cloudflare-tunnel-alternative-to-public-ipv4-vps\/\",\"url\":\"https:\/\/virtualserversvps.com\/blog\/cloudflare-tunnel-alternative-to-public-ipv4-vps\/\",\"name\":\"Cloudflare Tunnel as a Public IPv4 Replacement on a VPS: Costs, Limits, and Curve Balls - Virtual Servers VPS Blog\",\"isPartOf\":{\"@id\":\"https:\/\/virtualserversvps.com\/blog\/#website\"},\"datePublished\":\"2026-11-01T02:04:57+00:00\",\"author\":{\"@id\":\"https:\/\/virtualserversvps.com\/blog\/#\/schema\/person\/82a299a8284a66ff49f97c74684724a0\"},\"description\":\"Public IPv4 addresses are the line item that quietly doubles the price of a small VPS. Some providers charge four to eight dollars per month for a\",\"breadcrumb\":{\"@id\":\"https:\/\/virtualserversvps.com\/blog\/cloudflare-tunnel-alternative-to-public-ipv4-vps\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/virtualserversvps.com\/blog\/cloudflare-tunnel-alternative-to-public-ipv4-vps\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/virtualserversvps.com\/blog\/cloudflare-tunnel-alternative-to-public-ipv4-vps\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/virtualserversvps.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cloudflare Tunnel as a Public IPv4 Replacement on a VPS: Costs, Limits, and Curve Balls\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/virtualserversvps.com\/blog\/#website\",\"url\":\"https:\/\/virtualserversvps.com\/blog\/\",\"name\":\"Virtual Servers VPS Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/virtualserversvps.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/virtualserversvps.com\/blog\/#\/schema\/person\/82a299a8284a66ff49f97c74684724a0\",\"name\":\"Virtual-Servers-Vps-Editor\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/virtualserversvps.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d820b15f1cd028e97610d9adf536df7be5cb6423869967037d468d5355fa003f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d820b15f1cd028e97610d9adf536df7be5cb6423869967037d468d5355fa003f?s=96&d=mm&r=g\",\"caption\":\"Virtual-Servers-Vps-Editor\"},\"sameAs\":[\"https:\/\/virtualserversvps.com\/blog\"],\"url\":\"https:\/\/virtualserversvps.com\/blog\/author\/virtualserversvps\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Cloudflare Tunnel as a Public IPv4 Replacement on a VPS: Costs, Limits, and Curve Balls - Virtual Servers VPS Blog","description":"Public IPv4 addresses are the line item that quietly doubles the price of a small VPS. Some providers charge four to eight dollars per month for a","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/virtualserversvps.com\/blog\/cloudflare-tunnel-alternative-to-public-ipv4-vps\/","og_locale":"en_US","og_type":"article","og_title":"Cloudflare Tunnel as a Public IPv4 Replacement on a VPS: Costs, Limits, and Curve Balls","og_description":"Cloudflare Tunnel as a Public IPv4 Replacement on a VPS: Costs, Limits, and Curve Balls","og_url":"https:\/\/virtualserversvps.com\/blog\/cloudflare-tunnel-alternative-to-public-ipv4-vps\/","og_site_name":"Virtual Servers VPS Blog","article_published_time":"2026-11-01T02:04:57+00:00","author":"Virtual-Servers-Vps-Editor","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Virtual-Servers-Vps-Editor","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/virtualserversvps.com\/blog\/cloudflare-tunnel-alternative-to-public-ipv4-vps\/","url":"https:\/\/virtualserversvps.com\/blog\/cloudflare-tunnel-alternative-to-public-ipv4-vps\/","name":"Cloudflare Tunnel as a Public IPv4 Replacement on a VPS: Costs, Limits, and Curve Balls - Virtual Servers VPS Blog","isPartOf":{"@id":"https:\/\/virtualserversvps.com\/blog\/#website"},"datePublished":"2026-11-01T02:04:57+00:00","author":{"@id":"https:\/\/virtualserversvps.com\/blog\/#\/schema\/person\/82a299a8284a66ff49f97c74684724a0"},"description":"Public IPv4 addresses are the line item that quietly doubles the price of a small VPS. Some providers charge four to eight dollars per month for a","breadcrumb":{"@id":"https:\/\/virtualserversvps.com\/blog\/cloudflare-tunnel-alternative-to-public-ipv4-vps\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/virtualserversvps.com\/blog\/cloudflare-tunnel-alternative-to-public-ipv4-vps\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/virtualserversvps.com\/blog\/cloudflare-tunnel-alternative-to-public-ipv4-vps\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/virtualserversvps.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Cloudflare Tunnel as a Public IPv4 Replacement on a VPS: Costs, Limits, and Curve Balls"}]},{"@type":"WebSite","@id":"https:\/\/virtualserversvps.com\/blog\/#website","url":"https:\/\/virtualserversvps.com\/blog\/","name":"Virtual Servers VPS Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/virtualserversvps.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/virtualserversvps.com\/blog\/#\/schema\/person\/82a299a8284a66ff49f97c74684724a0","name":"Virtual-Servers-Vps-Editor","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/virtualserversvps.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d820b15f1cd028e97610d9adf536df7be5cb6423869967037d468d5355fa003f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d820b15f1cd028e97610d9adf536df7be5cb6423869967037d468d5355fa003f?s=96&d=mm&r=g","caption":"Virtual-Servers-Vps-Editor"},"sameAs":["https:\/\/virtualserversvps.com\/blog"],"url":"https:\/\/virtualserversvps.com\/blog\/author\/virtualserversvps\/"}]}},"_links":{"self":[{"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/posts\/1559","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/comments?post=1559"}],"version-history":[{"count":1,"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/posts\/1559\/revisions"}],"predecessor-version":[{"id":1562,"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/posts\/1559\/revisions\/1562"}],"wp:attachment":[{"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/media?parent=1559"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/categories?post=1559"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/tags?post=1559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}