
aliyun 的 ECS, 线路是 "阿里云 /电信 /联通 /移动 /教育网" 10 台 Windows10, 电信 300M 光纤, ikuai 路由桥接光猫拨号, 下接无网管交换机, 交换机接终端 1 台 Windows10, 移动 1000M 光纤, 路由器桥接光猫, 电脑接路由器, 1 台 Windows10, 集中办公的环境, 不清楚网络结构, 只知道是电信 目前只有 lighthouse 节点是可以通所有节点, 而 lighthouse 节点所处的云服务器是所有线路都可以走, 所以怀疑是运营商的线路有影响
]]>最近这段时间,我基本上已经把我的大部分机器都用这个工具连了起来。这样无论我在用什么网络,都可以安全地连到位于各种其他网络里的服务器。
只差那些 Windows 的机器上作为服务自动启动了。今天也搞定了,在这里分享一下过程。
在 Windows 上启动 Nebula 之前需要先安装 TAP 驱动,可以从这里找一个最新的版本:
https://build.openvpn.net/downloads/releases/
目前 Nebula 的 1.0.0 release 里还不支持 Windows 上的服务安装,但是最新的源代码里已经有 service install 的支持了。所以我们需要先从源代码构建一个最新版本的 Nebula。
go get github.com/slackhq/nebula cd $GOPATH/src/github.com/slackhq/nebula make service bin-windows 然后就可以在 $GOPATH/src/github.com/slackhq/nebula 下看到新鲜出炉的 nebula.exe 和 nebula-cert.exe。
然后就可以用这样语法把 Nebula 安装成 Windows 服务了:
nebula -service install -config c:\Example\Nebula\config.yml 需要注意的是,-config 里需要给出配置文件的完整路径。
最近用了一段时间,觉得非常好用。所以研究了一下怎么样让它在 macOS 上自动启动,目前在 Homebrew 里还没有包。
这是一个可以让 Nebula 在 macOS 上开机就自动启动的 launchd.plist 脚本。
sudo vi /Library/LaunchDaemons/com.slack.nebula.plist
内容:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.slack.nebula</string> <key>KeepAlive</key> <true/> <key>RunAtLoad</key> <true/> <key>ProgramArguments</key> <array> <string>/usr/local/bin/nebula</string> <string>-config</string> <string>/usr/local/etc/nebula.yaml</string> </array> <key>StandardErrorPath</key> <string>/dev/null</string> <key>StandardOutPath</key> <string>/dev/null</string> </dict> </plist> 然后在这个目录下 sudo launchctl load com.slack.nebula.plist,因为增加用户态网卡需要 root 权限,所以需要用 sudo 执行。如果你的 Nebula 配置文件不在 /usr/local/etc/nebula.yaml 这个位置那么就根据实际情况对 plist 内容进行调整。