介绍
平时用笔记本, 家里有 nas 服务器, 如何随时随地的访问呢?
将家里的 nas 与你的笔记本组合到同一个网络下, 就可以随时随地的访问
需要用到的软件是: easytier
它可以很方便的将两台机器组合到不同的网络下
txt
nas(11.11.11.1) -> relayserver -> macbookpro(11.11.11.2)
macbookpro(11.11.11.2) -> relayserver -> nas(11.11.11.1)
目的让两台设备可以互相 ping 通, 我们发现中间有个关键的因素就是中继服务器(relayserver)
1. 它们3台设备用到的软件都是一样的, 只是配置文件有所不同
2. 由于用到的软件是一样的, 所以直接全部用同样的 docker-compose.yaml 启动镜像即可
3. 注意配置文件不同, 所以请重点观察配置文件细节docker-compose 启动 easytier
不管是 nas/relayserver/mac 都是一样的启动方式,
如果你喜欢 GUI 的方式, 那么也可以去官网下载GUI客户端
yaml
services:
easytier:
image: easytier/easytier:latest
hostname: easytier
container_name: easytier
restart: unless-stopped
network_mode: host
cap_add:
- NET_ADMIN
- NET_RAW
environment:
- TZ=Asia/Shanghai
devices:
- /dev/net/tun:/dev/net/tun
volumes:
- /etc/machine-id:/etc/machine-id:ro
- ./config:/etc/easytier # 将配置文件映射到容器内
command: -c /etc/easytier/config.toml # 注意配置文路径目录结构应该如下:
txt
.
├── config
│ └── config.toml
└── docker-compose.yaml
1 directory, 2 files配置
注意这台机器需要公网 ip, 让 nas 和 mac 都能访问到
假设公网ip为: 35.200.190.100, 那么它的配置文件应该如下:
toml
instance_name = "relay-server" # 当前设备在私网中的标识符
listeners = [
"tcp://0.0.0.0:11010",
"udp://0.0.0.0:11010",
"wg://0.0.0.0:11011",
]
[network_identity]
network_name = "ezvpn" # 私有网络名称
network_secret = "5ebe2294ecd0e0f08eab7690d2a6ee69" # 私有网络密码
[vpn_portal_config]
client_cidr = "11.11.11.0/24"
wireguard_listen = "0.0.0.0:11011" # 开启 wireguard 监听
[flags]
latency_first = true
private_mode = true
multi_thread_count = 4
enable_udp_broadcast_relay = true
relay_network_whitelist = "eznetvpn"
relay_all_peer_rpc = true
# hostname = "easytierrelay.example.com" # 如果服务器公网ip绑定了域名可以设置toml
instance_name = "home-nas" # 设备标识符
ipv4 = "11.11.11.1" # nas 的私网ip
listeners = []
[network_identity]
network_name = "ezvpn" # 注意私网名称要与中继服务器相同
network_secret = "5ebe2294ecd0e0f08eab7690d2a6ee69" # 注意私网密码要与中继服务器相同
[vpn_portal_config] # 允许使用 wireguard 协议链接
client_cidr = "11.11.11.0/24"
wireguard_listen = "0.0.0.0:11011"
[[peer]]
uri = "tcp://35.200.190.100:11010" # tcp链接中继服务器
[[peer]]
uri = "udp://35.200.190.100:11010" # udp链接中继服务器
[[peer]]
uri = "wg://35.200.190.100:11011" # wg协议链接中继服务器
[flags]
latency_first = true
private_mode = true
multi_thread_count = 4
enable_udp_broadcast_relay = truetoml
instance_name = "macbookpro" # 设备标识符
ipv4 = "11.11.11.2" # mac 的私网 ip
listeners = []
[network_identity]
network_name = "ezvpn" # 注意私网名称要与中继服务器相同
network_secret = "5ebe2294ecd0e0f08eab7690d2a6ee69" # 注意私网密码要与中继服务器相同
[vpn_portal_config] # 允许使用 wireguard 协议链接
client_cidr = "11.11.11.0/24"
wireguard_listen = "0.0.0.0:11011"
[[peer]]
uri = "tcp://35.200.190.100:11010" # tcp链接中继服务器
[[peer]]
uri = "udp://35.200.190.100:11010" # udp链接中继服务器
[[peer]]
uri = "wg://35.200.190.100:11011" # wg协议链接中继服务器
[flags]
latency_first = true
private_mode = true
multi_thread_count = 4
enable_udp_broadcast_relay = true效果预览
我配置时的ip与写笔记时稍有不同, 不过原理是一样的, 没影响
- 命令行:
sh
~ $ ping 10.10.10.11
PING 10.10.10.11 (10.10.10.11): 56 data bytes
64 bytes from 10.10.10.11: icmp_seq=0 ttl=64 time=27.347 ms
64 bytes from 10.10.10.11: icmp_seq=1 ttl=64 time=27.106 ms
64 bytes from 10.10.10.11: icmp_seq=2 ttl=64 time=30.939 ms
^C
--- 10.10.10.11 ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 27.106/28.464/30.939/1.753 ms- MacGUI 客户端:
