This script installs Cloudflare WARP in "native" mode via WireGuard as an interface, without using warp-cli.
It automates:
- Installation of required packages
- Download and configuration of
wgcf - IPv6 availability check in the system
- Generation and modification of WireGuard configuration
- Connection and status verification
- Enable auto-start of
warpinterface
Install on each required node:
bash <(curl -fsSL https://raw.githubusercontent.com/distillium/warp-native/main/install.sh)For managing multiple servers, use the Ansible role:
Install from Ansible Galaxy:
ansible-galaxy install themelbine.warp_nativeGitHub Repository: ansible-role-warp-native
Example playbook:
- hosts: warp_servers
become: yes
roles:
- themelbine.warp_native
vars:
warp_native_state: present
warp_native_modify_resolv: true📝 Show outbound example
{
"tag": "warp-out",
"protocol": "freedom",
"settings": {
"domainStrategy": "UseIP"
},
"streamSettings": {
"sockopt": {
"interface": "warp",
"tcpFastOpen": true
}
}
}📝 Show routing rule example
{
"type": "field",
"domain": [
"netflix.com",
"youtube.com",
"twitter.com"
],
"inboundTag": [
"Node-1",
"Node-2"
],
"outboundTag": "warp-out"
}
| Operation | Command |
|---|---|
| Check service status | systemctl status wg-quick@warp |
| Show information (wg) | wg show warp |
| Stop interface | systemctl stop wg-quick@warp |
| Start interface | systemctl start wg-quick@warp |
| Restart interface | systemctl restart wg-quick@warp |
| Disable auto-start | systemctl disable wg-quick@warp |
| Enable auto-start | systemctl enable wg-quick@warp |
bash <(curl -fsSL https://raw.githubusercontent.com/distillium/warp-native/main/uninstall.sh)- hosts: warp_servers
become: yes
roles:
- themelbine.warp_native
vars:
warp_native_state: absentMIT License - see LICENSE file for details.
Created by distillium
The installation script supports interactive language selection. During installation, you'll be prompted to choose between English and Russian.