Crates.io | tulip-net |
lib.rs | tulip-net |
version | 0.6.0 |
source | src |
created_at | 2024-02-03 14:10:04.985197 |
updated_at | 2024-02-03 14:10:04.985197 |
description | WireGuard VPN builder |
homepage | |
repository | |
max_upload_size | |
id | 1125429 |
size | 50,195 |
Btw, on an unrelated issue: I see that Jason actually made the pull
request to have wireguard included in the kernel.
Can I just once again state my love for it and hope it gets merged
soon? Maybe the code isn't perfect, but I've skimmed it, and compared
to the horrors that are OpenVPN and IPSec, it's a work of art.
Linus
The tulip. CLI.
At the application level, Tulip is a thin abstraction over Wireguard. At the network level, Tulip is Wireguard.
[[TOC]]
WireGuard,
Rust, what's in the Cargo.toml
,
make
, sudo
.
tulip gen-id
.public_id.json
. NEVER share your private_id.json
.tulip start
.tulip stop
.private_id.json
and public_id.json
, have a network administrator
approve the new public_id.json
, and use tulip gen-wg-conf
.tulip_network.json
and phonebook.json
files, whose schemas
are detailed below.phonebook.json
is available at the HTTP endpoint /phonebook.json
on your Tulip network's WireGuard IP address.tulip start --server
.tulip stop
.tulip_network.json
file, use tulip gen-net-conf
.
(Note: the user must already be added to your phonebook.json
manually).tulip_network.json
E.g., if your Tulip network is called "Sandringham", then
sandringham_tulip_network.json
might look like this.
{
"name": "sandringham",
"subnet": "10.0.0.0/16",
"user": {
"name": "janie",
"vpn_ip": "10.0.0.4"
},
"public_endpoints": [
{
"name": "appleton",
"vpn_ip": "10.0.0.3",
"public_hostname": "vpn.example.com",
"public_key": "lNYWO/sIEmu51/2uBZQfaECU9DTw+tBl8IsgMM+XjVU=",
"port": 23235
}
]
}
phonebook.json
{
"diana": {
"name": "diana",
"vpn_ip": "10.0.0.3",
"public_key": "F9JGSvSOEIVOXyJT3iBu6HqECTz1b6TpadcuXA71jUE="
},
"harry": {
"name": "harry",
"vpn_ip": "10.0.0.2",
"public_key": "hcKLrJd1+vrDphARIRZFMGsvBSEpmS/c3AOpaJz033Q="
}
}