A mesh VPN
fubuki是网状VPN实现,用于不同内网机器之间相互通信
当前支持的平台:
受支持的协议类型:
工作模式:
它通过一台公网服务器来同步多个节点的地址映射与存活状态。每个节点启动之后会存在一个唯一的虚拟地址,节点加入网段服务端会向所有对等节点同步状态信息并协调节点之间打洞,如受NAT限制等原因通讯建立失败后会回退至服务端中继。
Usage: fubuki <COMMAND>
Commands:
server coordinator and data relay server
node fubuki node
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
allowed_ips
配置项时系统须支持NetNat
命令allowed_ips
配置项时系统须支持iptables
allowed_ips
配置项时系统须支持pfctl
创建fubuki服务端的配置 server-config.json
{
"groups": [
{
"name": "mygroup",
"key": "123",
"listen_addr": "0.0.0.0:12345",
"address_range": "10.0.0.0/24"
}
]
}
启动 fubuki server
fubuki server daemon ./server-config.json
创建fubuki节点的配置 node-config.json
{
"groups": [
{
"node_name": "node1",
"server_addr": "{fubuki server address}",
"key": "123"
}
]
}
启动 fubuki node
fubuki node daemon ./node-config.json
启动第二个节点
{
"groups": [
{
"node_name": "node2",
"server_addr": "{fubuki server address}",
"key": "123"
}
]
}
ping
node2节点,可以使用 {node_name}.{group_name}
形式
ping node2.mygroup
cargo +nightly build --release
包含 Web UI
cargo +nightly build --release --features "web"
包含 GUI
cargo +nightly build --release --features "gui"
交叉编译Android动态库
export RUSTUP_TOOLCHAIN=nightly
cargo install cross --git https://github.com/cross-rs/cross
# 这里的目标平台是aarch64-linux-android, 有关于其他Rust支持的平台参阅 https://doc.rust-lang.org/nightly/rustc/platform-support.html
cross +nightly build --lib --release --no-default-features --target aarch64-linux-android