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
warp
interface
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_native
GitHub 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: absent
MIT 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.