#tailscale #zerotier #vpn 2023年3月26日:自建derp 曾使用过 zerotier、tailscale、wireguard 以及它们的一些衍生产品,如 netmaker 和 headscale,用于搭建内网传统工具。 wireguard:这是一种最原始的方式,需要一台拥有公网 IP 的机器。 netmaker:在 2021 年或 2022 年第一次使用它,但它好像有很多问题,GitHub 上有一堆 issues,遇到各种莫名其妙的问题。 headscale:我和 netmarker 一起尝试使用,需要一些爬坑,而且客户端需要修改,例如 Windows 需要修改注册表,相对来说比较麻烦。 zerotier:目前作为备选工具在使用,安装部署最为便捷,openwrt 上有现成的设施。但总体感觉是,它的首次连接速度太慢了,P2P 打洞也比较弱。对于个人来说,首次连接速度太慢影响很大,例如在公司,通常使用手机热点通过 zerotier 连接家里的设备,每次打开热点都需要稍等一小会儿才能连接成功。而且,带手机上个洗手间回来,热点又断了,还得重新等待连接。 tailscale:目前作为主力工具在使用。当手机热点有公网 IP 时,P2P 打洞成功率非常高,连接速度也特别快,客户端不需要像headscale那样进行额外的修改。 客户端运行在openwrt软路由上,用于在外对家里设备的访问,运行命令: 其中需要传入TS_STATE_DIR环境变量,因为在docker中,默认是以临时节点(Ephemeral nodes)的方式运行,关闭后会重新生成节点的ip信息,并且上一次的登录信息失效。故需要提供一个位置来保存节点的信息 PS: 最近挪了个地方,所在的网络无法进行P2P打洞,因此需要使用中继服务。而tailscale的derp服务都在国外,导致延迟很高。因此决定自己搭建一个derp服务来提高连接速度和稳定性。 部署成功后直接访问域名,应该有如下信息 为了让tailscale使用搭建的derp服务,需要在tailscale的web页面的Access Controls中添加如下内容: 重启下客户端,看看是不是通过relay方式连接上了my-derp中继。检查命令如下: 注意: 连接上并不意味着一定能够使用,最好通过ping其他节点观察延迟是否有明显降低。我自己的环境延迟大概从800ms降低到了200ms,提升还是很大的。 如果ping不通,需要注意以下两个问题:更新日志
前言
docker部署
docker run -d --restart=always --name=tailscaled -v /dev/net/tun:/dev/net/tun --network=host --cap-add=NET_ADMIN --cap-add=NET_RAW --env TS_ROUTES=192.168.50.0/24 --env TS_STATE_DIR=/var/lib/tailscale tailscale/tailscale:v1.34.2
当前时间节点,使用docker部署的最新版本V1.36.2有重新生成ip的问题,回滚到V1.34.2则正常,不知到时环境的问题还是bug自建derp
部署
version: "3"
services:
derper:
image: fredliang/derper
container_name: derper
restart: always
volumes:
- ./cert:/cert
environment:
- DERP_DOMAIN=xx.yyy.com # 替换成自己的域名即可
- DERP_CERT_DIR=/cert
ports:
- 3478:3478/udp
- 443:443
添加配置
"derpMap": {
"OmitDefaultRegions": false,
"Regions": {
"900": {
"RegionID": 900,
"RegionCode": "my-derp",
"Nodes": [
{
"Name": "1",
"RegionID": 900,
"HostName": "xx.yyy.com", //自己的域名
"STUNPort": 3478, // 整数,stun 端口
"DERPPort": 443, // 整数,自定义的 derper 端口
},
],
},
},
},
tailscale netcheck
tailscale status
2023-03-26
Views