Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .vitepress/config/cn.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,11 @@ export const cn = defineConfig({
{ text: '双节点', link: '/guide/network/two-node-networking' },
{ text: '多节点', link: '/guide/network/multi-node-networking' },
{ text: '子网代理(点对网)', link: '/guide/network/point-to-networking' },
{ text: '网对网', link: '/guide/network/network-to-network' },
{ text: '无公网IP', link: '/guide/network/networking-without-public-ip' },
{ text: '使用 WireGuard 客户端接入', link: '/guide/network/use-easytier-with-wirefuard-client' },
{ text: '无 TUN 模式 (免 Root 权限)', link: '/guide/network/no-root' },
{ text: '自建公共服务器', link: '/guide/network/host-public-server' },
{ text: '注册为windows服务(开机自启)', link: '/guide/network/install-as-a-windows-service' },
{ text: '将服务安装为 Linux Systemd 服务', link: '/guide/network/install-as-a-systemd-service' },
{ text: '其他配置', link: '/guide/network/configurations' },
Expand Down
20 changes: 20 additions & 0 deletions guide/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,3 +54,23 @@
command: -i <ip> --network-name <用户> --network-secret <密码> -e tcp://<服务器地址>:11010 -l <监听地址>
```
:::

5. 一键安装脚本 (仅 Linux)

```bash
wget -O /tmp/easytier.sh "https://raw.githubusercontent.com/EasyTier/EasyTier/main/script/install.sh" && bash /tmp/easytier.sh install
```

# 常见问题

## 问题 1

Q: Windows 7 无法创建网络,程序崩溃或者报错无法创建虚拟网。

A: win7 需要是 SP1 及以上, 并且需要安装 [KB3063858](https://www.microsoft.com/en-us/download/details.aspx?id=47409)、 [KB4474419](https://www.catalog.update.microsoft.com/search.aspx?q=KB4474419) 这两个补丁

## 问题 2

Q: Linux 命令行帮助是英文,如何调整为中文。

A: 需要设置环境变量 LANG=zh_CN,命令: `export LANG=zh_CN`
19 changes: 19 additions & 0 deletions guide/network/host-public-server.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# 自建公共服务器

用户可以使用自己的公网节点自建用于无公网 IP 组网的公共服务器,方便其他无公网 IP 的用户组网。

只需要不带任何参数启动 EasyTier,该节点就可作为公共服务器使用(不需要 root 权限):

```
easytier-core
```

另外,默认情况下, EasyTier 的每个节点都允许为其他虚拟网提供转发服务,即使该节点已经指定了 网络名 (`--network-name`) 和 网络密钥 (`--network-secret`)、并已加入一个虚拟网。

若需改变此行为,可通过 `--relay-network-whitelist` 参数限定可被转发的网络名白名单(空格分割的通配符列表,如 ` "ab* abc" `)。当该参数的列表为空时,就不会为所有其他网络提供转发服务。

EasyTier 可以做到不转发其他虚拟网的网络包,而是只帮助他们建立 P2P 链接,只需将白名单置空,并设置仅转发 RPC 流量即可。参考命令为:

```
easytier-core --relay-network-whitelist --relay-all-peer-rpc
```
45 changes: 45 additions & 0 deletions guide/network/network-to-network.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# 网对网

网对网的网络拓扑如图所示

```mermaid
flowchart LR

subgraph 节点 A
nodeA[EasyTier\n10.144.144.1]
end

subgraph 节点 B
nodeB[EasyTier\n10.144.144.2]
end

id1[[10.1.1.0/24]]

id2[[192.168.1.0/24]]

id2 <-.子网代理.-> nodeA <--> nodeB <-.子网代理.-> id1

id2 -.无需 EasyTier 访问对方子网.-> id1

```

网对网配置成功后,192.168.1.0/24 子网的设备可以访问 10.1.1.0/24 子网的设备互相通信且无需安装 EasyTier。

要实现网对网,需要 节点 A 是 192.168.1.0/24 子网的网关。两个 EasyTier 节点的启动及配置参数如下:

节点 A
```bash
# 启动 EasyTier 并代理 192.168.1.0/24 网段,并使用公共服务器帮助组网
easytier-core -i 10.144.144.1 -n 192.168.1.0/24 -p tcp://easytier.public.kkrainbow.top:11010 --network-name n2n_test

# 允许网关转发流量,并配置防火墙允许转发流量
sysctl -w net.ipv4.ip_forward=1
iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.1.0/24 -j ACCEPT
```

节点 B
```bash
# 启动 EasyTier 并代理 10.1.1.0/24 网段,并使用公共服务器帮助组网
easytier-core -i 10.144.144.2 -n 10.1.1.0/24 -p tcp://easytier.public.kkrainbow.top:11010 --network-name n2n_test
```
9 changes: 7 additions & 2 deletions guide/network/networking-without-public-ip.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,20 @@ EasyTier 支持共享公网节点进行组网。目前已部署共享的公网
以双节点为例,节点 A 执行:

```sh
sudo easytier-core -i 10.144.144.1 --network-name abc --network-secret abc -e tcp://easytier.public.kkrainbow.top:11010
sudo easytier-core -i 10.144.144.1 --network-name abc --network-secret abc -p tcp://easytier.public.kkrainbow.top:11010
```

节点 B 执行

```sh
sudo easytier-core --ipv4 10.144.144.2 --network-name abc --network-secret abc -e tcp://easytier.public.kkrainbow.top:11010
sudo easytier-core --ipv4 10.144.144.2 --network-name abc --network-secret abc -p tcp://easytier.public.kkrainbow.top:11010
```

命令执行成功后,节点 A 即可通过虚拟 IP 10.144.144.2 访问节点 B。

`--ipv4 x.x.x.x` 可以替换为 `-d` 开启 DHCP 功能,由 EasyTier 根据虚拟网内已经存在的其他虚拟 IP 自动的分配本节点的 IP 地址。


节点可以连接到多个公共服务器,当其中一个公共服务器失效后,节点间依然可以使用其他存活的公共服务器通信。只需要指定多个 -p 参数即可,如:`-p tcp://1.1.1.1:11010 -p udp://1.1.1.2:11011`。需要注意,虚拟网中每个节点都要指定相同的公共服务器列表,否则可能无法正常组网。

---
9 changes: 9 additions & 0 deletions guide/network/no-root.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# 无 TUN 模式 (免 Root 权限)

由于创建 TUN 设备需要 ROOT 权限,对于一些无法获取 Root 权限的环境,EasyTier 也提供了不依赖 TUN 的使用方法。只需在启动 EasyTier 时,增加 `--no-tun` 参数即可。

使用无 TUN 模式组网时,节点可以通过虚拟 IP 被访问(TCP、UDP 和 ICMP 都支持),也可以做子网代理(使用 -n 参数)。但是无法主动发起对其他节点的访问。

为了在无 TUN 模式下主动访问其他节点,EasyTier 支持创建 SOCKS5 服务器,节点上的其他程序可以通过将代理设置为 EasyTier 的 SOCKS5 服务,即可访问虚拟网和虚拟网中的其他代理子网。

SOCKS5 服务的开启参数形为 `--socks5 12333`,将此参数加入 easytier-core 启动命令后,本机的 12333 端口即可服务于 SOCKS5 客户端。目前 SOCKS5 服务端无需用户名和密码验证,可直接使用。
14 changes: 14 additions & 0 deletions guide/network/point-to-networking.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,18 @@ sudo easytier-core --ipv4 10.144.144.2 -n 10.1.1.0/24
ping 10.1.1.2
```

## 手工指定路由

默认情况下,当虚拟网中的某个节点配置了子网代理后,子网代理的网段会被同步到虚拟网内的所有节点上,并自动生成一条路由,将发往这些网段的数据包交由虚拟网处理。

这在大部分情况下可以简化组网,但在有些场景下,用户可能并不希望 EasyTier 在节点上自动配置路由,用户可通过 `--manual-routes` 参数手工配置需要转发到虚拟网的流量。

使用 `--manual-routes` 后,只有该参数配置的网段才会进入虚拟网,如果该参数后的列表为空,则 EasyTier 不会处理任何非虚拟网网段的流量。

## 防火墙

由于代理流量需要用到系统的网络栈,因此子网代理需要关闭在虚拟网卡上的防火墙(Linux 和 Windows 皆是如此)。

如果无法关闭防火墙,可以尝试用用户态的网络栈做子网代理,可以免去配置防火墙的步骤。只需要在启动 EasyTier 时添加 `--use-smoltcp` 参数即可。

---
2 changes: 1 addition & 1 deletion index.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ features:
details: 根据流量智能选择链路,减少延迟,提高吞吐量。
- title: 跨平台
details: |
支持 MacOS/Linux/Windows 等系统。未来将支持 IOS 和 Android
支持 MacOS/Linux/Windows/Android 等系统。未来将支持 IOS。
</br>
支持 MIPS、ARM 等硬件架构。
</br>
Expand Down