Nebula 的 launchd.plist 用于实现 macOS 上开机自动启动 Nebula

2019-12-13 07:15:26 +08:00
 Livid

Nebula 是 Slack 开源的一款用于搭建 overlay network 的工具,在开源之前已经在 Slack 内部使用了两年多。

https://www.v2ex.com/t/621442

最近用了一段时间,觉得非常好用。所以研究了一下怎么样让它在 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 内容进行调整。

10455 次点击
所在节点   Nebula
18 条回复
wzw
2019-12-13 07:36:50 +08:00
什么情况下需要用这类工具,想不到使用场景呀。
Livid
2019-12-13 07:44:10 +08:00
@wzw 我这里的场景是需要从外面的网络安全地连到内网的开发服务器上。这个方案比 VPN 好。
hronro
2019-12-15 01:54:20 +08:00
可以给 Homebrew 提一个 PR 啊!
Livid
2019-12-15 04:13:20 +08:00
@hronro 这个包应该迟早会有官方 maintainer 的,吧?
hronro
2019-12-15 13:55:15 +08:00
@Livid #4 感觉 Homebrew 不像是每个 Formulae 都有固定 maintainer 的,应该是谁都可以去提 PR 的。我查了一下,貌似现在还没有 Nenula 的 PR。https://github.com/Homebrew/homebrew-core
wzw
2019-12-16 10:08:09 +08:00
@Livid #2 周末试一下, 有一个台服务器用来当 lighthouse, 其他没有公网 ip.

结果是: 有些成功,有些不成功.
Seymer
2019-12-17 01:01:05 +08:00
@Livid #2 请问可以说得更详细些吗,或是您使用过程中总结出一些最佳实践什么的,期待您的分享及回复。
Livid
2019-12-17 06:47:24 +08:00
@Seymer 比如假设你需要访问两台位于不同的云里面的服务器。这些服务器为了安全本身做了各种限制访问的规则。

之前如果要连这些服务器,可能需要使用 IPsec VPN 或者跳板机。而现在有了像 Nebula 这样的基于 PKI 的方案,那么基本上我开机之后,什么都不用做,就可以直接访问到这些服务器,还足够安全。
wzw
2019-12-18 07:27:02 +08:00
@Livid 机器十台,有内外网,zerotier 组网正常使用,
但是尝试 nebula,效果只能能 ping 通……

所以继续用 zerotier
psirnull
2019-12-18 08:34:19 +08:00
n2n 不是更简单
whitegerry
2019-12-23 10:37:13 +08:00
@wzw tinc/n2n/zerotier 长期使用,最近内网只在一台机器配置 nebula,跨网段组网也成功了,稳定使用。
wzw
2019-12-23 11:25:28 +08:00
@whitegerry #11 我以前都用 frp,
现在尝试了 nebula, 发现不成功后.
尝试 zerotier, 发现挺好用, 搭建了自己的 moon

有多个公网服务器+多个内网终端
如果让你选 zerotier/nebula/tinc/n2n , 你选哪个, 根据你使用经验, 我就不一一尝试了
whitegerry
2019-12-25 12:39:08 +08:00
@wzw

frp 只临时用,zero/tinc/n2n 都能通的话 nebula 也没问题的,moon 用过一段时间,没有明显益处,现在还用 zerotier 只因为有 ios 端。

也是多个公网服务器内网多个终端,多服务器当然还是用 nebula 建多个 lighthouse 了,跟内网有多少个终端没什么关系。
wzw
2019-12-25 13:50:02 +08:00
@whitegerry #13 nebula 只能 ping 通, 其他都不行呀...
whitegerry
2019-12-25 16:57:19 +08:00
proto: icmp,icmp 要改成 any
whitegerry
2019-12-25 16:58:33 +08:00
@wzw proto: icmp,icmp 要改成 any
wzw
2019-12-25 17:21:02 +08:00
@whitegerry #16 😂, 尴尬, 没有注意到. 改成 any/tcp 应该会好很多.
wzw
2019-12-25 17:22:24 +08:00
@whitegerry #15 我先继续用 zerotier, 等一等 nebula 的生态.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/628564

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX