Nebula 是 Slack 开源的一款用于搭建 overlay network 的工具,在开源之前已经在 Slack 内部使用了两年多。
最近用了一段时间,觉得非常好用。所以研究了一下怎么样让它在 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 内容进行调整。
在 macOS 10.15 Catalina 上,这个启动文件需要放在 /Library/LaunchDaemons
下,并且:
然后用 sudo launchctl load -w
加载。
1
wzw 2019-12-13 07:36:50 +08:00 via iPhone
什么情况下需要用这类工具,想不到使用场景呀。
|
3
hronro 2019-12-15 01:54:20 +08:00
可以给 Homebrew 提一个 PR 啊!
|
5
hronro 2019-12-15 13:55:15 +08:00 1
@Livid #4 感觉 Homebrew 不像是每个 Formulae 都有固定 maintainer 的,应该是谁都可以去提 PR 的。我查了一下,貌似现在还没有 Nenula 的 PR。https://github.com/Homebrew/homebrew-core
|
6
wzw 2019-12-16 10:08:09 +08:00
|
7
Seymer 2019-12-17 01:01:05 +08:00 via iPhone
@Livid #2 请问可以说得更详细些吗,或是您使用过程中总结出一些最佳实践什么的,期待您的分享及回复。
|
8
Livid MOD OP @Seymer 比如假设你需要访问两台位于不同的云里面的服务器。这些服务器为了安全本身做了各种限制访问的规则。
之前如果要连这些服务器,可能需要使用 IPsec VPN 或者跳板机。而现在有了像 Nebula 这样的基于 PKI 的方案,那么基本上我开机之后,什么都不用做,就可以直接访问到这些服务器,还足够安全。 |
9
wzw 2019-12-18 07:27:02 +08:00 via iPhone
|
10
psirnull 2019-12-18 08:34:19 +08:00 via iPhone
n2n 不是更简单
|
11
whitegerry 2019-12-23 10:37:13 +08:00
@wzw tinc/n2n/zerotier 长期使用,最近内网只在一台机器配置 nebula,跨网段组网也成功了,稳定使用。
|
12
wzw 2019-12-23 11:25:28 +08:00
@whitegerry #11 我以前都用 frp,
现在尝试了 nebula, 发现不成功后. 尝试 zerotier, 发现挺好用, 搭建了自己的 moon 有多个公网服务器+多个内网终端 如果让你选 zerotier/nebula/tinc/n2n , 你选哪个, 根据你使用经验, 我就不一一尝试了 |
13
whitegerry 2019-12-25 12:39:08 +08:00
@wzw
frp 只临时用,zero/tinc/n2n 都能通的话 nebula 也没问题的,moon 用过一段时间,没有明显益处,现在还用 zerotier 只因为有 ios 端。 也是多个公网服务器内网多个终端,多服务器当然还是用 nebula 建多个 lighthouse 了,跟内网有多少个终端没什么关系。 |
14
wzw 2019-12-25 13:50:02 +08:00
@whitegerry #13 nebula 只能 ping 通, 其他都不行呀...
|
15
whitegerry 2019-12-25 16:57:19 +08:00 via iPhone
proto: icmp,icmp 要改成 any
|
16
whitegerry 2019-12-25 16:58:33 +08:00 via iPhone
@wzw proto: icmp,icmp 要改成 any
|
17
wzw 2019-12-25 17:21:02 +08:00
@whitegerry #16 😂, 尴尬, 没有注意到. 改成 any/tcp 应该会好很多.
|
18
wzw 2019-12-25 17:22:24 +08:00
@whitegerry #15 我先继续用 zerotier, 等一等 nebula 的生态.
|