整个过程涉及三个主机
一个是家里的台式机 home 内网ip为192.168.69.101
一个是公司的笔记本 mac
一个是有公网ip的服务器 server
云存储在家里和home在同一个内网,IP地址为192.168.69.100
最终效果是,我在mac上可以直接访问到云存储192.168.69.100的smb服务,而且有nat穿透,同一个城市能达到个位数的延迟
nebula下载地址
https://github.com/slackhq/nebula/releases
第一步,生成证书
./nebula-cert ca -name "Myorganization, Inc" ./nebula-cert sign -name "server" -ip "192.168.91.1/24" ./nebula-cert sign -name "home" -ip "192.168.91.2/24" ./nebula-cert sign -name "mac" -ip "192.168.91.3/24"
第二步,修改配置文件
先下载配置文件模版 https://github.com/slackhq/nebula/blob/master/examples/config.yml
1 server上的配置文件需要
修改pki下的ca,cert,key路径为真实路径
修改static_host_map为"192.168.91.1": ["server真实公网ip地址:4242"]
修改lighthouse下am_lighthouse: true
修改lighthouse下hosts为
hosts: - "192.168.91.1"
修改punchy下punch和response为true
修改firewall下outbound和inbound全部为any
2 home下的配置文件
修改pki下的ca,cert,key路径为真实路径
修改static_host_map为"192.168.91.1": ["server真实公网ip地址:4242"]
修改lighthouse下hosts为
hosts: - "192.168.91.1"
修改punchy下punch和response为true
修改firewall下outbound和inbound全部为any
3 mac下的配置文件
修改pki下的ca,cert,key路径为真实路径
修改static_host_map为"192.168.91.1": ["server真实公网ip地址:4242"]
修改lighthouse下hosts为
hosts: - "192.168.91.1"
修改punchy下punch和response为true
修改firewall下outbound和inbound全部为any
第三步,启动nebula及转发端口
在三台机器上各自启动nebula
./nebula -config config.yml
下载gost https://github.com/ginuerzh/gost/releases
把pc的4445端口转发到云存储的445端口
在pc上执行
./gost -L tcp://:4445/192.168.69.100:445
第四步,访问smb共享即可
注意mac上需要访问 \192.168.91.2:4445你自己的那串数字