feat:添加easytier到列表

This commit is contained in:
okxlin 2024-10-13 17:10:36 +08:00
parent 9eff755a9b
commit 40e121be55
19 changed files with 490 additions and 0 deletions

View File

@ -0,0 +1,8 @@
COMMAND="-c /root/config.toml"
CONFIG_FILE_PATH="./data/config.toml"
CONFIG_FILE_PATH_INTERNAL="/root/config.toml"
CONTAINER_NAME="easytier"
DATA_PATH="./data/data"
HOSTNAME="easytier"
PRIVILEGED_MODE="true"
TIME_ZONE="Asia/Shanghai"

View File

@ -0,0 +1,51 @@
additionalProperties:
formFields:
- default: "./data/data"
edit: true
envKey: DATA_PATH
labelEn: Data Path
labelZh: 数据路径
required: true
type: text
- default: "./data/config.toml"
disabled: true
envKey: CONFIG_FILE_PATH
labelEn: Configuration file path
labelZh: 配置文件路径
required: true
type: text
- default: "/root/config.toml"
disabled: true
envKey: CONFIG_FILE_PATH_INTERNAL
labelEn: Configuration file path(inside container)
labelZh: 配置文件路径 (容器内部)
required: true
type: text
- default: "Asia/Shanghai"
edit: true
envKey: TIME_ZONE
labelEn: Time Zone
labelZh: 时区
required: true
type: text
- default: "true"
disabled: true
envKey: PRIVILEGED_MODE
labelEn: Privilege mode switch
labelZh: 特权模式开关
required: true
type: text
- default: "easytier"
edit: true
envKey: HOSTNAME
labelEn: Hostname
labelZh: 主机名
required: true
type: text
- default: "-c /root/config.toml"
disabled: true
envKey: COMMAND
labelEn: Command
labelZh: 命令
required: true
type: text

View File

@ -0,0 +1,68 @@
# 实例名称,用于在同一台机器上标识此 VPN 节点
instance_name = ""
# 主机名,用于标识此设备的主机名
hostname = ""
# 实例 ID一般为 UUID在同一个 VPN 网络中唯一
instance_id = ""
# 此 VPN 节点的 IPv4 地址,如果为空,则此节点将仅转发数据包,不会创建 TUN 设备
ipv4 = ""
# 由 Easytier 自动确定并设置IP地址默认从10.0.0.1开始。警告:在使用 DHCP 时,如果网络中出现 IP 冲突IP 将自动更改
dhcp = false
# 监听器列表,用于接受连接
listeners = [
"tcp://0.0.0.0:11010",
"udp://0.0.0.0:11010",
"wg://0.0.0.0:11011",
"ws://0.0.0.0:11011/",
"wss://0.0.0.0:11012/",
]
# 退出节点列表
exit_nodes = [
]
# 用于管理的 RPC 门户地址
rpc_portal = "127.0.0.1:15888"
[network_identity]
# 网络名称,用于标识 VPN 网络
network_name = ""
# 网络密钥,用于验证此节点属于 VPN 网络
network_secret = ""
# 这里是对等连接节点配置,可以多段配置
[[peer]]
uri = ""
[[peer]]
uri = ""
# 这里是子网代理节点配置,可以有多段配置
[[proxy_network]]
cidr = "10.0.1.0/24"
[[proxy_network]]
cidr = "10.0.2.0/24"
[flags]
# 连接到对等节点使用的默认协议
default_protocol = "tcp"
# TUN 设备名称,如果为空,则使用默认名称
dev_name = ""
# 是否启用加密
enable_encryption = true
# 是否启用 IPv6 支持
enable_ipv6 = true
# TUN 设备的 MTU
mtu = 1380
# 延迟优先模式,将尝试使用最低延迟路径转发流量,默认使用最短路径
latency_first = false
# 将本节点配置为退出节点
enable_exit_node = false
# 禁用 TUN 设备
no_tun = false
# 为子网代理启用 smoltcp 堆栈
use_smoltcp = false
# 仅转发白名单网络的流量,支持通配符字符串。多个网络名称间可以使用英文空格间隔。如果该参数为空,则禁用转发。默认允许所有网络。例如:'*'(所有网络),'def*'以def为前缀的网络'net1 net2'只允许net1和net2
foreign_network_whitelist = "*"

View File

@ -0,0 +1,17 @@
instance_name = "default"
instance_id = "3d3db819-ad54-4d86-bf9a-faac864478ab"
dhcp = false
listeners = [
"tcp://0.0.0.0:11010",
"udp://0.0.0.0:11010",
"wg://0.0.0.0:11011",
"ws://0.0.0.0:11011/",
"wss://0.0.0.0:11012/",
]
exit_nodes = []
peer = []
rpc_portal = "0.0.0.0:15889"
[network_identity]
network_name = "default"
network_secret = ""

View File

@ -0,0 +1,20 @@
services:
easytier:
image: "easytier/easytier:v2.0.2"
container_name: ${CONTAINER_NAME}
restart: always
network_mode: host
privileged: ${PRIVILEGED_MODE}
hostname: ${HOSTNAME}
environment:
- TZ=${TIME_ZONE}
volumes:
- ${DATA_PATH}:/root
- ${CONFIG_FILE_PATH}:${CONFIG_FILE_PATH_INTERNAL}
command: ${COMMAND}
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

View File

@ -0,0 +1,6 @@
COMMAND="-i 10.144.144.1 --network-name abc --network-secret abc -p tcp://public.easytier.top:11010"
CONTAINER_NAME="easytier"
DATA_PATH="./data/data"
HOSTNAME="easytier"
PRIVILEGED_MODE="true"
TIME_ZONE="Asia/Shanghai"

View File

@ -0,0 +1,37 @@
additionalProperties:
formFields:
- default: "./data"
edit: true
envKey: DATA_PATH
labelEn: Data Path
labelZh: 数据路径
required: true
type: text
- default: "Asia/Shanghai"
edit: true
envKey: TIME_ZONE
labelEn: Time Zone
labelZh: 时区
required: true
type: text
- default: "true"
disabled: true
envKey: PRIVILEGED_MODE
labelEn: Privilege mode switch
labelZh: 特权模式开关
required: true
type: text
- default: "easytier"
edit: true
envKey: HOSTNAME
labelEn: Hostname
labelZh: 主机名
required: true
type: text
- default: "-i <ip> --network-name <用户> --network-secret <密码> -e tcp://<服务器地址>:11010 -l <监听地址>"
edit: true
envKey: COMMAND
labelEn: Command (modified as required)
labelZh: 命令 (按需修改)
required: true
type: text

View File

@ -0,0 +1,15 @@
services:
easytier:
image: "easytier/easytier:v2.0.2"
container_name: ${CONTAINER_NAME}
restart: always
network_mode: host
privileged: ${PRIVILEGED_MODE}
hostname: ${HOSTNAME}
environment:
- TZ=${TIME_ZONE}
volumes:
- ${DATA_PATH}:/root
command: ${COMMAND}
labels:
createdBy: "Apps"

27
apps/easytier/README.md Normal file
View File

@ -0,0 +1,27 @@
# EasyTier
## 使用说明
相关信息可通过容器日志与配置文件获取,注意参考官方文档来使用。
***
[简体中文](https://github.com/EasyTier/EasyTier/blob/main/README_CN.md) | [English](https://github.com/EasyTier/EasyTier/blob/main/README.md)
**请访问 [EasyTier 官网](https://www.easytier.top/) 以查看完整的文档。**
一个简单、安全、去中心化的内网穿透 VPN 组网方案,使用 Rust 语言和 Tokio 框架实现。
## 特点
- **去中心化**:无需依赖中心化服务,节点平等且独立。
- **安全**:支持利用 WireGuard 加密通信,也支持 AES-GCM 加密保护中转流量。
- **高性能**:全链路零拷贝,性能与主流组网软件相当。
- **跨平台**:支持 MacOS/Linux/Windows/Android未来将支持 IOS。可执行文件静态链接部署简单。
- **无公网 IP 组网**:支持利用共享的公网节点组网,可参考 [配置指南](https://github.com/EasyTier/EasyTier/blob/main/README_CN.md#%E6%97%A0%E5%85%AC%E7%BD%91IP%E7%BB%84%E7%BD%91)
- **NAT 穿透**:支持基于 UDP 的 NAT 穿透,即使在复杂的网络环境下也能建立稳定的连接。
- **子网代理(点对网)**:节点可以将可访问的网段作为代理暴露给 VPN 子网,允许其他节点通过该节点访问这些子网。
- **智能路由**:根据流量智能选择链路,减少延迟,提高吞吐量。
- **TCP 支持**:在 UDP 受限的情况下,通过并发 TCP 链接提供可靠的数据传输,优化性能。
- **高可用性**:支持多路径和在检测到高丢包率或网络错误时切换到健康路径。
- **IPV6 支持**:支持利用 IPV6 组网。
- **多协议类型**: 支持使用 WebSocket、QUIC 等协议进行节点间通信。

View File

@ -0,0 +1,8 @@
COMMAND="-c /root/config.toml"
CONFIG_FILE_PATH="./data/config.toml"
CONFIG_FILE_PATH_INTERNAL="/root/config.toml"
CONTAINER_NAME="easytier"
DATA_PATH="./data/data"
HOSTNAME="easytier"
PRIVILEGED_MODE="true"
TIME_ZONE="Asia/Shanghai"

View File

@ -0,0 +1,51 @@
additionalProperties:
formFields:
- default: "./data/data"
edit: true
envKey: DATA_PATH
labelEn: Data Path
labelZh: 数据路径
required: true
type: text
- default: "./data/config.toml"
disabled: true
envKey: CONFIG_FILE_PATH
labelEn: Configuration file path
labelZh: 配置文件路径
required: true
type: text
- default: "/root/config.toml"
disabled: true
envKey: CONFIG_FILE_PATH_INTERNAL
labelEn: Configuration file path(inside container)
labelZh: 配置文件路径 (容器内部)
required: true
type: text
- default: "Asia/Shanghai"
edit: true
envKey: TIME_ZONE
labelEn: Time Zone
labelZh: 时区
required: true
type: text
- default: "true"
disabled: true
envKey: PRIVILEGED_MODE
labelEn: Privilege mode switch
labelZh: 特权模式开关
required: true
type: text
- default: "easytier"
edit: true
envKey: HOSTNAME
labelEn: Hostname
labelZh: 主机名
required: true
type: text
- default: "-c /root/config.toml"
disabled: true
envKey: COMMAND
labelEn: Command
labelZh: 命令
required: true
type: text

View File

@ -0,0 +1,68 @@
# 实例名称,用于在同一台机器上标识此 VPN 节点
instance_name = ""
# 主机名,用于标识此设备的主机名
hostname = ""
# 实例 ID一般为 UUID在同一个 VPN 网络中唯一
instance_id = ""
# 此 VPN 节点的 IPv4 地址,如果为空,则此节点将仅转发数据包,不会创建 TUN 设备
ipv4 = ""
# 由 Easytier 自动确定并设置IP地址默认从10.0.0.1开始。警告:在使用 DHCP 时,如果网络中出现 IP 冲突IP 将自动更改
dhcp = false
# 监听器列表,用于接受连接
listeners = [
"tcp://0.0.0.0:11010",
"udp://0.0.0.0:11010",
"wg://0.0.0.0:11011",
"ws://0.0.0.0:11011/",
"wss://0.0.0.0:11012/",
]
# 退出节点列表
exit_nodes = [
]
# 用于管理的 RPC 门户地址
rpc_portal = "127.0.0.1:15888"
[network_identity]
# 网络名称,用于标识 VPN 网络
network_name = ""
# 网络密钥,用于验证此节点属于 VPN 网络
network_secret = ""
# 这里是对等连接节点配置,可以多段配置
[[peer]]
uri = ""
[[peer]]
uri = ""
# 这里是子网代理节点配置,可以有多段配置
[[proxy_network]]
cidr = "10.0.1.0/24"
[[proxy_network]]
cidr = "10.0.2.0/24"
[flags]
# 连接到对等节点使用的默认协议
default_protocol = "tcp"
# TUN 设备名称,如果为空,则使用默认名称
dev_name = ""
# 是否启用加密
enable_encryption = true
# 是否启用 IPv6 支持
enable_ipv6 = true
# TUN 设备的 MTU
mtu = 1380
# 延迟优先模式,将尝试使用最低延迟路径转发流量,默认使用最短路径
latency_first = false
# 将本节点配置为退出节点
enable_exit_node = false
# 禁用 TUN 设备
no_tun = false
# 为子网代理启用 smoltcp 堆栈
use_smoltcp = false
# 仅转发白名单网络的流量,支持通配符字符串。多个网络名称间可以使用英文空格间隔。如果该参数为空,则禁用转发。默认允许所有网络。例如:'*'(所有网络),'def*'以def为前缀的网络'net1 net2'只允许net1和net2
foreign_network_whitelist = "*"

View File

@ -0,0 +1,17 @@
instance_name = "default"
instance_id = "3d3db819-ad54-4d86-bf9a-faac864478ab"
dhcp = false
listeners = [
"tcp://0.0.0.0:11010",
"udp://0.0.0.0:11010",
"wg://0.0.0.0:11011",
"ws://0.0.0.0:11011/",
"wss://0.0.0.0:11012/",
]
exit_nodes = []
peer = []
rpc_portal = "0.0.0.0:15889"
[network_identity]
network_name = "default"
network_secret = ""

View File

@ -0,0 +1,20 @@
services:
easytier:
image: "easytier/easytier:latest"
container_name: ${CONTAINER_NAME}
restart: always
network_mode: host
privileged: ${PRIVILEGED_MODE}
hostname: ${HOSTNAME}
environment:
- TZ=${TIME_ZONE}
volumes:
- ${DATA_PATH}:/root
- ${CONFIG_FILE_PATH}:${CONFIG_FILE_PATH_INTERNAL}
command: ${COMMAND}
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true

19
apps/easytier/data.yml Normal file
View File

@ -0,0 +1,19 @@
name: EasyTier
tags:
- 实用工具
title: 一个简单、安全、去中心化的内网穿透 VPN 组网方案
description: 一个简单、安全、去中心化的内网穿透 VPN 组网方案
additionalProperties:
key: easytier
name: EasyTier
tags:
- Tool
shortDescZh: 一个简单、安全、去中心化的内网穿透 VPN 组网方案
shortDescEn: A simple, safe and decentralized VPN networking solution
type: tool
crossVersionUpdate: true
limit: 1
recommend: 0
website: https://www.easytier.top
github: https://github.com/EasyTier/EasyTier
document: https://www.easytier.top

View File

@ -0,0 +1,6 @@
COMMAND="-i 10.144.144.1 --network-name abc --network-secret abc -p tcp://public.easytier.top:11010"
CONTAINER_NAME="easytier"
DATA_PATH="./data/data"
HOSTNAME="easytier"
PRIVILEGED_MODE="true"
TIME_ZONE="Asia/Shanghai"

View File

@ -0,0 +1,37 @@
additionalProperties:
formFields:
- default: "./data"
edit: true
envKey: DATA_PATH
labelEn: Data Path
labelZh: 数据路径
required: true
type: text
- default: "Asia/Shanghai"
edit: true
envKey: TIME_ZONE
labelEn: Time Zone
labelZh: 时区
required: true
type: text
- default: "true"
disabled: true
envKey: PRIVILEGED_MODE
labelEn: Privilege mode switch
labelZh: 特权模式开关
required: true
type: text
- default: "easytier"
edit: true
envKey: HOSTNAME
labelEn: Hostname
labelZh: 主机名
required: true
type: text
- default: "-i <ip> --network-name <用户> --network-secret <密码> -e tcp://<服务器地址>:11010 -l <监听地址>"
edit: true
envKey: COMMAND
labelEn: Command (modified as required)
labelZh: 命令 (按需修改)
required: true
type: text

View File

@ -0,0 +1,15 @@
services:
easytier:
image: "easytier/easytier:latest"
container_name: ${CONTAINER_NAME}
restart: always
network_mode: host
privileged: ${PRIVILEGED_MODE}
hostname: ${HOSTNAME}
environment:
- TZ=${TIME_ZONE}
volumes:
- ${DATA_PATH}:/root
command: ${COMMAND}
labels:
createdBy: "Apps"

BIN
apps/easytier/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB