Deploy Cloudflare WARP on VPS: Add Dual-Stack (IPv4 + IPv6) Support to Single-Stack Servers

โ„น๏ธ

Disclosure: This article may contain affiliate links. If you purchase through these links, we may earn a small commission at no additional cost to you. All reviews are independently written and opinions remain unbiased.Learn more โ†’

๐Ÿš€ Managed Cloud Hosting โ€” Try Cloudways for Free Trial(No Credit Card)! Get Started โ†’

๐Ÿ’ก Summary

  • For VPS users, the greatest practical value of Cloudflare WARP lies not in bypassing restrictions, but in resolving network limitations on single-stack servers.
  • It enables IPv6 egress on IPv4-only VPS and adds IPv4 access for IPv6-only servers.
  • This guide walks you through the full WARP deployment process on VPS, along with key limitations you need to know beforehand.
๐Ÿ’ก
๐Ÿ’ก

DigitalOcean โ€” Editor's Pick

Get the best price through our exclusive link and support our reviews.

Explore DigitalOcean โ†’

Cloudflare WARP is built on the WireGuard protocol and first gained widespread attention as a desktop client. For VPS users, though, its practical value is more specific: it fills network gaps. A lot of budget VPS plans come with IPv4 only and no IPv6, or the reverse โ€” cheap European servers that are IPv6-only. WARP handles both directions cleanly. It also tends to reduce the Google CAPTCHA friction that data center IPs reliably trigger. Before diving into the setup, a few limitations are worth being clear about upfront.


What You Should Know Before Deploying

WARP does not give you a dedicated public IP. It routes through Cloudflare's NAT network, with exit addresses assigned by Cloudflare and shared across many users. This makes WARP useful as an outbound traffic exit โ€” and only that. It cannot function as a server entry point, and you cannot open ports through it. If you need a publicly accessible address for incoming connections, WARP doesn't solve that problem.

Its unblocking capability has declined significantly. A few years ago, WARP could reliably unlock Netflix, ChatGPT, and similar services. Most of those platforms have since identified and blocked Cloudflare WARP exit IP ranges. Don't go into this expecting a streaming unlocker โ€” treat it as a supplementary network tool, not a primary solution. Popular exit regions like the US, Japan, and Singapore also see noticeable speed degradation during peak hours, which matters for latency-sensitive applications.


When WARP Actually Makes Sense on a VPS

IPv6-only VPS needing IPv4 access. Providers like Hetzner, BuyVM, and AlphaVPS offer budget plans that are pure IPv6. Accessing IPv4 services defaults to NAT64, which creates compatibility issues with certain applications. Adding WARP gives you a proper IPv4 exit with much better compatibility.

IPv4-only VPS needing IPv6 capability. Some budget VPS plans don't include public IPv6. If you're testing dual-stack environments or need IPv6 access for development purposes, WARP fills that gap quickly without additional configuration complexity.

Improving Google service access. Data center IPs almost always trigger Google's bot verification. Routing through Cloudflare's exit via WARP tends to produce a smoother experience โ€” useful if you're running scraping workflows or regularly accessing Google Scholar.


Deployment Steps (Debian/Ubuntu)

Step 1: Install WireGuard

apt update && apt install wireguard -y

Step 2: Install wgcf

The git.io shortlink service shut down at the end of 2022, so installation commands using those links will fail. Download the binary directly from the wgcf GitHub releases page:

# Check the latest version number and replace accordingly
wget https://github.com/ViRb3/wgcf/releases/download/v2.2.25/wgcf_2.2.25_linux_amd64
chmod +x wgcf_2.2.25_linux_amd64
mv wgcf_2.2.25_linux_amd64 /usr/local/bin/wgcf

Confirm the current latest version at github.com/ViRb3/wgcf/releases. ARM-based VPS instances need the linux_arm64 build instead.

Step 3: Register and generate configuration

wgcf register
wgcf generate

This produces a wgcf-profile.conf file. Edit it based on your specific use case before proceeding.


Configuration by Scenario

IPv4 VPS โ€” adding IPv6 outbound:

Open wgcf-profile.conf, locate the [Peer] section, and update these two lines:

AllowedIPs = ::/0
Endpoint = 162.159.192.1:2408

With this configuration, IPv6 traffic exits through WARP while IPv4 traffic continues through the original network interface. The two don't interfere with each other.

IPv6-only VPS โ€” adding IPv4 outbound:

AllowedIPs = 0.0.0.0/0
Endpoint = [2606:4700:d0::a29f:c001]:2408

The endpoint here uses an IPv6-format Cloudflare address โ€” necessary because the server only has IPv6 connectivity and must use an IPv6 address to establish the WireGuard tunnel.


Starting WARP and Verifying

cp wgcf-profile.conf /etc/wireguard/wgcf.conf
wg-quick up wgcf

Verify the tunnel is working:

# Verify IPv4 exit
curl -4 ip.sb

# Verify IPv6 exit
curl -6 ip.sb

If the returned IP address belongs to Cloudflare's network range (confirm with whois), traffic in that direction is routing through WARP correctly.

Enable on boot:

systemctl enable wg-quick@wgcf
systemctl start wg-quick@wgcf

Troubleshooting Common Issues

wg-quick up throws RTNETLINK answers: Operation not supported: The kernel WireGuard module isn't loaded, or the kernel version is below 5.6. OpenVZ VPS instances cannot run WireGuard at all โ€” confirm your VPS uses KVM or LXC virtualization.

Network drops after the tunnel comes up: Almost certainly an AllowedIPs misconfiguration that's redirecting the default route and dropping your SSH connection. Set AllowedIPs to cover only the traffic direction you actually need โ€” IPv4-only or IPv6-only. Don't use 0.0.0.0/0, ::/0 unless you fully understand the routing implications.

curl ip.sb still returns the original IP: Check that AllowedIPs is correctly set, then run wg show and look at the latest handshake field. If it's not updating, the connection hasn't established โ€” likely because UDP port 2408 is being blocked by a firewall.


Which VPS Providers Work Best With WARP

DigitalOcean and Vultr have stable network infrastructure with solid WireGuard performance and no compatibility issues. Both are good choices when you want to preserve an existing IPv4 entry point while adding IPv6 outbound capability via WARP.

Hetzner's IPv6-only plans paired with WARP for IPv4 outbound is one of the better price-performance combinations available. Hetzner's network quality is strong and pricing is aggressive โ€” WARP handles the IPv4 gap. This combination works well for internal tooling, Docker services, and AI application deployments that don't need a public IPv4 entry point.

WARP is a genuinely useful tool to have in the toolkit. For dual-stack completion and reducing Google service friction, the practical value is clear. Just don't overestimate what it can do โ€” treat it as a network layer supplement, not the core of your infrastructure.

๐Ÿš€

Ready for DigitalOcean? Now is the perfect time

Use our exclusive link for the best price โ€” and help support our content.

โ“ Frequently Asked Questions

โ† Previous
HostArmada vs Hostinger (2026): Which one to Choose for WordPress&WooCommerce Websites

๐Ÿท๏ธ Related Keywords

๐Ÿ’ฌ Comments

150 characters left

No comments yet. Be the first!

โ† Back to Articles

VPS Rankings specializes in VPS selection, featuring provider reviews, rankings, practical tutorials, performance benchmarks and exclusive deals. Everything you need for research, comparison and purchase is available in one place.We cover budget web hosting and overseas cloud servers, enabling straightforward comparisons of specs, routing and pricing across providers. We also track CN2 GIA, low-latency Asian routes and other optimized solutions for China-facing networks and cross-border businesses. Our regularly updated VPS recommendations and practical guides help you make quick, well-informed decisions.