@fredlackey/devutils 0.0.14 → 0.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1047 @@
1
+ # Installing Cloudflare WARP
2
+
3
+ ## Overview
4
+
5
+ Cloudflare WARP is a VPN client that encrypts all traffic leaving your device and routes it through Cloudflare's global network. Built on the WireGuard protocol, WARP provides fast, secure connections while protecting your privacy from ISP snooping and network-level tracking. WARP operates in several modes:
6
+
7
+ - **WARP mode** (default): Encrypts all traffic (including DNS) and routes it through Cloudflare's network
8
+ - **1.1.1.1 mode**: Only encrypts DNS traffic to Cloudflare's 1.1.1.1 resolver
9
+ - **WARP+ mode**: Premium tier with optimized routing through Cloudflare's Argo network for improved performance
10
+
11
+ WARP is available for personal use (free) and as part of Cloudflare Zero Trust for enterprise deployments. This guide covers the personal/consumer installation.
12
+
13
+ ## Prerequisites
14
+
15
+ Before installing Cloudflare WARP on any platform, ensure:
16
+
17
+ 1. **Internet connectivity** - Required to download packages and register with Cloudflare
18
+ 2. **Administrative privileges** - Required for system-wide installation and network configuration
19
+ 3. **No conflicting VPN software** - Uninstall or disable other VPN clients that may interfere with WARP
20
+
21
+ **Important**: Cloudflare recommends uninstalling any existing third-party VPN software before installing WARP. VPN software in a disconnected or disabled state can still interfere with the WARP client.
22
+
23
+ ## Dependencies
24
+
25
+ ### macOS (Homebrew)
26
+ - **Required:**
27
+ - `Homebrew` - Install via `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`
28
+ - **Optional:** None
29
+ - **Auto-installed:** None (WARP is a complete package)
30
+
31
+ ### Ubuntu (APT/Snap)
32
+ - **Required:**
33
+ - `curl` - Install via `sudo apt-get install -y curl`
34
+ - `gpg` - Install via `sudo apt-get install -y gpg` (usually pre-installed)
35
+ - `lsb-release` - Install via `sudo apt-get install -y lsb-release`
36
+ - **Optional:** None
37
+ - **Auto-installed:**
38
+ - GPG signing key (added during repository setup)
39
+ - APT repository configuration
40
+ - `cloudflare-warp` package dependencies (handled by APT)
41
+
42
+ ### Raspberry Pi OS (APT/Snap)
43
+ - **Required:** None (WARP is not officially supported on ARM Linux)
44
+ - **Note:** Cloudflare WARP client is not available for ARM architecture (neither 32-bit nor 64-bit). See the Raspberry Pi OS section for alternative approaches.
45
+
46
+ ### Amazon Linux (DNF/YUM)
47
+ - **Required:**
48
+ - `curl` - Install via `sudo dnf install -y curl` or `sudo yum install -y curl`
49
+ - **Optional:** None
50
+ - **Auto-installed:**
51
+ - Repository configuration (added via .repo file)
52
+ - `cloudflare-warp` package dependencies (handled by DNF/YUM)
53
+
54
+ ### Windows (Chocolatey/winget)
55
+ - **Required:**
56
+ - `Chocolatey` - Install via PowerShell: `Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))`
57
+ - **Optional:**
58
+ - `winget` - Alternative package manager (pre-installed on Windows 11 and recent Windows 10)
59
+ - **Auto-installed:** None (WARP is a complete package)
60
+
61
+ ### Git Bash (Manual/Portable)
62
+ - **Required:**
63
+ - `Chocolatey` on Windows host - Install via PowerShell (see Windows section above)
64
+ - Cloudflare WARP installed on Windows host (Git Bash inherits Windows PATH)
65
+ - **Optional:** None
66
+ - **Auto-installed:** None (Git Bash uses the Windows host's WARP installation)
67
+
68
+ ## Platform-Specific Installation
69
+
70
+ ### macOS (Homebrew)
71
+
72
+ #### Prerequisites
73
+
74
+ - macOS 10.15 (Catalina) or later
75
+ - Homebrew package manager installed
76
+ - Apple Silicon (M1/M2/M3/M4) or Intel processor
77
+
78
+ If Homebrew is not installed, install it first:
79
+
80
+ ```bash
81
+ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
82
+ ```
83
+
84
+ #### Installation Steps
85
+
86
+ Run the following command to install Cloudflare WARP:
87
+
88
+ ```bash
89
+ brew install --quiet --cask cloudflare-warp
90
+ ```
91
+
92
+ The `--quiet` flag suppresses non-essential output, and `--cask` specifies the graphical application (WARP is a GUI application on macOS).
93
+
94
+ After installation, launch Cloudflare WARP from the Applications folder or via command line:
95
+
96
+ ```bash
97
+ open -a "Cloudflare WARP"
98
+ ```
99
+
100
+ The WARP icon will appear in your menu bar. Click it to access settings and enable WARP.
101
+
102
+ **Note**: On first launch, WARP will request permission to add VPN configurations. Click "Allow" when prompted.
103
+
104
+ #### Verification
105
+
106
+ Confirm the installation succeeded by checking the application is running (look for the WARP icon in the menu bar).
107
+
108
+ Verify WARP is connected by running:
109
+
110
+ ```bash
111
+ curl -s https://www.cloudflare.com/cdn-cgi/trace/ | grep warp
112
+ ```
113
+
114
+ Expected output when WARP is active:
115
+
116
+ ```
117
+ warp=on
118
+ ```
119
+
120
+ Alternatively, use the warp-cli (located in the application bundle):
121
+
122
+ ```bash
123
+ /Applications/Cloudflare\ WARP.app/Contents/Resources/warp-cli status
124
+ ```
125
+
126
+ #### Troubleshooting
127
+
128
+ **Problem**: WARP icon does not appear in menu bar
129
+
130
+ **Solution**: Ensure WARP is running. Launch it manually:
131
+
132
+ ```bash
133
+ open -a "Cloudflare WARP"
134
+ ```
135
+
136
+ **Problem**: "VPN configuration" permission prompt keeps appearing
137
+
138
+ **Solution**: Grant the permission in System Preferences > Privacy & Security > Privacy > VPN Configurations. If issues persist, remove and reinstall WARP:
139
+
140
+ ```bash
141
+ brew uninstall --cask cloudflare-warp
142
+ brew install --quiet --cask cloudflare-warp
143
+ ```
144
+
145
+ **Problem**: warp-cli command not found
146
+
147
+ **Solution**: The CLI is bundled inside the application. Use the full path:
148
+
149
+ ```bash
150
+ /Applications/Cloudflare\ WARP.app/Contents/Resources/warp-cli --help
151
+ ```
152
+
153
+ Or create an alias in your shell profile:
154
+
155
+ ```bash
156
+ echo 'alias warp-cli="/Applications/Cloudflare\ WARP.app/Contents/Resources/warp-cli"' >> ~/.zshrc
157
+ source ~/.zshrc
158
+ ```
159
+
160
+ **Problem**: Conflict with other VPN applications
161
+
162
+ **Solution**: Disable or uninstall other VPN software. WARP and other VPNs often cannot run simultaneously.
163
+
164
+ ---
165
+
166
+ ### Ubuntu/Debian (APT)
167
+
168
+ #### Prerequisites
169
+
170
+ - Ubuntu 20.04 (Focal), 22.04 (Jammy), or 24.04 (Noble), or Debian 10 (Buster) through 13 (Trixie)
171
+ - 64-bit (x86_64/amd64) architecture only (ARM is not supported)
172
+ - sudo privileges
173
+
174
+ Verify your architecture:
175
+
176
+ ```bash
177
+ uname -m
178
+ ```
179
+
180
+ Expected output: `x86_64`. If you see `aarch64` or `armv7l`, WARP is not supported on your system.
181
+
182
+ #### Installation Steps
183
+
184
+ **Step 1: Add the Cloudflare GPG key**
185
+
186
+ ```bash
187
+ curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg
188
+ ```
189
+
190
+ **Step 2: Add the Cloudflare repository**
191
+
192
+ ```bash
193
+ echo "deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflare-client.list
194
+ ```
195
+
196
+ **Step 3: Update package lists and install WARP**
197
+
198
+ ```bash
199
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
200
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y cloudflare-warp
201
+ ```
202
+
203
+ **Step 4: Register and connect**
204
+
205
+ Register your device with Cloudflare:
206
+
207
+ ```bash
208
+ warp-cli registration new
209
+ ```
210
+
211
+ Connect to WARP:
212
+
213
+ ```bash
214
+ warp-cli connect
215
+ ```
216
+
217
+ #### Verification
218
+
219
+ Confirm the installation succeeded:
220
+
221
+ ```bash
222
+ warp-cli --version
223
+ ```
224
+
225
+ Check the connection status:
226
+
227
+ ```bash
228
+ warp-cli status
229
+ ```
230
+
231
+ Expected output when connected:
232
+
233
+ ```
234
+ Status update: Connected
235
+ ```
236
+
237
+ Verify WARP is routing your traffic:
238
+
239
+ ```bash
240
+ curl -s https://www.cloudflare.com/cdn-cgi/trace/ | grep warp
241
+ ```
242
+
243
+ Expected output:
244
+
245
+ ```
246
+ warp=on
247
+ ```
248
+
249
+ #### Troubleshooting
250
+
251
+ **Problem**: `E: Unable to locate package cloudflare-warp`
252
+
253
+ **Solution**: The repository was not added correctly or your distribution is not supported. Verify the repository file:
254
+
255
+ ```bash
256
+ cat /etc/apt/sources.list.d/cloudflare-client.list
257
+ ```
258
+
259
+ If empty or incorrect, repeat Steps 1 and 2.
260
+
261
+ **Problem**: GPG key errors
262
+
263
+ **Solution**: The GPG key may have expired or was not installed correctly. Re-add the key:
264
+
265
+ ```bash
266
+ curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg
267
+ ```
268
+
269
+ **Note**: As of 2025, the Cloudflare public key was updated. If you installed the key before September 2025, you must re-run the GPG key installation command.
270
+
271
+ **Problem**: `warp-cli: command not found` after installation
272
+
273
+ **Solution**: The warp-svc service may not be running. Start it:
274
+
275
+ ```bash
276
+ sudo systemctl enable --now warp-svc
277
+ ```
278
+
279
+ **Problem**: Registration fails
280
+
281
+ **Solution**: Ensure you have internet connectivity and the warp-svc service is running:
282
+
283
+ ```bash
284
+ sudo systemctl status warp-svc
285
+ ```
286
+
287
+ If the service is not running, start it:
288
+
289
+ ```bash
290
+ sudo systemctl start warp-svc
291
+ ```
292
+
293
+ **Problem**: DNS resolution issues after enabling WARP
294
+
295
+ **Solution**: WARP modifies DNS settings. If you experience issues, you can check your current DNS:
296
+
297
+ ```bash
298
+ warp-cli dns log
299
+ ```
300
+
301
+ ---
302
+
303
+ ### Raspberry Pi OS (APT)
304
+
305
+ #### Prerequisites
306
+
307
+ **Important**: Cloudflare WARP client is NOT officially supported on ARM Linux architectures. This includes all Raspberry Pi devices running Raspberry Pi OS (both 32-bit and 64-bit).
308
+
309
+ The official WARP client packages are only available for:
310
+ - x86_64 (amd64) architecture on Linux
311
+
312
+ #### Alternative Approach: Using WGCF with WireGuard
313
+
314
+ If you need WARP functionality on Raspberry Pi, you can use an unofficial workaround that combines `wgcf` (a third-party tool) with WireGuard:
315
+
316
+ **Step 1: Install WireGuard**
317
+
318
+ ```bash
319
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
320
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y wireguard wireguard-tools
321
+ ```
322
+
323
+ **Step 2: Download and install wgcf**
324
+
325
+ Determine your architecture:
326
+
327
+ ```bash
328
+ uname -m
329
+ ```
330
+
331
+ Download the appropriate wgcf binary:
332
+
333
+ ```bash
334
+ # For 64-bit Raspberry Pi (aarch64)
335
+ curl -fsSL -o wgcf https://github.com/ViRb3/wgcf/releases/download/v2.2.22/wgcf_2.2.22_linux_arm64
336
+ chmod +x wgcf
337
+ sudo mv wgcf /usr/local/bin/
338
+ ```
339
+
340
+ ```bash
341
+ # For 32-bit Raspberry Pi (armv7l)
342
+ curl -fsSL -o wgcf https://github.com/ViRb3/wgcf/releases/download/v2.2.22/wgcf_2.2.22_linux_armv7
343
+ chmod +x wgcf
344
+ sudo mv wgcf /usr/local/bin/
345
+ ```
346
+
347
+ **Step 3: Register with Cloudflare WARP**
348
+
349
+ ```bash
350
+ wgcf register
351
+ ```
352
+
353
+ This creates a `wgcf-account.toml` file with your registration.
354
+
355
+ **Step 4: Generate WireGuard configuration**
356
+
357
+ ```bash
358
+ wgcf generate
359
+ ```
360
+
361
+ This creates a `wgcf-profile.conf` file.
362
+
363
+ **Step 5: Configure WireGuard**
364
+
365
+ ```bash
366
+ sudo cp wgcf-profile.conf /etc/wireguard/wgcf.conf
367
+ ```
368
+
369
+ **Step 6: Connect to WARP via WireGuard**
370
+
371
+ ```bash
372
+ sudo wg-quick up wgcf
373
+ ```
374
+
375
+ To disconnect:
376
+
377
+ ```bash
378
+ sudo wg-quick down wgcf
379
+ ```
380
+
381
+ To enable automatic connection at boot:
382
+
383
+ ```bash
384
+ sudo systemctl enable wg-quick@wgcf
385
+ ```
386
+
387
+ #### Verification
388
+
389
+ Check the WireGuard interface status:
390
+
391
+ ```bash
392
+ sudo wg show
393
+ ```
394
+
395
+ Verify WARP is active:
396
+
397
+ ```bash
398
+ curl -s https://www.cloudflare.com/cdn-cgi/trace/ | grep warp
399
+ ```
400
+
401
+ Expected output:
402
+
403
+ ```
404
+ warp=on
405
+ ```
406
+
407
+ #### Troubleshooting
408
+
409
+ **Problem**: WireGuard fails to start with kernel errors
410
+
411
+ **Solution**: Ensure the WireGuard kernel module is loaded:
412
+
413
+ ```bash
414
+ sudo modprobe wireguard
415
+ ```
416
+
417
+ If the module is not available, you may need to update your kernel:
418
+
419
+ ```bash
420
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
421
+ sudo DEBIAN_FRONTEND=noninteractive apt-get upgrade -y
422
+ sudo reboot
423
+ ```
424
+
425
+ **Problem**: DNS resolution fails when connected
426
+
427
+ **Solution**: The wgcf-profile.conf may override your DNS. Edit `/etc/wireguard/wgcf.conf` and adjust the DNS line if needed.
428
+
429
+ **Disclaimer**: This workaround uses third-party tools and is not officially supported by Cloudflare. Use at your own risk.
430
+
431
+ ---
432
+
433
+ ### Amazon Linux/RHEL (DNF/YUM)
434
+
435
+ #### Prerequisites
436
+
437
+ - Amazon Linux 2023 (AL2023), RHEL 8, CentOS 8, or compatible distributions
438
+ - 64-bit (x86_64) architecture only
439
+ - sudo privileges
440
+
441
+ **Note**: Amazon Linux 2 (AL2) may work but is not officially listed as supported. Amazon Linux 2023 uses DNF; RHEL 8/CentOS 8 can use either DNF or YUM.
442
+
443
+ #### Installation Steps
444
+
445
+ **Step 1: Add the Cloudflare repository**
446
+
447
+ ```bash
448
+ curl -fsSl https://pkg.cloudflareclient.com/cloudflare-warp-ascii.repo | sudo tee /etc/yum.repos.d/cloudflare-warp.repo
449
+ ```
450
+
451
+ **Step 2: Update the package cache and install WARP**
452
+
453
+ For DNF-based systems (Amazon Linux 2023, RHEL 8+):
454
+
455
+ ```bash
456
+ sudo dnf update -y
457
+ sudo dnf install -y cloudflare-warp
458
+ ```
459
+
460
+ For YUM-based systems:
461
+
462
+ ```bash
463
+ sudo yum update -y
464
+ sudo yum install -y cloudflare-warp
465
+ ```
466
+
467
+ **Step 3: Enable and start the WARP service**
468
+
469
+ ```bash
470
+ sudo systemctl enable --now warp-svc
471
+ ```
472
+
473
+ **Step 4: Register and connect**
474
+
475
+ Register your device with Cloudflare:
476
+
477
+ ```bash
478
+ warp-cli registration new
479
+ ```
480
+
481
+ Connect to WARP:
482
+
483
+ ```bash
484
+ warp-cli connect
485
+ ```
486
+
487
+ #### Verification
488
+
489
+ Confirm the installation succeeded:
490
+
491
+ ```bash
492
+ warp-cli --version
493
+ ```
494
+
495
+ Check the connection status:
496
+
497
+ ```bash
498
+ warp-cli status
499
+ ```
500
+
501
+ Expected output when connected:
502
+
503
+ ```
504
+ Status update: Connected
505
+ ```
506
+
507
+ Verify WARP is routing your traffic:
508
+
509
+ ```bash
510
+ curl -s https://www.cloudflare.com/cdn-cgi/trace/ | grep warp
511
+ ```
512
+
513
+ Expected output:
514
+
515
+ ```
516
+ warp=on
517
+ ```
518
+
519
+ #### Troubleshooting
520
+
521
+ **Problem**: `No package cloudflare-warp available`
522
+
523
+ **Solution**: The repository was not added correctly. Verify it exists:
524
+
525
+ ```bash
526
+ ls /etc/yum.repos.d/ | grep cloudflare
527
+ cat /etc/yum.repos.d/cloudflare-warp.repo
528
+ ```
529
+
530
+ Re-add the repository if missing.
531
+
532
+ **Problem**: GPG key verification fails
533
+
534
+ **Solution**: Import the GPG key manually:
535
+
536
+ ```bash
537
+ sudo rpm --import https://pkg.cloudflareclient.com/pubkey.gpg
538
+ ```
539
+
540
+ If you previously had an older key installed, remove it first:
541
+
542
+ ```bash
543
+ sudo rpm -e 'gpg-pubkey(4fa1c3ba-61abda35)' 2>/dev/null || true
544
+ sudo rpm --import https://pkg.cloudflareclient.com/pubkey.gpg
545
+ ```
546
+
547
+ **Problem**: warp-svc service fails to start
548
+
549
+ **Solution**: Check the service status and logs:
550
+
551
+ ```bash
552
+ sudo systemctl status warp-svc
553
+ sudo journalctl -u warp-svc -n 50
554
+ ```
555
+
556
+ **Problem**: SELinux blocking WARP
557
+
558
+ **Solution**: If SELinux is in enforcing mode and blocking WARP, you can temporarily set it to permissive for testing:
559
+
560
+ ```bash
561
+ sudo setenforce 0
562
+ ```
563
+
564
+ For a permanent solution, create an SELinux policy for WARP (consult Cloudflare documentation for details).
565
+
566
+ ---
567
+
568
+ ### Windows (Chocolatey)
569
+
570
+ #### Prerequisites
571
+
572
+ - Windows 10 version 1909 or later (64-bit)
573
+ - Administrator PowerShell or Command Prompt
574
+ - Chocolatey package manager installed
575
+
576
+ If Chocolatey is not installed, install it first by running this command in an Administrator PowerShell:
577
+
578
+ ```powershell
579
+ Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
580
+ ```
581
+
582
+ #### Installation Steps
583
+
584
+ Run the following command in an Administrator PowerShell or Command Prompt:
585
+
586
+ ```powershell
587
+ choco install warp -y
588
+ ```
589
+
590
+ The `-y` flag automatically confirms all prompts, enabling fully non-interactive installation.
591
+
592
+ After installation, Cloudflare WARP will be available in your Start Menu and system tray. Launch it to complete the initial setup.
593
+
594
+ #### Alternative: winget Installation
595
+
596
+ If you prefer winget over Chocolatey:
597
+
598
+ ```powershell
599
+ winget install --id Cloudflare.Warp --silent --accept-package-agreements --accept-source-agreements
600
+ ```
601
+
602
+ #### Verification
603
+
604
+ Open a new Command Prompt or PowerShell window, then confirm WARP is running by checking the system tray for the WARP icon (a stylized "1").
605
+
606
+ Verify WARP is active:
607
+
608
+ ```powershell
609
+ curl -s https://www.cloudflare.com/cdn-cgi/trace/ | findstr warp
610
+ ```
611
+
612
+ Expected output when WARP is enabled:
613
+
614
+ ```
615
+ warp=on
616
+ ```
617
+
618
+ #### File Locations
619
+
620
+ - **Application**: `C:\Program Files\Cloudflare\Cloudflare WARP\Cloudflare WARP.exe`
621
+ - **Service**: `C:\Program Files\Cloudflare\Cloudflare WARP\warp-svc.exe`
622
+ - **Service Logs**: `C:\ProgramData\Cloudflare`
623
+ - **GUI Logs**: `C:\Users\<username>\AppData\Local\Cloudflare`
624
+
625
+ #### Troubleshooting
626
+
627
+ **Problem**: WARP fails to install with WebView error
628
+
629
+ **Solution**: This is a known issue with some winget installations. Use Chocolatey instead:
630
+
631
+ ```powershell
632
+ choco install warp -y
633
+ ```
634
+
635
+ **Problem**: WARP icon does not appear in system tray
636
+
637
+ **Solution**: The WARP application may not have started. Launch it from the Start Menu:
638
+
639
+ 1. Open Start Menu
640
+ 2. Search for "Cloudflare WARP"
641
+ 3. Click to launch
642
+
643
+ **Problem**: "Cannot start service CloudflareWARP" error
644
+
645
+ **Solution**: The WARP service may have failed to start. Restart it:
646
+
647
+ ```powershell
648
+ Restart-Service CloudflareWARP
649
+ ```
650
+
651
+ Or from Services (services.msc), find "Cloudflare WARP" and restart it.
652
+
653
+ **Problem**: Windows 11 24H2 performance issues (mouse lag, audio crackling)
654
+
655
+ **Solution**: This is a known Microsoft regression. Update to Windows 11 24H2 version KB5060829 or higher.
656
+
657
+ **Problem**: Conflict with other VPN software
658
+
659
+ **Solution**: Uninstall or disable other VPN clients before using WARP. Check Settings > Apps for VPN software and remove it.
660
+
661
+ ---
662
+
663
+ ### WSL (Ubuntu)
664
+
665
+ #### Prerequisites
666
+
667
+ - Windows 10 version 2004 or later, or Windows 11
668
+ - WSL 2 installed with Ubuntu distribution
669
+ - WARP installed on the Windows host (recommended)
670
+
671
+ **Important**: The recommended approach is to install WARP on the Windows host, not inside WSL. When WARP runs on Windows, WSL 2 traffic is automatically protected.
672
+
673
+ #### Recommended Approach: Windows Host Installation
674
+
675
+ Install WARP on Windows using Chocolatey (see Windows section):
676
+
677
+ ```powershell
678
+ choco install warp -y
679
+ ```
680
+
681
+ WSL 2 traffic will be routed through the Windows WARP client automatically.
682
+
683
+ #### Alternative: WARP Inside WSL (Not Recommended)
684
+
685
+ If you need WARP running directly inside WSL (not recommended due to networking complexities), follow these steps.
686
+
687
+ **Known Limitation**: Installing WARP inside WSL 2 has known issues because Windows WARP uses WinDivert which operates in Windows user-land, and WSL 2's networking bypasses it.
688
+
689
+ **Step 1: Install WARP in WSL Ubuntu**
690
+
691
+ ```bash
692
+ curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg
693
+
694
+ echo "deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflare-client.list
695
+
696
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
697
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y cloudflare-warp
698
+ ```
699
+
700
+ **Step 2: Start the WARP service manually**
701
+
702
+ WSL does not use systemd by default, so start warp-svc manually:
703
+
704
+ ```bash
705
+ sudo warp-svc &
706
+ sleep 3
707
+ ```
708
+
709
+ **Step 3: Register and connect**
710
+
711
+ ```bash
712
+ warp-cli registration new
713
+ warp-cli connect
714
+ ```
715
+
716
+ #### Starting WARP Automatically in WSL
717
+
718
+ Add this to your `~/.bashrc`:
719
+
720
+ ```bash
721
+ # Start warp-svc if not already running
722
+ if ! pgrep -x warp-svc > /dev/null; then
723
+ sudo warp-svc > /dev/null 2>&1 &
724
+ sleep 2
725
+ fi
726
+ ```
727
+
728
+ Configure passwordless sudo for warp-svc:
729
+
730
+ ```bash
731
+ echo "$USER ALL=(ALL) NOPASSWD: /usr/bin/warp-svc" | sudo tee /etc/sudoers.d/warp-svc
732
+ sudo chmod 0440 /etc/sudoers.d/warp-svc
733
+ ```
734
+
735
+ #### Workaround: Using wsl-vpnkit
736
+
737
+ For better WSL 2 VPN compatibility, consider using wsl-vpnkit:
738
+
739
+ ```bash
740
+ # Download and install wsl-vpnkit from https://github.com/sakai135/wsl-vpnkit
741
+ ```
742
+
743
+ This tool helps WSL 2 work correctly with VPNs running on the Windows host.
744
+
745
+ #### Verification
746
+
747
+ Check WARP status:
748
+
749
+ ```bash
750
+ warp-cli status
751
+ ```
752
+
753
+ Verify WARP is active:
754
+
755
+ ```bash
756
+ curl -s https://www.cloudflare.com/cdn-cgi/trace/ | grep warp
757
+ ```
758
+
759
+ #### Troubleshooting
760
+
761
+ **Problem**: "Cannot connect to local Tailscale daemon" (similar error for WARP)
762
+
763
+ **Solution**: The warp-svc process is not running. Start it:
764
+
765
+ ```bash
766
+ sudo warp-svc &
767
+ sleep 3
768
+ warp-cli status
769
+ ```
770
+
771
+ **Problem**: Registration fails because browser cannot open
772
+
773
+ **Solution**: WSL has no GUI by default. When `warp-cli registration new` requires browser authentication, copy the URL and open it in your Windows browser manually.
774
+
775
+ **Problem**: WARP works on Windows but not in WSL
776
+
777
+ **Solution**: If WARP is installed on Windows, ensure you have WSL 2 (not WSL 1):
778
+
779
+ ```powershell
780
+ wsl -l -v
781
+ ```
782
+
783
+ If using WSL 1, upgrade to WSL 2:
784
+
785
+ ```powershell
786
+ wsl --set-version <distro-name> 2
787
+ ```
788
+
789
+ ---
790
+
791
+ ### Git Bash (Windows Installation)
792
+
793
+ #### Prerequisites
794
+
795
+ - Windows 10 or Windows 11 (64-bit)
796
+ - Git Bash installed (comes with Git for Windows)
797
+ - Cloudflare WARP installed on Windows (see Windows section)
798
+
799
+ **Note**: Git Bash on Windows does not require a separate WARP installation. Git Bash inherits the Windows PATH, and WARP runs as a Windows service. Once WARP is installed on Windows, the protection applies to all network traffic from the machine, including Git Bash.
800
+
801
+ #### Installation Steps
802
+
803
+ 1. Install Cloudflare WARP on Windows using Chocolatey (see Windows section):
804
+
805
+ ```bash
806
+ # Run from Administrator PowerShell or Command Prompt
807
+ choco install warp -y
808
+ ```
809
+
810
+ 2. Launch Cloudflare WARP from the Windows Start Menu
811
+
812
+ 3. Enable WARP by clicking the toggle in the WARP application
813
+
814
+ 4. Open Git Bash - all network traffic is now routed through WARP
815
+
816
+ #### Verification
817
+
818
+ In Git Bash, verify WARP is active:
819
+
820
+ ```bash
821
+ curl -s https://www.cloudflare.com/cdn-cgi/trace/ | grep warp
822
+ ```
823
+
824
+ Expected output:
825
+
826
+ ```
827
+ warp=on
828
+ ```
829
+
830
+ #### Troubleshooting
831
+
832
+ **Problem**: WARP is not protecting Git Bash traffic
833
+
834
+ **Solution**: WARP is a system-wide VPN that protects all traffic. Ensure WARP is enabled in the Windows system tray application. Click the WARP icon and verify the toggle is ON.
835
+
836
+ **Problem**: Git operations fail when WARP is enabled
837
+
838
+ **Solution**: Some corporate networks or Git hosts may have issues with WARP. Try:
839
+
840
+ 1. Temporarily disable WARP for the operation
841
+ 2. Add the Git host to WARP's split tunnel exclusion list (in WARP settings)
842
+
843
+ **Problem**: curl or wget commands timeout
844
+
845
+ **Solution**: Ensure WARP is connected and not in a "Connecting" state. Check the system tray icon. If stuck, try:
846
+
847
+ 1. Click the WARP system tray icon
848
+ 2. Click the toggle to disconnect
849
+ 3. Wait a few seconds
850
+ 4. Click the toggle to reconnect
851
+
852
+ ---
853
+
854
+ ## Post-Installation Configuration
855
+
856
+ After installing Cloudflare WARP on any platform, consider these common configurations.
857
+
858
+ ### Switching WARP Modes
859
+
860
+ WARP supports several operational modes:
861
+
862
+ ```bash
863
+ # Set to full WARP mode (default, encrypts all traffic)
864
+ warp-cli mode warp
865
+
866
+ # Set to DNS-only mode (1.1.1.1)
867
+ warp-cli mode doh
868
+
869
+ # Set to WARP with DNS-over-HTTPS
870
+ warp-cli mode warp+doh
871
+
872
+ # Set to proxy mode (SOCKS5 proxy on localhost)
873
+ warp-cli mode proxy
874
+ ```
875
+
876
+ ### Checking Connection Status
877
+
878
+ View your current WARP status:
879
+
880
+ ```bash
881
+ warp-cli status
882
+ ```
883
+
884
+ View your Cloudflare trace information:
885
+
886
+ ```bash
887
+ curl -s https://www.cloudflare.com/cdn-cgi/trace/
888
+ ```
889
+
890
+ Key fields in the trace output:
891
+ - `warp=on` - WARP is active
892
+ - `warp=off` - WARP is not active
893
+ - `gateway=on` - Connected via Cloudflare Gateway (Zero Trust)
894
+
895
+ ### Viewing Connection Statistics
896
+
897
+ Display connection statistics:
898
+
899
+ ```bash
900
+ warp-cli stats
901
+ ```
902
+
903
+ ### Generating Diagnostic Information
904
+
905
+ Create a diagnostic bundle for troubleshooting:
906
+
907
+ ```bash
908
+ # Linux
909
+ sudo warp-diag
910
+ ```
911
+
912
+ This creates a `warp-debugging-info.zip` file in the current directory.
913
+
914
+ ### Disconnecting and Reconnecting
915
+
916
+ ```bash
917
+ # Disconnect from WARP
918
+ warp-cli disconnect
919
+
920
+ # Reconnect to WARP
921
+ warp-cli connect
922
+ ```
923
+
924
+ ### Resetting WARP Registration
925
+
926
+ If you need to re-register your device:
927
+
928
+ ```bash
929
+ # Delete current registration
930
+ warp-cli registration delete
931
+
932
+ # Create new registration
933
+ warp-cli registration new
934
+ ```
935
+
936
+ ---
937
+
938
+ ## Common Issues
939
+
940
+ ### Issue: "warp=off" Despite WARP Being Enabled
941
+
942
+ **Symptoms**: `curl https://www.cloudflare.com/cdn-cgi/trace/` shows `warp=off` even though WARP appears connected.
943
+
944
+ **Solutions**:
945
+
946
+ - Ensure WARP is in "WARP" mode, not "1.1.1.1" mode:
947
+
948
+ ```bash
949
+ warp-cli mode warp
950
+ warp-cli connect
951
+ ```
952
+
953
+ - Restart the WARP service:
954
+
955
+ ```bash
956
+ # Linux
957
+ sudo systemctl restart warp-svc
958
+
959
+ # Then reconnect
960
+ warp-cli connect
961
+ ```
962
+
963
+ ### Issue: WARP Causes Network Slowdown
964
+
965
+ **Symptoms**: Internet speeds are significantly slower when WARP is enabled.
966
+
967
+ **Solutions**:
968
+
969
+ - This can happen when traffic is being relayed. Check your connection:
970
+
971
+ ```bash
972
+ warp-cli stats
973
+ ```
974
+
975
+ - Try reconnecting to get a better route:
976
+
977
+ ```bash
978
+ warp-cli disconnect
979
+ warp-cli connect
980
+ ```
981
+
982
+ - Consider WARP+ subscription for optimized routing
983
+
984
+ ### Issue: Specific Websites or Services Not Working
985
+
986
+ **Symptoms**: Certain websites or applications fail when WARP is enabled.
987
+
988
+ **Solutions**:
989
+
990
+ - Some services block VPN traffic. You may need to temporarily disable WARP for those services.
991
+
992
+ - On desktop applications, check if split tunneling is available in WARP settings to exclude specific applications.
993
+
994
+ ### Issue: DNS Resolution Failures
995
+
996
+ **Symptoms**: Cannot resolve hostnames when WARP is enabled.
997
+
998
+ **Solutions**:
999
+
1000
+ - Check DNS configuration:
1001
+
1002
+ ```bash
1003
+ warp-cli dns log
1004
+ ```
1005
+
1006
+ - Try switching DNS modes:
1007
+
1008
+ ```bash
1009
+ warp-cli mode warp+doh
1010
+ warp-cli connect
1011
+ ```
1012
+
1013
+ ### Issue: WARP Conflicts With Corporate VPN
1014
+
1015
+ **Symptoms**: Corporate VPN stops working or WARP cannot connect when corporate VPN is active.
1016
+
1017
+ **Solutions**:
1018
+
1019
+ - WARP and other VPNs typically cannot run simultaneously
1020
+ - Choose one VPN to use at a time
1021
+ - Contact your IT department about Cloudflare Zero Trust integration if you need both
1022
+
1023
+ ### Issue: Registration Requires Browser But No GUI Available
1024
+
1025
+ **Symptoms**: On headless Linux servers, `warp-cli registration new` requires browser authentication.
1026
+
1027
+ **Solutions**:
1028
+
1029
+ - The registration URL can be opened on any device. Copy the URL shown and open it in a browser on another device.
1030
+
1031
+ - For automated deployments, use Cloudflare Zero Trust with an MDM token instead of interactive registration.
1032
+
1033
+ ---
1034
+
1035
+ ## References
1036
+
1037
+ - [Cloudflare WARP Client Documentation](https://developers.cloudflare.com/warp-client/)
1038
+ - [WARP Client for macOS](https://developers.cloudflare.com/warp-client/get-started/macos/)
1039
+ - [WARP Client for Windows](https://developers.cloudflare.com/warp-client/get-started/windows/)
1040
+ - [WARP Client for Linux](https://developers.cloudflare.com/warp-client/get-started/linux/)
1041
+ - [Cloudflare WARP Packages Repository](https://pkg.cloudflareclient.com/)
1042
+ - [Cloudflare WARP Homebrew Cask](https://formulae.brew.sh/cask/cloudflare-warp)
1043
+ - [Cloudflare WARP Chocolatey Package](https://community.chocolatey.org/packages/warp)
1044
+ - [Download and Install WARP with winget](https://winget.run/pkg/Cloudflare/Warp)
1045
+ - [Cloudflare One - WARP for Organizations](https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp/)
1046
+ - [WARP Modes Documentation](https://developers.cloudflare.com/warp-client/warp-modes/)
1047
+ - [wgcf - Unofficial WARP CLI for WireGuard](https://github.com/ViRb3/wgcf)