一、下载安装headscale
项目主页:https://github.com/juanfont/headscale/
# 下载服务端
wget --output-document=/usr/local/bin/headscale \
https://github.com/juanfont/headscale/releases/download/v0.22.3/headscale_0.22.3_linux_amd64
# 设置执行权限
chmod +x /usr/local/bin/headscale
自行选择不同版本
#创建配置目录:
mkdir -p /etc/headscale
#创建目录用来存储数据与证书:
mkdir -p /var/lib/headscale
#创建空的 SQLite 数据库文件:
touch /var/lib/headscale/db.sqlite
# 从example 创建 Headscale 配置文件:
wget https://github.com/juanfont/headscale/raw/main/config-example.yaml -O /etc/headscale/config.yaml
-
server_url
设置为http://<PUBLIC_IP>:8080
,将<PUBLIC_IP>
替换为公网 IP 或者域名。 -
可自定义私有网段,也可同时开启 IPv4 和 IPv6:
-
ip_prefixes: # - fd7a:115c:a1e0::/48 - 10.1.0.0/16
-
随机端口要打开,否则同一个内网中多个终端会有问题
-
randomize_client_port: true
创建 SystemD service 配置文件:
# /etc/systemd/system/headscale.service
[Unit]
Description=headscale controller
After=syslog.target
After=network.target
[Service]
Type=simple
User=headscale
Group=headscale
ExecStart=/usr/local/bin/headscale serve
Restart=always
RestartSec=5
# Optional security enhancements
NoNewPrivileges=yes
PrivateTmp=yes
ProtectSystem=strict
ProtectHome=yes
ReadWritePaths=/var/lib/headscale /var/run/headscale
AmbientCapabilities=CAP_NET_BIND_SERVICE
RuntimeDirectory=headscale
[Install]
WantedBy=multi-user.target
# 创建 headscale 用户:
useradd headscale -d /home/headscale -m
# 修改 /var/lib/headscale 目录的 owner:
chown -R headscale:headscale /var/lib/headscale
#修改配置文件中的 `unix_socket`:
unix_socket: /var/run/headscale/headscale.sock
# Reload SystemD 以加载新的配置文件:
systemctl daemon-reload
#启动 Headscale 服务并设置开机自启:
systemctl enable --now headscale
# 查看运行状态:
systemctl status headscale
# 查看占用端口:
ss -tulnp|grep headscale
# 创建一个 namespace,以便后续客户端接入,例如:
headscale namespaces create default
# 查看命名空间:
headscale namespaces list
二、客户端安装
目前所有平台的客户端都能自定义 Tailscale 的控制服务器
OS | Supports headscale |
---|---|
Linux | Yes |
OpenBSD | Yes |
FreeBSD | Yes |
macOS | Yes (see /apple on your headscale for more information) |
Windows | Yes docs |
Android | Yes docs |
iOS | Yes docs |
1、Windows客户端
打开http://ip:8080/windows
下载一个注册表修改工具,执行一下
安装tailscale客户端
启动,登陆的时候就会去我们自己的服务器认证了
认证成功获取到ip,客户端就加入网络了
而且windows端做路由也是可以的,如果需要,加上参数–advertise-routes=192.168.188.0/24
打开cmd,执行
tailscale up --login-server=http://ip:8080 --accept-routes=true --accept-dns=false --advertise-routes=192.168.188.0/24
再去服务器端查看route,激活路由
headscale routes list -i 1
headscale routes enable -i 1 -r "192.168.188.0/24"
2、linux客户端
直接下载。不同平台安装方法:https://pkgs.tailscale.com/stable/
Tailscale 接入:
tailscale up --login-server=http://ip:8080 --accept-routes=true --accept-dns=false
# 如果申请为虚拟网关,需要指定
tailscale up --login-server=http://ip:8080 --accept-routes=true --accept-dns=false --advertise-routes=192.168.188.0/24
# 打开转发
echo 'net.ipv4.ip_forward = 1' | tee /etc/sysctl.d/ipforwarding.conf
echo 'net.ipv6.conf.all.forwarding = 1' | tee -a /etc/sysctl.d/ipforwarding.conf
sysctl -p /etc/sysctl.d/ipforwarding.conf
执行完上面的命令后,会出现下面的信息:
To authenticate, visit:
http://xxxxxx:8080/register?key=905cf165204800247fbd33989dbc22be95c987286c45aac303393704
在浏览器中打开该链接,就会出现如下的界面:
将其中的命令复制粘贴到 headscale 所在机器的终端中,并将 NAMESPACE 替换为前面所创建的 namespace。
headscale -n default nodes register --key d1614a1407b7554cd368db21f383197802d9c95249130d7b3db256458d9a4043
# 注册成功,查看注册的节点:
headscale nodes list
# 许可路由的话,通过上个命令就可以看到linux节点的id,就是1,2,3,……
# 查看改节点的路由,假如id是1
headscale routes list -i 1
# 许可网关
headscale routes enable -i 1 -r "192.168.188.0/24"
# 再次查看虚拟网关状态,id是1
headscale routes list -i 1
# enabled就是已经启用了
回到 Tailscale 客户端所在的 Linux 主机,可以看到 Tailscale 会自动创建相关的路由表和 iptables 规则。路由表可通过以下命令查看:
ip route show table 52
3、群晖客户端
项目地址:https://github.com/tailscale/tailscale-synology
下载安装包手动上传到webui,安装启用
登录到ssh命令行
tailscale up --login-server=http://ip:8080 --accept-dns=false
剩下的步骤跟linux一致
如果需要群晖做虚拟网关的话,添加参数–advertise-routes=192.168.199.0/24
tailscale up --login-server=http://ip:8080 --accept-dns=false --advertise-routes=192.168.199.0/24
4、openwrt客户端
项目地址:https://github.com/adyanth/openwrt-tailscale-enabler
按照项目的安装说明安装即可
安装完成,启动服务后,执行跟linux和群晖相同的命令
5、安卓客户端
下载地址:Download · Tailscale
打开后右上角三点点开没有changge server,点一下三点,再点一下空白处,重复三次后会出现
在地址框内输入http://ip:8080
点击save后会跳转一个地址,后面的方法同linux客户端一样
6、ios客户端
设置——tailscale——Reset Keychain,同样地址栏输入http://ip:8080,跳转网址后操作同linux客户端一样
参考:开源版tailscale,headscale搭建 - DongVPS
- THE END -
最后修改:2023年12月9日
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://lg5.top/1167.html