Enable Dual-Stack On IPv4/IPv6-Only Servers with Cloudflare Warp

⚠️ This Article applies Only To IPv4-Only Or IPv6-Only Network To Enable Dual-Stack Access
IF You On A Native IPv4/IPv6 Dual-Stack Network That Wants To Proxy All Outgoing Traffic Through WARP You Need This

Install Application

apt install wireguard-tools resolvconf && curl -fsSL git.io/wgcf.sh | sudo bash

Registe WARP

wgcf register

If you have WARP+ Account
WGCF_LICENSE_KEY="123412341234" wgcf update

Generate Configuration

wgcf generate

Setup Configuration

cp wgcf-profile.conf /etc/wireguard/warp.conf
nano /etc/wireguard/warp.conf

1. WireGuard Out-going Connections

Endpoint = engage.cloudflareclient.com:2408
  • For IPv4-Only Servers
    Change Endpoint to IPv4 Address 162.159.192.1
  • For IPv6-Only Servers
    Change Endpoint to IPv6 Address 2606:4700:d0::a29f:c001

2. Disable WireGuard Automatic Routing Table

[Interface]
...
Table = off
...

3. Default IPv4/IPv6 Routing Table

  • For IPv4-Only Servers
    PostUP = ip -6 route add ::/0 dev warp table main
    PostDown = ip -6 route delete ::/0 dev warp table main
  • For IPv6-Only Servers
    PostUP = ip route add 0.0.0.0/0 dev warp table main
    PostDown = ip route delete 0.0.0.0/0 dev warp table main

4. Change DNS Resolver

DNS = 8.8.8.8,2001:4860:4860::8888,1.1.1.1

5. Change MTU Size

⚠️ MTU value bigger will Increase speed, but also cause problem in some application

MTU = 1350

6. NAT and Firewall Traversal Persistence [wireguard-quickstart]

⚠️ If You Behind NET Like Some AWS/Oracle Cloud Server

[Interface]
...
PersistentKeepalive = 25

7. Add Packet Scheduler To The Network

⚠️ May Cause Some Sideffect

[Interface]
...
PostUP = tc qdisc replace dev warp root fq

Example Configuration File

[Interface]
PrivateKey = ABsEBcMj78e8cvOX09m8W9p9LjcLwPZa8Y8gFnHnlHY=
Address = 172.16.0.2/32
Address = 2606:4700:110:8f8f:31ae:8e0:1332:e145/128
DNS = 8.8.8.8,2001:4860:4860::8888,1.1.1.1
MTU = 1350
Table = off
PostUP = tc qdisc replace dev warp root fq
PostUP = ip -6 route add ::/0 dev warp table main
PostDown = ip -6 route delete ::/0 dev warp table main
[Peer]
PublicKey = bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=
AllowedIPs = 0.0.0.0/0
AllowedIPs = ::/0
Endpoint = 162.159.192.1:2408

Test Of Functioning

  • Star Conncection
    wg-quick up warp
  • Ping Network
    ping 1.1.1.1
    ping6 2606:4700:4700::1111
  • Stop Conncection
    wg-quick down warp

Registe As System Service

systemctl start wg-quick@warp
systemctl enable wg-quick@warp

Leave a Comment