当前位置:   article > 正文

一款比 Tailscale 更好的内网穿透方案 Headscale

headscale api

公众号关注 「奇妙的 Linux 世界」

设为「星标」,每天带你玩转 Linux !

18e46a05bcd93f9589006e61beec6a1c.png

前言

headscale[1] 是一款今年 2021 年出现的一款 Tailscale 控制服务器的开源实现。也是唯一的一款。望能发展壮大。

环境

  1. Ubuntu 18.04.3(理论上正常支持 systemctl 的 Linux 发行版本都能搭建)

  2. 端口 8080

  3. 版本为 v0.1171c20818f26722686d51cb57baf684a3.png

注意事项

官方的当前时间也是本文章撰写的时间。最新版本的配置文件不兼容版本号为 v0.12.1

搭建过程

下载二进制文件与源代码

  • headscale_0.11.0_linux_amd64[2]

  • Source code (zip)[3]

d3a6ce499fba7e5b247f042dc3841e64.png
文件

上传 headscale_0.11.0_linux_amd64 文件到/usr/local/bin并重命名为headscale并赋予执行权限

$ chmod 755 /usr/local/bin/headscale

登录服务器创建目录及文件

  1. $ mkdir /etc/headscale
  2. $ cd /etc/headscale
  3. $ touch db.sqlite
  4. $ touch config.yaml
  5. $ touch derp.yaml

注意在 0.12 版本已不需要生成密钥会自动生成,或许需要安装wireguard我们是 0.11 版本所以需要手动生成

  1. $ apt-get update
  2. $ apt-get install wireguard
  3. $ wg genkey > private.key

最后目录结构如下

  1. root@10-255-1-181:/etc/headscale# tree
  2. .
  3. ├── config.yaml
  4. ├── db.sqlite
  5. ├── derp.yaml
  6. └── private.key
  7. 0 directories, 4 files
  8. root@10-255-1-181:/etc/headscale#

填写 config.yaml 内容,内容来源于解压的 v0.11.0.zip 压缩包 config-example.yaml 内容

fa225aee2f5cd1389cba1f556c48eba7.png
config-example

填写 derp.yaml 内容内容来源于解压的 v0.11.0.zip 压缩包 derp-example.yaml 内容

f2df9ab191bdbc0228e01231c8c63741.png
derp-example

撰写headscale.service

  1. # /etc/systemd/system/headscale.service
  2. [Unit]
  3. Description=headscale
  4. After=network.target
  5. [Service]
  6. WorkingDirectory=/etc/headscale
  7. ExecStart=/usr/local/bin/headscale serve
  8. # Disable debug mode
  9. Environment=GIN_MODE=release
  10. [Install]
  11. WantedBy=multi-user.target

重载service与设置开机启动

  1. $ systemctl daemon-reload
  2. $ systemctl enable headscale
  3. $ systemctl start headscale
8e57e1f3a865b788d888fd81feeb33d3.png
状态

最后附上我的配置文件以供参考[4]

功能

首先看一下帮助文件

eff3a0c2f843b643b017bce32f46c35f.png
帮助

组网互联功能

控制端命令行下创建命名空间myfirstnamespace可以理解用户?

$ headscale namespaces create myfirstnamespace

客户端执行:

  1. $ tailscale up --login-server YOUR_HEADSCALE_URL
  2. ##例子tailscale up --login-server http://headscale.gao4.top:8080

YOUR_HEADSCALE_URL 为服务器链接。

返回服务端命令行执行下面命令,意思是加入一个 myfirstnamespace 命名空间,YOURMACHINEKEY 为上面命令返回的密钥

$ headscale -n myfirstnamespace nodes register -k YOURMACHINEKEY

子网路由

当前时间段关于 headscale 中文教程谷歌几乎搜索不到,可以参考这个英文教材:

  • https://leffler.tech/2021/10/22/headscale-notes/

Linux 下设置 Ipv4 与 ipv6 路由转发

  1. $ echo 'net.ipv4.ip_forward = 1' | tee /etc/sysctl.d/ipforwarding.conf
  2. $ echo 'net.ipv6.conf.all.forwarding = 1' | tee -a /etc/sysctl.d/ipforwarding.conf
  3. $ sysctl -p /etc/sysctl.d/ipforwarding.conf

客户端通告网段

$ tailscale up --advertise-routes=192.168.0.0/24 --login-server=https://headscale.domain.com

查看路由开启可以看到结果是关闭的:

  1. $ headscale routes list --namespace $NAMESPACE $NODE_NAM
  2. Route          | Enabled
  3. 192.168.0.0/24 | false

开启路由

$ headscale routes enable --namespace $NAMESPACE $NODE_NAME 192.168.0.0/24

查看结果

  1. $ headscale routes list --namespace $NAMESPACE $NODE_NAME
  2. Route          | Enabled
  3. 192.168.0.0/24 | true

其他节点查看路由结果

$ tailscale up --accept-routes --login-server=https://headscale.domain.com

参考

  • How to set up or migrate Headscale[5]

  • Running headscale[6]

引用链接

[1]

headscale: https://github.com/juanfont/headscale

[2]

headscale_0.11.0_linux_amd64: https://github.com/juanfont/headscale/releases/download/v0.11.0/headscale_0.11.0_linux_amd64

[3]

Source code (zip): https://github.com/juanfont/headscale/archive/refs/tags/v0.11.0.zip

[4]

最后附上我的配置文件以供参考: https://gao4.top/usr/uploads/2021/12/3689285750.zip

[5]

How to set up or migrate Headscale: https://blog.unixfy.net/how-to-set-up-or-migrate-headscale/

[6]

Running headscale: https://github.com/juanfont/headscale/blob/main/docs/Running.md

原文链接:https://gao4.top/723.html

本文转载自:「云原生实验室」,原文:https://tinyurl.com/3mv83rrw,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com。

81e5b42fa5f60cc7b637b5e0f1654129.gif

最近,我们建立了一个技术交流微信群。目前群里已加入了不少行业内的大神,有兴趣的同学可以加入和我们一起交流技术,在 「奇妙的 Linux 世界」 公众号直接回复 「加群」 邀请你入群。

1163c3cb14bd9990e749a8c55d9cb87d.png

你可能还喜欢

点击下方图片即可阅读

5d2aa22670c4b96d02076c037d600e83.png

使用 Tailscale 快速实现远程访问局域网

90c0497706f1daaba17b4844c37eeb59.png
点击上方图片,『美团|饿了么』外卖红包天天免费领

00f155f946a515a41b06ace59abe1175.png

更多有趣的互联网新鲜事,关注「奇妙的互联网」视频号全了解!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/365214
推荐阅读
  

闽ICP备14008679号