Tailscale_base

Tailscale 基础教程

tailscale 是什么 ?

  • 背景知识: 在现代网络体系中,因为ipv4的数量有限和网络安全的问题,普通的PC之间大多采用NAT(网络地址转换)进行交流,但是这样有个问题,当PC之间的交流必须依赖NAT的时候,两个普通PC(也就是没有公网ipv4的个人电脑)是没有办法相互联系的.现在使用的诸多应用或者软件, 都是通过 C(client)/S(server) 架构进行工作的(比如微信, 有一个中央服务器,A 和 B两台PC都连接这个有公网ip的中央服务器, 然后所有数据都存储在服务器上, 由此进行交流).

  • tailscale 则实现了两个节点的直接交流, 主要使用 WireGuard 加密算法, 传输的流量的具体内容不会被中间人攻击(除非你自己的私钥泄漏了, 那谁也保不住你). tailscale通过官方的中继服务器, 将两个PC连接起来, 这个过程叫做 NAT 穿透(当然是针对ipv4的), 如果你的电脑有公网ipv6, 就可以直接直连而不用做NAT打洞了.

  • 大概的工作原理: A -> 中继服务器 -> 服务器根据A的请求来推断出A对应的位置(也就是A所在的网络和A具体是局域网的哪个设备), 之后, 如果有一台 B 要来找 A, 服务器发现记录里面有A的位置 -> 发送给B -> B 给 A 发送数据包 -> A 也知道了 B 的位置。

由此, A 和 B这两台设备就实现了 “直连”, 注意这里的直连并不是说可以没有中间媒介就直接通信, 而是说两台设备可以直接相互发送信息, 而中间自然要经过诸如路由器, 交换机之类的东西, 还有网线, 但是这个过程中的流量是加密的, 即使是官方的服务器也不能破解你的数据包.

tailscale 能干什么 ?

这是重头戏, 当你:

  • 家里有一台老设备, 可以24小时通电运行, 并且有网络
  • 或者你有那种放在实验室或者随便哪个有电有网的地方的机器

如果你符合上面的条件, 恭喜你可以用tailscale搭建一个私人(或者属于家庭的)服务器

所有的服务都可以跑在你的老旧或者无头服务器上面

可以用来

  • 当家庭的网盘 (速度不限, 容量取决于你自己配置的硬盘)
  • 个人的工具小网站 (比如说可以部署一个 siyuan 笔记)
  • 真正学习远程linux运维和相关的网络配置
  • 部署好玩的项目让家里人使用(只要把他们的设备也加入到你的tailnet中就可以了)
  • 硬件远程开发, 部署, 监控(不需要公网ip)
  • 跟好友组建一个属于你们的网络, 可以一起在这个网络里面玩游戏, 聊天等, 所有的数据都不上中心服务器, WireGuard 加密保证了你们的秘密对话不会泄漏

如何上手 ?

tailscale 是开箱即用的, 不需要配置任何的端口, 代理或者其他的东西, 你需要做的只有两件事

  • 打开你的 linux 服务器并用官方的脚本进行安装 并启动
curl -fsSL https://tailscale.com/install.sh | sh
tailscale up
  • 上面一步做完之后就会出现一个链接, 用你的浏览器打开并选择一个方式登录

这一步做完之后, 你就创建了一个属于自己的网络, 你可以往这个网络里面添加其他的设备, 并进行ssh连接, 网络访问等

ssh秘钥过期了怎么办 ?

只要在 tailscale console 里面配置好了ACL规则, 保证你的电脑有ssh的权限, 就可以通过下面的命令重置秘钥, 然后就可以顺利ssh了

ssh-keygen -R your-server-ip
Built with Hugo
Theme Stack designed by Jimmy