;

林师傅的贼窝 每天都被折磨的想死

初探easytier

介绍

之前介绍了 tailscale, zerotier 等等内网穿透工具, 但是这些都需要收费, 即便自建了也只是帮助打洞而已, 并不是真正的无限制, 虽然一般免费的也够用, 但我就是不爽, 特别是他们都是国外的项目, 服务器也都是国外, 打洞速度我感觉有点慢, 虽然自建 derp 服务器或者 moon 服务器可以解决这个问题, 但是感觉有点麻烦, 于是我发现了一个未来可期的国产项目, easytier, 而且他还有社区文档, QQ 群等, 我感觉挺不错的

安装

首先下载, 选择自己对应的机型下载, 或者直接前往 github 的 release 页面下载, 我是下载的 zip 压缩包, 解压后里面有三个文件, easytier-core, easytier-cli, easytier-web, 其中核心是easytier-core, easytier-cli 是命令行工具, 用于查看easytier-core的运行配置的, easytier-web 是 web 端, 通过 web 控制核心的行为

mkdir -p /opt/easytier/bin

我们首先将其上传到我们的内网网关机器上, 这里我将easytier-core, easytier-cli上传到/opt/easytier/bin目录下, 然后赋予可执行权限

chmod +x /opt/easytier/bin/easytier-core
chmod +x /opt/easytier/bin/easytier-cli
cat >> /opt/easytier/config.toml << EOF
instance_name = "easytier"
instance_id = "f4e293fc-c3b1-4c0c-a1f8-91a4367ee177"
dhcp = true
listeners = [
    "tcp://0.0.0.0:11010",
    "udp://0.0.0.0:11010",
]
rpc_portal = "0.0.0.0:0"
routes = ["192.168.50.0/24"]

[network_identity]
network_name = "easytier"
network_secret = "@W5028sr5026"

[[peer]]
uri = "tcp://103.40.14.90:11010"

[[peer]]
uri = "udp://103.40.14.90:11010"

[[proxy_network]]
cidr = "192.168.50.0/24"

[flags]
dev_name = "et_0"
relay_all_peer_rpc = true
EOF

cat >> /usr/lib/systemd/system/easytier.service << EOF
[Unit]
Description=EasyTier Service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
ExecStart=/opt/easytier/bin/easytier-core -c /opt/easytier/config.toml

[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now easytier
# 如果要代理内网机器的话还要开启ipv4转发
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

配置文件

instance_name = "easytier"
instance_id = "f4e293fc-c3b1-4c0c-a1f8-91a4367ee177"
dhcp = true # 虚拟网的IP

# 监听的端口和地址
listeners = [
    "tcp://0.0.0.0:11010",
    "udp://0.0.0.0:11010",
]

# rpc的管理端口
rpc_portal = "0.0.0.0:0"

# 代理的局域网网段需要设置的路由,即告诉easytier这个网络中有关此网段的请求路由到这个节点
routes = ["192.168.50.0/24"]

[network_identity]
network_name = "easytier" # 网络的名称, 可以自定义
network_secret = "@W5028sr5026"

[[peer]]
uri = "tcp://public.easytier.cn:11010" # 节点的uri

[[peer]]
uri = "udp://public.easytier.cn:11010"

[[proxy_network]]
# 代理的局域网网段
cidr = "192.168.50.0/24"

[flags]
# 设置tun网卡名称
dev_name = "et_0"
# 此项是允许转发RPC, 有助于其他网络的节点打洞成功
relay_all_peer_rpc = true

到这里就算部署好了, 其他设备的只需要设置相同 peer 节点和网络名称密钥就可以组网了

自建节点

easytier 支持自建节点, 自建节点同样需要先下载好easytier-coreeasytier-cli, 不过与 tailscale 和 zerotier 不同的是, easytier 中每个节点都是对等的, 即不需要特别的配置都会帮助网络中的其他机器进行组网, 所以自建 easytier 节点只需要改变配置文件即可

instance_name = "easytier"
instance_id = "fc5b0c98-f580-49d7-b0ba-6028895d8022"
dhcp = true
listeners = [
    "tcp://0.0.0.0:11010",
    "udp://0.0.0.0:11010",
]
rpc_portal = "0.0.0.0:15888"
# wg为wireguard监听,目前easytier没有ios客户端,只能通过wireguard直接接入
# xxx.xxx.xxx.xxx为此机器的公网ip, 端口则为Nat的端口而非实际监听的端口
mapped_listeners = ["tcp://xxx.xxx.xxx.xxx:11010","udp://xxx.xxx.xxx.xxx:11010","wg://xxx.xxx.xxx.xxx:22023"]
[network_identity]
network_name = "easytier"
network_secret = "@W5028sr5026"

# 由于该节点自己就具有公网IP, 因此不需要加入公共节点组成的发现网络中
# [[peer]]
# uri = "tcp://public.easytier.top:11010"

[vpn_portal_config]
client_cidr = "10.10.10.0/24"
wireguard_listen = "0.0.0.0:22023"

[flags]
relay_all_peer_rpc = true

之后启动,同样在客户端输入相同的网络名称密钥,并且 peer 节点输入该机器的公网 IP 和映射端口即可

Easytier 内网穿透

内网穿透 Easytier玩法

Easytier玩法
初探easytier