随时随地访问异地设备! - 自托管异地组网 VPN - Easytier 部署教程

前言

我们有时在外面需要访问不在同一个内网环境中的异地设备, 如果要搭建 Frp 等类似服务, 会非常的麻烦, 而且灵活性底. 这时我们就需要 VPN 服务. 但传统的 VPN 服务搭建成本太高: 服务器太贵, 搭建又很麻烦. 那么, 有什么低成本, 部署简单的 VPN 服务吗? 有的. 本篇文章将为你介绍一种可以自托管的民用 VPN 组网服务 Easytier.

声明

此 VPN 并非多数人所理解的用于科学上网的代理, 而是 Virtual Private Network (虚拟私人网络). 这种技术可以让您在公共网络中建立一条专有虚拟网络通道, 以此来建立处于不同网络环境中的设备的连接. 借助这项技术, 您可以在外部网络中使用一个专有的 IP 来连接您的设备, 就像在家里使用内网 IP 地址那样.

搭建需求

  • 一台有公网 IPv4 的云/本地服务器 (带宽不做要求)
  • NAT 等级 >= 3 的家用宽带 (非必须)
注: 如果 NAT 等级不满足此要求, 且 IPv6 不可用的情况下, 很可能无法打通 P2P
  • 善于思考的大脑

为什么选择 EasyTier

  • 部署便利, 可部署性强
  • 同时支持中心化/去中心化部署
  • 有完善的 WebUI, 管理方便
  • 不强制 HTTPS
  • 设备接入方便
  • 支持设备平台丰富 ( Linux, Windows, Android, MacOS, HarmonyOS )
  • 支持设备架构丰富 ( x86, x86-64, armhf, arm64, riscv, mips, loongarch )
  • 我会
本篇文章可能需要一个可以科学上网的网络环境

1. 服务端配置

此教程面向的服务端为 Linux 平台

1.1 下载 Easytier 服务端

  • 进入 Easytier 官方发布页 下载与服务器环境对应的发行版, 并解压至任意目录
  • 使用以下指令给予二进制文件可执行权限
chmod +x ./easytier-core
chmod +x ./easytier-web-embed
  • easytier-core 是整个 Easytier 的核心程序, 无论是服务端还是客户端, 均通过此程序建立连接.
  • easytier-web-embed 是一个内嵌了用于管理 Easytier 连接页面的 Web 服务器. 如果您不需要这类工具, 或想使用公共的 Web 页面, 也可以不启用此程序

1.2 部署 Easytier 服务

为了保证 Easytier 在服务器意外断电重启后还能正常运行, 我们需要将 Easytier 部署为 Linux 服务. 这里我们使用 systemctl 来部署

  • 使用以下指令来分别创建内核与 Web UI 的服务
sudo vim /etc/systemd/system/easytier-core.service
sudo vim /etc/systemd/system/easytier-web-embed.service
  • easytier-core.service 中填入如下内容
[Unit]
Description=easytier-core
After=network.target

[Service]
Type=simple
ExecStart=<path/to/easytier-core> -w udp://127.0.0.1:22020/<UserName> --machine-id aliyun-sh
User=root
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
  • easytier-web-embed.service 中填入如下内容
[Unit]
Description=easytier-web-embed
After=network.target

[Service]
Type=simple
ExecStart=<path/to/easytier-web-embed> --api-server-port 11211 --api-host http://127.0.0.1:11211 --config-server-port 22020 --config-server-protocol udp
User=root
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
  • 保存后, 分别启动两项服务的开机启动, 然后先运行 Web UI 的服务
sudo systemctl daemon-reload
sudo systemctl enable easytier-web-embed
sudo systemctl enable easytier-core
sudo systemctl start easytier-web-embed
  • 使用这条命令来检查服务运行状况, 若无异常, 则运行
sudo systemctl status easytier-web-embed
  • 进入 Web UI (地址为 http://<Server IP>:11211), 在 API Host 中填入 http://<Server IP>:11211, 并在如 图 1-2-1 所示的位置注册账号.
注: 用户名应与刚才注册 core 服务时填入的 <UserName> 字段相同
图 1-2-1
图 1-2-1
  • 注册账号成功后登录 Web UI, 并使用这条指令启动 easytier-core 服务.
sudo systemctl start easytier-core
  • 在 Web UI 的侧边栏中切换至 Device List 一栏. 如果配置无误, 你应当看见如 图 1-2-3 所示的您的服务器.

图 1-2-3
图 1-2-3

  • 点击设备的齿轮图标, 即设置按钮, 跳转至创建新连接的页面. 在此页面填入你的 VPN 信息.

注: 如果您正在建立一个新的 VPN 网段, 那么您设置的 IP 地址网段将会成为此 VPN 的网段. 如果您使用的是 DHCP, 那么服务器将自动分配一个可用的网段.
例如: 如果您的 IP 地址设置为 10.0.0.1, 那么该 VPN 的网段就会成为 10.0.0.x, 后续加入的设备均会被分配到此网段下.

  • Network Name: 该 VPN 网段的标识符. 如果您想让其他设备加入此 VPN, 那么这些设备设置的 Network Name 应该相同.
    注: Easytier 识别不同 VPN 的标识符就是这个 Network Name, 一个 Network Name 对应的就是一个 VPN.
  • Network Secret: 该 VPN 的密码.
  • Networking Method: 网络连接方式. 选择 Manual 后, 填入 tcp://<IPAddr>:11010, udp://<IPAddr>:11010. 请在输入完一项后点击如 图 1-2-4 所示的按钮来加入到列表, 否则不生效.

    图 1-2-4
    图 1-2-4

    • Public Server: Easytier 的公共服务器. 如果您想使用公共服务器来建立 VPN 连接, 那么直接使用此选项即可.
    • Manual: 手动配置服务器. 适用于大多数中心化部署方案.
    • Standalone: 将此设备作为独立服务器使用.
  • Advanced Settings: 高级设置. 如果您具有一定的网络工程基础, 可以按照自己的需求来配置, 否则请保持原样不动.
    您可以参考 Easytier 官方文档 来对这里的设置进行配置.
  • Port Forward: 端口转发. 同上.
  • 此时使用这条命令查看 easytier-core 的输出
sudo systemctl status easytier-core
正确配置后的状态输出应如 图 1-2-5 所示的类似
图 1-2-5
图 1-2-5

2. 客户端配置

Linux 客户端

Linux 有两种配置方式: GUI 桌面程序配置与 CLI 命令行程序配置. 因为 GUI 在 Linux 平台使用较少, 因此这里只教学 CLI 程序的配置. 此方法同时适用于客户机与服务器. 当然, 如果您想配置 GUI 程序, 可以参考下文 Windows 平台的 GUI 配置.

2.1 下载程序

  • 官方 Release 页面 根据自身设备平台下载适用于 Linux 版本的压缩包 (示例文件名 easytier-linux-x86_64-v2.4.5.zip), 并将其解压至您的设备.
  • 使用下列命令授予可执行权限
chmod +x ./easytier-core

2.2 配置程序

在注册为服务之前, 我们首先对程序进行测试.

  • 使用这条指令来启动 Easytier 客户端
./easytier-core <IP Mode> --network-name <Network Name> --network-secret <Network Secret> -p <Server Address> <Optional Config>
  • IP Mode: 预期的 IP 地址. 如果您想配置一个静态 IP 地址, 请使用 --ipv4 <IP Address> 参数. 如果您想配置一个 DHCP 地址, 那么请使用 --dhcp 参数
  • Network Name: 该 VPN 网段的标识符.
  • Network Secret: 该 VPN 的密码. 想加入此 VPN 就必须输入相同的密码, 不过多解释.
  • Server Address: 服务器地址. 推荐使用 TCP 方式连接服务器, 因此该地址的填写格式为: tcp://<Server IP>:11010.
  • Optional Config: 附加参数. 这里推荐添加 --multi-thread 参数以启用多线程. 如果您想添加其他更多的参数, 请参考 Easytier 官方文档
    启动程序后, 若输出的日志正常, 则证明此配置有效. 正常的日志输出应如 图 2-2-1 所示, 包含与其他 peer 连接成功的提示.
    图 2-2-1
    图 2-2-1

2.3 注册服务

我们这里同样使用 systemctl 注册服务.

  • 使用这条指令创建 easytier-core 的服务
sudp vim /etc/systemd/system/easytier-core.service
  • 将如下内容添加到此文件中
[Unit]
Description=easytier-core
After=network.target

[Service]
Type=simple
ExecStart=<path/to/easytier-core> <Config>
User=root
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
  • 使用以下命令重载 systemctl 并启动服务
sudo systemctl daemon-reload
sudo systemctl enable easytier-core
sudo systemctl start easitier-core
  • 使用这条指令检查该服务的日志
sudo systemctl status easytier-core

正确的日志输出应如 图 2-2-2 所示, 包含运行成功的提示与 peer 信息.

图 2-2-2
图 2-2-2

至此, 配置结束.

Windows 客户端

Windows 有两种配置方式: GUI 桌面程序配置与 CLI 命令行程序配置. 如果您的配置对象为服务器, 那么则推荐用 CLI 的方式进行配置. 如果为普通家用电脑, 则推荐用 GUI 的方式进行配置.

2.1 GUI 配置

  • 官方 Release 页面 下载适用于 Windows 版本的 GUI 程序 (示例文件名 easytier-gui_2.4.5_x64-setup.exe), 并将其安装至您的电脑. 安装完成后启动程序.
  • 按照下方的提示按需配置您的私有 VPN.

    • Virtual IPv4: 该 VPN 网络中您的设备的虚拟 IPv4 地址. 作为客户端如果没什么特殊的需求, 建议勾选 DHCP 来自动获取可用的 IP 地址.
注: 如果您正在建立一个新的 VPN 网段, 那么您设置的 IP 地址网段将会成为此 VPN 的网段. 如果您使用的是 DHCP, 那么服务器将自动分配一个可用的网段.
例如: 如果您的 IP 地址设置为 10.0.0.1, 那么该 VPN 的网段就会成为 10.0.0.x, 后续加入的设备均会被分配到此网段下.
  • Network Name: 该 VPN 网段的标识符.
  • Network Secret: 该 VPN 的密码.
  • Networking Method: 网络连接方式. 选择 Manual 后, 填入 tcp://<IPAddr>:11010, udp://<IPAddr>:11010. 请在输入完一项后点击如 图 2-1-1 所示的按钮来加入到列表, 否则不生效.

图 2-1-1
图 2-1-1

  • Public Server: Easytier 的公共服务器. 如果您想使用公共服务器来建立 VPN 连接, 那么直接使用此选项即可.
  • Manual: 手动配置服务器. 适用于大多数中心化部署方案.
  • Standalone: 将此设备作为独立服务器使用.
  • Advanced Settings: 高级设置. 如果您具有一定的网络工程基础, 可以按照自己的需求来配置, 否则请保持原样不动.
您可以参考 Easytier 官方文档 来对这里的设置进行配置.
  • Port Forward: 端口转发. 同上.

您可以以 图 2-1-2 所示的博主的配置作为参考.

图 2-1-2
图 2-1-2

配置完成后, 点击 Run Network, 启动 VPN 服务. 如果配置正确且网络环境较为理想, 你应当可以打通所有设备的 P2P.
图 2-1-3
图 2-1-3

说明: 如果无法打通 P2P, 即处于 relay 状态, 那么访问该节点时, Easytier 会选择一台 P2P 延迟对双方都最低的设备来进行中转. relay 符号旁的数字表示 经过的中转节点数量.

2.2 CLI 配置

CLI 的配置方法在 Windows 和 Linux 平台上并无太大差别, 因此这里请参考上文 Linux CLI 程序的配置方法, 在 Windows 板块, 我将只介绍服务的配置方法.

  • easytier-core 的可执行文件本身附带注册服务的功能, 这里我们可以直接调用程序本身来注册 Windows 服务. 指令如下
sudo .\easytier-cli.exe service install `
    --description <Service Description> `
    --display-name <Service Name> `
    --disable-autostart `
    --core-path <path/to/easytier-core> `
    --service-work-dir <Work Dir> `
    -- <Config>
  • Service Description: 服务描述. 随意填写
  • Service Name: 服务名称. 随意填写
  • --disable-autostart: 禁用开机自启. 如果您想启用, 可以将其改为 --enable-autostart, 或执行完后手动启动 service.msc 进行更改.
  • path/to/easytier-core: easytier-core 程序的路径
  • Work Dir: easytier-core 程序的工作目录. 推荐直接填写放置可执行文件的目录.
  • Config: 启动程序时传递的参数. 配置方式与 Linux 的 CLI 相同.
  • 待程序提示注册完成后, 使用这条指令启动服务
sudo .\easytier-cli.exe service start
  • 启动完成后, 可以使用这条指令来查看服务状态
./easytier-cli service status

如服务运行正常, 则配置至此结束


结语

  • 本篇文章涵盖了 Easytier 从 GUI 到 CLI, 从 Linux 到 Windows 的配置. 编写不易, 如果觉得有用, 请留下你的评论, 并将其分享给有需要的人, 感谢!
  • 本人非专业人士, 如有误, 请直接指出, 感谢!
随时随地访问异地设备! - 自托管异地组网 VPN - Easytier 部署教程
https://blog.nanami.tech/archives/72/
本文作者 Madobi Nanami
发布时间 2025-12-08
许可协议 CC BY-NC-SA 4.0
7 comments.
  1. 评论头像

    尊敬的Madobi Nanami,您好:
    湖北联通分配了动态公网ip给我,使用DDNS动态解析分配的动态ip地址,但它屏蔽了8080/80/443端口,当搭建博客时 需要带上端口 非常不好看,例如:share-wishes.live:12345,可以正常访问到网站,我看到您以往的发文在家中配置了数据中心!提及了反向代理,在网络上有相关信息提及配置反向代理隐藏端口转发 实现share-wishes直接访问,如何隐藏这个端口后缀呀。疑问

    大耳朵图图 December 12th, 2025 at 12:11 am Reply
    1. 评论头像

      您好. 这种情况我比较推荐您配合 CDN 使用. 当然您也可以尝试配置 显/隐性 URL 跳转. 如果您想了解具体方案, 可以通过邮件咨询我

      Madobi Nanami 博主 December 12th, 2025 at 12:23 pm Reply
  2. 评论头像

    Hey would you mind letting me know which webhost you're
    using? I've loaded your blog in 3 different web browsers and I must say this blog loads
    a lot quicker then most. Can you recommend a good web hosting provider at a honest price?

    Kudos, I appreciate it!

    wow388 December 11th, 2025 at 06:19 pm Reply
    1. 评论头像

      Hi there! Great to hear you're interested in this topic!

      I’ve actually set up two physical servers at home to host all my services. Since home networks in China don’t have public IPv4 addresses, I use a technology called STUN. It’s a bit tricky to explain clearly, but you can look it up if you’d like to know more.

      Basically, STUN is a technology that helps expose a local port to the internet, allowing anyone to access your service through that port. My main server hosts the actual services but doesn’t directly face the internet, while my secondary server handles all network-related services like STUN, reverse proxy, FRP, etc. So the flow of my services goes like this: Main Server (hosting services) → Sub Server (handles external traffic) → OpenWrt Router → Public Internet.

      There’s a reverse proxy running on my secondary server—I use OpenResty. When an HTTP request comes to my website, it first passes through a CDN. The CDN then connects to the port on my secondary server that’s exposed by the STUN service, and finally reaches the OpenResty web server. OpenResty’s reverse proxy then forwards the request to the actual service hosted on my main server. That’s the complete path. It may seem complex, but it’s quite useful—you don’t even need to buy a cloud server unless you require very high stability.

      If you have any questions, feel free to let me know. By the way, the best way to reach me about topics like this is via email. You’ll find my email address on my About (关于) page. Looking forward to your reply!

      Madobi Nanami 博主 December 11th, 2025 at 07:36 pm Reply
  3. 评论头像

    Hi there outstanding blog! Does running a blog
    like this take a massive amount work? I've absolutely no
    knowledge of programming however I was hoping to start my own blog soon. Anyway, if you have any recommendations or tips for
    new blog owners please share. I understand this is off subject
    but I simply wanted to ask. Thanks a lot!

    slotjpe111.online December 11th, 2025 at 06:13 pm Reply
    1. 评论头像

      It will actually take a massive amount work if you want to do it will, If you have any trouble in it, just contact me.

      Madobi Nanami 博主 December 11th, 2025 at 07:38 pm Reply
  4. 评论头像

    厉害OωO

    aqii December 8th, 2025 at 11:12 pm Reply
发表新评论