new post
This commit is contained in:
parent
eeeaf98a7f
commit
ef858460ef
@ -19,7 +19,7 @@ image = "https://hf-image.mitsea.com:8840/blog/posts/2025/02/%E4%B8%AD%E5%BF%83%
|
||||
|
||||
Easytier 也类似,只不过你需要分开部署。下面的步骤中,“管理后台配置”一节对应的就是 Web 控制台。“中继服务器配置”对应的就是 DERP 或是 coturn 的配置。
|
||||
|
||||
> 💡 请注意,当前版本下,使用 web 控制台部署设备,即使用 --config-server 启动会使得所有其他启动参数失效,你将会无法使用以下功能:手动选择接受的路由、网络白名单、rpc 包转发
|
||||
> 💡 请注意,当前版本下,使用 web 控制台部署设备,即使用 --config-server 启动会使得所有其他启动参数失效,你将会无法使用以下功能:手动选择接受的路由、网络白名单、rpc 包转发。若需要这些功能,你可以查看[中心化逻辑部署 Easytier - 无 Web 管理](https://blog.mitsea.com/1b37bda595c580c989edf890db8e0b19/)
|
||||
## 管理后台配置
|
||||
|
||||
### 说明
|
||||
|
206
content/post/1b37bda595c580c989edf890db8e0b19/index.zh-cn.md
Normal file
206
content/post/1b37bda595c580c989edf890db8e0b19/index.zh-cn.md
Normal file
@ -0,0 +1,206 @@
|
||||
+++
|
||||
author = "FlintyLemming"
|
||||
title = "中心化逻辑部署 Easytier - 无 Web 管理"
|
||||
slug = "1b37bda595c580c989edf890db8e0b19"
|
||||
date = "2025-03-11"
|
||||
description = "纯命令行启动组网"
|
||||
categories = ["Network"]
|
||||
tags = ["Easytier"]
|
||||
image = "https://hf-image.mitsea.com:8840/blog/posts/2025/03/%E4%B8%AD%E5%BF%83%E5%8C%96%E9%80%BB%E8%BE%91%E9%83%A8%E7%BD%B2%20Easytier%20-%20%E6%97%A0%20Web%20%E7%AE%A1%E7%90%86/pawel-czerwinski-MIXZflFpQXk-unsplash.avif"
|
||||
+++
|
||||
|
||||
## 部署逻辑
|
||||
|
||||
这个软件其实主打的是去中心化,但是如果从 netbird 或者 tailscale 迁移过来,就很不习惯。所以写一个教程按照中心化的使用逻辑去部署。
|
||||
|
||||
按中心化的使用逻辑,需要先部署一个中枢,用来管理所有节点,所有节点也要连接到这个机器上。
|
||||
|
||||
如果你部署 Headscale,那本质上就是一个 Web 控制台 + DERP 中继服务器;如果你部署 Netbird,那本质上就是 Web 控制台 + coturn 中继服务器。只不过你部署的时候是丢到一个 Compose 里一起跑的。
|
||||
|
||||
Easytier 也类似,只不过你需要分开部署。不过由于当前版本下,web 配置无法设置网络白名单和接受子网的白名单,这会导致你的中继节点只要被扫描到就可以被他人使用,你的子网路由也会默认下发到所有节点上,使用上有所不便,所以本版本教程是在无 web 管理的情形下进行配置。若要查看 web 控制台部署,请参阅[这篇文章](https://blog.mitsea.com/1a57bda595c580088006c17d6ba2a744/)
|
||||
|
||||
若要便捷地查看其他设备,你只需要任意节点使用 GUI 客户端,或是使用 web 配置,也可看到其他设备,只是不能管理他们。
|
||||
|
||||
本教程使用二进制程序启动加参数的形式进行配置,不使用配置文件。二进制的所有参数可以通过执行 `easytier --help` 查看说明。
|
||||
|
||||
## 添加中继设备
|
||||
|
||||
### 配置步骤
|
||||
|
||||
1. 首先你要想一个网络名,比如叫 mytier。这个名字会在下面启动中继服务器时设置为白名单。
|
||||
2. 在你想要作为中继服务器上启动 easytier
|
||||
|
||||
使用 `--network-name` 和 `--network-secret` 设置网络名称与密码,后续的节点也要使用这个网络名称和密码
|
||||
|
||||
使用 `--ipv4` 设置你要组网的内网 IP
|
||||
|
||||
使用 `--hostname` 来设置一个容易辨别的设备名称
|
||||
|
||||
`--relay-network-whitelist` 可以说是必加的,否则如果这个节点直接暴露在公网,任何人都可以拿来做中转服务器
|
||||
|
||||
`--manual-routes` 也是建议加上的,EasyTier 如果你设置了子网路由,他会把路由表自动下发到所有节点上,这与 Tailscale 的行为是正好相反的。--manual-routes 后不加任何选项则默认拒绝所有子网路由表,后续你要接受哪个子网网段的路由表就再添加即可
|
||||
|
||||
```bash
|
||||
./easytier-core --network-name mytier \
|
||||
--network-secret passwd \
|
||||
--ipv4 192.168.99.1/24 \
|
||||
--hostname node1 \
|
||||
--manual-routes \
|
||||
--relay-network-whitelist mytier
|
||||
```
|
||||
|
||||
3. 默认端口是 11010,记得开放端口,假设你公网 IP 是 11.22.33.44
|
||||
|
||||
## 添加其他设备
|
||||
|
||||
启动命令和中转服务器基本是一样的,只需要修改 `--ipv4` 和 `--hostname` 和添加中继节点信息
|
||||
|
||||
```bash
|
||||
./easytier-core --network-name mytier \
|
||||
--network-secret passwd \
|
||||
--ipv4 192.168.99.2/24 \
|
||||
--hostname node2 \
|
||||
--manual-routes \
|
||||
--relay-network-whitelist mytier \
|
||||
--external-node tcp://11.22.33.44:11010
|
||||
```
|
||||
|
||||
至此,完成了等效于 Netbird 或是 Tailscale 的添加两个设备的步骤
|
||||
|
||||
## 子网路由设置
|
||||
|
||||
需要再次提醒的是,本教程只是面向从 Netbird 或者 Tailscale 迁移过来的用户,所以下面的说明假设你已经熟悉 Netbird 或者 Tailscale 的子网路由功能
|
||||
|
||||
1. 在你需要共享的局域网内按照上面的步骤安装并配置好 Easytier
|
||||
2. 启动参数增加 `--proxy-networks` ,比如你要下发你当前所在的内网 192.168.5.0/24 给其他节点,那你的启动命令就变成
|
||||
|
||||
```bash
|
||||
./easytier-core --network-name mytier \
|
||||
--network-secret passwd \
|
||||
--ipv4 192.168.99.2/24 \
|
||||
--hostname node2 \
|
||||
--manual-routes \
|
||||
--relay-network-whitelist mytier \
|
||||
--proxy-networks 192.168.5.0/24 \
|
||||
--external-node tcp://11.22.33.44:11010
|
||||
```
|
||||
|
||||
默认情况下,他会把路由表下发到所有其他设备上,不过由于在前面我推荐你使用不带参数的 `--manual-routes` 启动客户端,所以现在其他客户端默认是不会接受下发的路由的。
|
||||
|
||||
3. 若要在别的设备上接收这条路由,修改 `--manual-routes` 选项的参数即可,比如你要接受 192.168.5.0/24 和 192.168.2.0/24 的路由,那启动命令就改成
|
||||
|
||||
```bash
|
||||
./easytier-core --network-name mytier \
|
||||
--network-secret passwd \
|
||||
--ipv4 192.168.99.3/24 \
|
||||
--hostname node3 \
|
||||
--manual-routes 192.168.5.0/24 192.168.2.0/24 \
|
||||
--relay-network-whitelist mytier \
|
||||
--external-node tcp://11.22.33.44:11010
|
||||
```
|
||||
|
||||
4. 如果做网关的话,转发和防火墙可以酌情配置,这些和 netbird 与 tailscale 是一致的:开启 ipv4 转发
|
||||
|
||||
在 `/etc/sysctl.conf` ****文件中添加或修改以下行:
|
||||
|
||||
```
|
||||
net.ipv4.ip_forward = 1
|
||||
```
|
||||
|
||||
然后运行 `sudo sysctl -p` 来应用更改
|
||||
|
||||
5. 配置 NAT 规则
|
||||
|
||||
```bash
|
||||
sudo iptables -I FORWARD -i eth0 -j ACCEPT
|
||||
sudo iptables -I FORWARD -o eth0 -j ACCEPT
|
||||
sudo iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
|
||||
sudo iptables -I FORWARD -i tun0 -j ACCEPT
|
||||
sudo iptables -I FORWARD -o tun0 -j ACCEPT
|
||||
sudo iptables -t nat -I POSTROUTING -o tun0 -j MASQUERADE
|
||||
```
|
||||
|
||||
|
||||
## 保活进程
|
||||
|
||||
由于不使用 web 管理,所以只需要保活 easytire-core 这一个程序
|
||||
|
||||
### 注册为 systemd 服务
|
||||
|
||||
1. 移动二进制文件并设置执行权限
|
||||
|
||||
```bash
|
||||
sudo mv easytier-core /usr/local/bin/easytier-core
|
||||
sudo chmod +x /usr/local/bin/easytier-core
|
||||
```
|
||||
|
||||
2. 创建 systemd 服务单元文件
|
||||
|
||||
```bash
|
||||
sudo nano /etc/systemd/system/easytier-core.service
|
||||
```
|
||||
|
||||
内容如下,就是把启动的参数重新写一遍
|
||||
|
||||
```
|
||||
[Unit]
|
||||
Description=easytier-core Service
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/local/bin/easytier-core --network-name mytier --network-secret passwd --ipv4 192.168.99.1/24 --hostname node1 --manual-routes --relay-network-whitelist mytier
|
||||
User=root
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
```
|
||||
|
||||
3. 设置权限与加载服务
|
||||
|
||||
保存并退出编辑器后,执行以下命令让 systemd 重新加载服务配置:
|
||||
|
||||
```
|
||||
sudo systemctl daemon-reload
|
||||
|
||||
```
|
||||
|
||||
让该服务在开机时自动启动:
|
||||
|
||||
```
|
||||
sudo systemctl enable easytier-core
|
||||
|
||||
```
|
||||
|
||||
启动该服务:
|
||||
|
||||
```
|
||||
sudo systemctl start easytier-core
|
||||
|
||||
```
|
||||
|
||||
你可以使用下面的命令查看服务状态和日志:
|
||||
|
||||
```
|
||||
systemctl status easytier-core
|
||||
journalctl -u easytier-core -f
|
||||
|
||||
```
|
||||
|
||||
4. 后续如果 `--manual-routes` 的参数需要修改,就直接修改 `/etc/easytier/config.env` 里的内容后重启服务就行
|
||||
|
||||
### 使用 docker 部署
|
||||
|
||||
参考官方文档 https://easytier.cn/guide/installation.html 修改这里的启动参数即可
|
||||
|
||||

|
||||
|
||||
```bash
|
||||
command: --network-name mytier --network-secret passwd --ipv4 192.168.99.1/24 --hostname node1 --manual-routes --relay-network-whitelist mytier
|
||||
```
|
||||
|
||||
> Photo by [Pawel Czerwinski](https://unsplash.com/@pawel_czerwinski?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash) on [Unsplash](https://unsplash.com/photos/a-black-and-white-photo-of-a-bunch-of-flowers-MIXZflFpQXk?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash)
|
||||
|
Loading…
x
Reference in New Issue
Block a user