最新消息:前端博客、web前端博客、Angularjs、javascript、jQuery、HTML5、CSS3

使用headscale+tailscale实现内网打洞组成虚拟局域网

杂谈/运维 AZ 3182浏览 0评论

最近有远程文件共享需求,于是网上了解关于虚拟局域的技术文章,发现比传纺VPN更有优势新软件,有类似Zerotier、Nebula、Tailscale 的组网软件。

ZeroTier的硬件无关技术适用于大多数工业、商业或个人设备。它们可以在Windows,macOS,Android,iOS,Linux,FreeBSD和NAS设备上运行。产品是开源的,但受其商业源代码许可证的约束。

Tailscale的架构使用SaaS中央协调服务,该服务对最终用户来说是不可见的。节点通过登录到中央身份系统(如Google,Microsoft AzureAD或Okta)进行授权。Tailscale不使用自定义协议,而是使用标准的WireGuard VPN协议进行数据传输。

ZeroTier和Tailscale都提供点对点网状VPN技术。它们使用不同的协议来提供功能相似的服务。ZeroTier的协议是定制的,而Tailscale则使用行业标准的WireGuard协议作为其数据平面。这两种产品都提供NAT 遍历、加密的对等连接和管理仪表板。

两种技术都需要注册官方账号才能正常使用,且免费设备数有一定数量。但是有大神按Tailscale服务端功能重写了一个开源服务,此服务自建搭配Tailscale客户端使用可以无需注册,也无设备数量限制,此方法唯一不支持的就是IOS端。我选择使用Headscale+Tailscale方案,理由是它不仅可以通过服务端中转,也可以通过加入VPN网络中的另一个节点进行中转。

个人选择方便清爽的服务运行,所以选择docker搭建

#创建服务端docker,创建映射目录

mkdir -p /opt/headscale

#下载官方配置文件
wget https://github.com/juanfont/headscale/raw/main/config-example.yaml -O /opt/headscale/config.yaml

#创建服务

docker run -d \
–name headscale \
–restart always\
-v /opt/headscale/config:/etc/headscale/ \
-p 127.0.0.1:9527:8080 \
-p 127.0.0.1:9090:9090 \
headscale/headscale:latest \
headscale serve

#创建网页管理端

docker run -d \
–name headscale-webui \
–restart always\
-v /opt/headscale/config:/etc/headscale/:ro \
-v /opt/headscale/data:/data \
-p 127.0.0.1:5000:5000 \
–user 1000:1000 \
-e HS_SERVER=https://headscale.xxx.com\
-e DOMAIN_NAME=https://headscale.xxx.com\
-e SCRIPT_NAME=/admin \
-e AUTH_TYPE=Basic \
-e BASIC_AUTH_USER=admin\
-e BASIC_AUTH_PASS=admin\
-e KEY=”5usnAaicyK6DgabWtUVN33pEsY8xxyISMhDoa+boWvY=” \
ifargle/headscale-webui:latest

上面的KEY使用openssl rand -base64 生成

nginx添加配置

map $http_upgrade $connection_upgrade {
default keep-alive;
‘websocket’ upgrade;
” close;
}

——————-分割线,上下内容不是同时放在——————————-

server{

location ^~/
{
proxy_pass https://localhost:9527/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $server_name;
proxy_redirect https:// https://;
proxy_buffering off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
add_header Strict-Transport-Security “max-age=15552000; includeSubDomains” always;
}

location ^~/admin
{
proxy_pass https://localhost:5000/admin/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

}

#创建用户网络并生成网关登录key

docker exec -it headscale namespaces create workgroup
docker exec -it headscale apikeys create -e 720d

tailscale官网下载客户端并安装:https://tailscale.com/download

下载注册配置https://headscale.xxx.com/windows 地址根据配置文件写的来输入,并按照提示一步一步完成操作。

转载请注明:TUTERM.COM » 使用headscale+tailscale实现内网打洞组成虚拟局域网

如果您觉得本文的内容对您的学习有所帮助,您可以支付宝(左)或微信(右):
alipay weichat

您必须 登录 才能发表评论!