EasyTier利用飞牛自建中转&P2P打洞服务器及配置客户端
配置服务端
1,添加配置文件
进入文件管理
里的docker
新建文件夹easytier
>config
,把config.yaml
上传进去config.yaml
内的内容如下
1 | instance_name = "server-fnos" # 实例名称:这个easytier实例的唯一标识符,用于区分同一台机器上运行的多个实例 |
2,配置docker-compose
然后进入docker
容器,选择Compose
,新增项目:
项目名称:easytier
路径:/vol2/1000/docker/easytier
来源:上传docker-compose.yml
docker-compose.yml
内的内容如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15version: '3.8' # Compose 文件版本
services:
easytier:
container_name: easytier # 容器名称
image: easytier/easytier:latest # 使用的镜像(latest 标签)
restart: always # 设置容器自动重启策略
privileged: true # 启用特权模式,允许容器执行更多系统操作
network_mode: host # 使用主机网络模式(共享主机网络)
hostname: easytier # 设置容器的主机名
volumes:
- ./config:/root # 挂载主机目录 ./config 到容器内 /root
environment:
- TZ=Asia/Shanghai # 设置容器时区为上海
command: -c /root/config.yaml # 从config.yaml配置文件启动
其中
config.yaml
就是刚开始配置的config文件
完成后运行即可
注意检查日志是否有报错
配置客户端
配置PC客户端
下载easytier
客户端文件,下载地址
Windows 版本下载:https://github.com/EasyTier/EasyTier/releases/download/v2.2.4/easytier-windows-x86_64-v2.2.4.zip
其他版本下载:https://github.com/EasyTier/EasyTier/releases/tag/v2.2.4
解压缩到文件夹到D:\Program Files\easytier
下载nssm
,安装 Windows 系统服务,实现开机自启,下载地址:
NSSM 工具下载地址:https://nssm.cc/download
下载后把nssm.exe
解压到D:\Program Files\easytier
文件夹内
在D:\Program Files\easytier
创建文件config.toml
,粘贴下边内容进去1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28instance_name = "zhangz-pc" # 实例名称:这个easytier实例的唯一标识符,用于区分同一台机器上运行的多个实例
hostname = "zhangz-pc" # 主机名:在虚拟网络中显示的名称,其他节点看到的就是这个名字
ipv4 = "10.8.8.2" # IPv4地址:服务器在虚拟网络中的固定IP地址
dhcp = false # DHCP功能:关闭DHCP服务,表示使用静态IP分配而不是自动分配
# 网络监听配置
listeners = [] # 此节点不监听任何 incoming 连接,客户端不需要被连接,只需要连接服务器
mapped_listeners = [] # 映射监听器:用于特殊网络环境(如NAT后的端口映射),当前为空
exit_nodes = [] # 网络功能出口节点:允许作为出口网关的节点列表,当前为空
rpc_portal = "0.0.0.0:15888" # RPC 管理接口配置,含义是允许从任何地方通过 15888 端口使用 easytier-cli 工具来管理这个节点
# 网络身份:定义虚拟网络的认证信息
[network_identity]
network_name = "zhangz" # 网络名称,所有节点必须相同
network_secret = "Zhangz110119!" # 网络密码,所有节点必须相同
# 对等体连接配置
[[peer]] # 定义一个对等体连接(双括号表示是数组,可以多个)
uri = "tcp://fnos.jintian.site:11010" # 要连接的服务器地址,这里我用tcp
# 功能标志
[flags]
no_tun = false # 禁用TUN:false表示创建虚拟网卡(服务器必须为false)
default_protocol = "tcp" # 默认协议:优先使用TCP协议进行通信
enable_encryption = true # 启用加密:所有通信都进行加密
enable_ipv6 = true # 启用IPv6:支持IPv6协议
mtu = 1380 # MTU值:网络包的最大传输单元,1380是推荐的优化值
用管理员进入cmd
,粘贴下边内容安装服务1
2nssm install EasyTier "D:\Program Files\easytier\easytier-core.exe"
nssm set EasyTier AppParameters "-c config.toml"
回车后启动服务1
nssm start EasyTier
测试连接
进入正在运行的easytier
的终端,选择/bin/sh
对应的连接,输入1
easytier-cli peer
看到下边内容表示成功
查看或编辑服务1
nssm edit EasyTier
卸载服务1
nssm remove EasyTier
假如失败,删除后重新配置,完整重新配置命令如下:1
2
3
4
5
6
7
8nssm remove EasyTier confirm
nssm install EasyTier "D:\Program Files\easytier\easytier-core.exe"
nssm set EasyTier AppParameters "-c config.toml"
nssm set EasyTier AppDirectory "D:\Program Files\easytier"
nssm set EasyTier AppStdout "D:\Program Files\easytier\service.log"
nssm set EasyTier AppStderr "D:\Program Files\easytier\service-error.log"
nssm set EasyTier AppExit Default Restart
nssm start EasyTier
配置xiaomi-air13客户端
配置方式同PC客户端的配置方式,仅config.toml文件不同
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 instance_name = "xiaomi-air13" # 实例名称:这个easytier实例的唯一标识符,用于区分同一台机器上运行的多个实例
hostname = "xiaomi-air13" # 主机名:在虚拟网络中显示的名称,其他节点看到的就是这个名字
ipv4 = "10.8.8.3" # IPv4地址:服务器在虚拟网络中的固定IP地址
dhcp = false # DHCP功能:关闭DHCP服务,表示使用静态IP分配而不是自动分配
# 网络监听配置
listeners = [] # 此节点不监听任何 incoming 连接,客户端不需要被连接,只需要连接服务器
mapped_listeners = [] # 映射监听器:用于特殊网络环境(如NAT后的端口映射),当前为空
exit_nodes = [] # 网络功能出口节点:允许作为出口网关的节点列表,当前为空
rpc_portal = "0.0.0.0:15888" # RPC 管理接口配置,含义是允许从任何地方通过 15888 端口使用 easytier-cli 工具来管理这个节点
# 网络身份:定义虚拟网络的认证信息
[network_identity]
network_name = "zhangz" # 网络名称,所有节点必须相同
network_secret = "Zhangz110119!" # 网络密码,所有节点必须相同
# 对等体连接配置
[[peer]] # 定义一个对等体连接(双括号表示是数组,可以多个)
uri = "tcp://fnos.jintian.site:11010" # 要连接的服务器地址,这里我用tcp
# 功能标志
[flags]
no_tun = false # 禁用TUN:false表示创建虚拟网卡(服务器必须为false)
default_protocol = "tcp" # 默认协议:优先使用TCP协议进行通信
enable_encryption = true # 启用加密:所有通信都进行加密
enable_ipv6 = true # 启用IPv6:支持IPv6协议
mtu = 1380 # MTU值:网络包的最大传输单元,1380是推荐的优化值
配置nas客户端
配置homenas
创建配置文件config.yaml1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32instance_name = "homenas" # 实例名称:这个easytier实例的唯一标识符,用于区分同一台机器上运行的多个实例
hostname = "homenas" # 主机名:在虚拟网络中显示的名称,其他节点看到的就是这个名字
ipv4 = "10.8.8.12" # IPv4地址:服务器在虚拟网络中的固定IP地址
dhcp = false # DHCP功能:关闭DHCP服务,表示使用静态IP分配而不是自动分配
# 网络监听配置
listeners = [] # 此节点不监听任何 incoming 连接,客户端不需要被连接,只需要连接服务器
mapped_listeners = [] # 映射监听器:用于特殊网络环境(如NAT后的端口映射),当前为空
exit_nodes = [] # 网络功能出口节点:允许作为出口网关的节点列表,当前为空
rpc_portal = "0.0.0.0:15888" # RPC 管理接口配置,含义是允许从任何地方通过 15888 端口使用 easytier-cli 工具来管理这个节点
# 网络身份:定义虚拟网络的认证信息
[network_identity]
network_name = "zhangz" # 网络名称,所有节点必须相同
network_secret = "Zhangz110119!" # 网络密码,所有节点必须相同
# 对等体连接配置
[[peer]] # 定义一个对等体连接(双括号表示是数组,可以多个)
uri = "udp://fnos.jintian.site:11010" # 要连接的服务器地址,这里我用udp
# 代理网络:允许虚拟网络内的客户端通过此服务器访问的物理网络段
[[proxy_network]]
cidr = "192.168.200.0/24" # 表示服务器可以充当到这个网段的网关
# 功能标志
[flags]
no_tun = false # 禁用TUN:false表示创建虚拟网卡(服务器必须为false)
default_protocol = "tcp" # 默认协议:优先使用TCP协议进行通信
enable_encryption = true # 启用加密:所有通信都进行加密
enable_ipv6 = true # 启用IPv6:支持IPv6协议
mtu = 1380 # MTU值:网络包的最大传输单元,1380是推荐的优化值
把config.yaml上传到docker
>easytier
>config
里
添加docker-compose
进入Container Manager,选择项目
,新增项目:
项目名称:easytier
路径:/volume1/docker/easytier
来源:上传docker-compose.yml
文件:
docker-compose.yml
内容如下,它同服务器fnOS的一样,1
2
3
4
5
6
7
8
9
10
11
12
13
14
15version: '3.8' # Compose 文件版本
services:
easytier:
container_name: easytier # 容器名称
image: easytier/easytier:latest # 使用的镜像(latest 标签)
restart: always # 设置容器自动重启策略
privileged: true # 启用特权模式,允许容器执行更多系统操作
network_mode: host # 使用主机网络模式(共享主机网络)
hostname: easytier # 设置容器的主机名
volumes:
- ./config:/root # 挂载主机目录 ./config 到容器内 /root
environment:
- TZ=Asia/Shanghai # 设置容器时区为上海
command: -c /root/config.yaml # 从config.yaml配置文件启动
然后下一步下一步就可以运行了。
配置完成后测试连接
然后再次进入fnOS正在运行的easytier
的终端,选择/bin/sh
对应的连接,输入下边代码进行测试
1 easytier-cli peer
配置company-nas
创建配置文件config.yaml1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28instance_name = "company-nas" # 实例名称:这个easytier实例的唯一标识符,用于区分同一台机器上运行的多个实例
hostname = "company-nas" # 主机名:在虚拟网络中显示的名称,其他节点看到的就是这个名字
ipv4 = "10.8.8.11" # IPv4地址:服务器在虚拟网络中的固定IP地址
dhcp = false # DHCP功能:关闭DHCP服务,表示使用静态IP分配而不是自动分配
# 网络监听配置
listeners = [] # 此节点不监听任何 incoming 连接,客户端不需要被连接,只需要连接服务器
mapped_listeners = [] # 映射监听器:用于特殊网络环境(如NAT后的端口映射),当前为空
exit_nodes = [] # 网络功能出口节点:允许作为出口网关的节点列表,当前为空
rpc_portal = "0.0.0.0:15888" # RPC 管理接口配置,含义是允许从任何地方通过 15888 端口使用 easytier-cli 工具来管理这个节点
# 网络身份:定义虚拟网络的认证信息
[network_identity]
network_name = "zhangz" # 网络名称,所有节点必须相同
network_secret = "Zhangz110119!" # 网络密码,所有节点必须相同
# 对等体连接配置
[[peer]] # 定义一个对等体连接(双括号表示是数组,可以多个)
uri = "tcp://fnos.jintian.site:11010" # 要连接的服务器地址,这里我用tcp
# 功能标志
[flags]
no_tun = false # 禁用TUN:false表示创建虚拟网卡(服务器必须为false)
default_protocol = "tcp" # 默认协议:优先使用TCP协议进行通信
enable_encryption = true # 启用加密:所有通信都进行加密
enable_ipv6 = true # 启用IPv6:支持IPv6协议
mtu = 1380 # MTU值:网络包的最大传输单元,1380是推荐的优化值
把config.yaml上传到docker
>easytier
>config
里
添加docker-compose
进入Container Manager,选择项目
,新增项目:
项目名称:easytier
路径:/volume1/docker/easytier
来源:上传docker-compose.yml
文件:
docker-compose.yml
内容如下,它同服务器fnOS的一样,1
2
3
4
5
6
7
8
9
10
11
12
13
14
15version: '3.8' # Compose 文件版本
services:
easytier:
container_name: easytier # 容器名称
image: easytier/easytier:latest # 使用的镜像(latest 标签)
restart: always # 设置容器自动重启策略
privileged: true # 启用特权模式,允许容器执行更多系统操作
network_mode: host # 使用主机网络模式(共享主机网络)
hostname: easytier # 设置容器的主机名
volumes:
- ./config:/root # 挂载主机目录 ./config 到容器内 /root
environment:
- TZ=Asia/Shanghai # 设置容器时区为上海
command: -c /root/config.yaml # 从config.yaml配置文件启动
然后下一步下一步就可以运行了。