目录
前言
一般互联网公司都会私有化的部署一个 vpn,用来访问公司内网资源,比如 openvpn...
当然还有更简单的方案也能实现端对端加密,例如 tailscale、headscale、wireguard...
这里来说一下 tailscale 组建内网,是我们能通过外网 ip 访问到我们组建的内网设备.
Ps:实际上我主要是解决部署多台机器分布式系统下 mysql 和 redis 端口暴露被频繁攻击的问题...
一、Window 组网步骤
1.1、安装
a)官网:Tailscale · Best VPN Service for Secure Networks
之后一路 next 即可
1.2、组网
a)下载好之后就在这里.
b)此时我的电脑就已经介入 Tailscale 了,分配的 ip 地址就是 100.94.135.96
c)这里也可以重新命名,自己看更直观
d)建议都禁用密钥过期
c)之后你就可以继续在 linux 上,或者其他系统上安装 Tailscale ,然后按照上述同样的方式加入内网中,就可以实现通过外网 ip 访问到内网中的设备啦~
二、Linux 组网步骤
a)和 windows 安装大差不差,直接复制以下命令去 linux 机器上执行即可.
curl -fsSL https://tailscale.com/install.sh | sh
b)安装完成之后,执行以下命令启动连接
systemctl start tailscaled
systemctl enable tailscaled
tailscale up
c)接下来,提示你访问这个连接地址去授权加入这个设备,你需要复制这个https地址到浏览器打开登陆授权即可
d)点击连接
e)连接成功后 Linux 也会给响应的反馈
d)返回浏览器页面,就可以看到自己的机器了. 记得也设置密钥禁止过期.
三、Mac 组网步骤
a)这里提一点,Mac 从 Tailscale 官网给的地址下载是需要美国的 AppStore 账号的,这可怎么办呢?
没关系,还有其他办法. 实际上我们可以直接去 Tailscale 的开源平台上找到下载客户端下载地址(所以平台涉及的客户端都可以在此下载)
开源平台地址:https://pkgs.tailscale.com/
选择 Stable 版本进入
b)进入了之后,直接下拉到最后,就可以看到 MacOS 的安装了
c)下载好压缩包解压, 一定一定先不要点打开程序,记得先放到应用程序之后在打开.
d)点击 get Started 即可
e)会跳转浏览器进入登录界面,登陆即可,然后点击Connect进行加入组网。
四、网络太慢,下载不了?
1)centos 解决
一般情况下,都是因为 rpm 这个包下载不下来,他就是一个安装包(linux 会提示你具体是哪一个).
然后想办法把这个包下载下来...
下载下来就是 `tailscale_1.74.1_x86_64.rpm` 这样一个包.
然后通过以下命令安装即可
sudo yum install ./tailscale_1.74.1_x86_64.rpm
2)ubuntu 解决
有了 rpm 这个包后,由于 ubuntu 不支持 rpm,因此要转化为 deb.
这里就需要使用 alien
sudo apt install alien
使用 alien 将 rpm 转化成 deb
sudo alien tailscale_1.74.1_x86_64.rpm
使用 dpkg 安装 deb
sudo dpkg -i tailscale_1.74.1-2_amd64.deb
五、yum源 和 DNS 失效了?
阿里云服务器内置的yum源地址是 mirrors.cloud.aliyuncs.com , 域名解析后为100.100.2.148, 而 Tailscale 分配的虚拟地址也是 100 开头的, 因此有了 Tailscale 的虚拟地址后便访问不了阿里云内网的 yum 源了.
需要替换阿里云内网的镜像地址 mirrors.cloud.aliyuncs.com 为阿里云公网的镜像地址mirrors.aliyun.com, 命令如下:
cd /etc/yum.repos.d/
sed -i 's/http:\/\/mirrors\.cloud\.aliyuncs\.com/https:\/\/mirrors\.aliyun\.com/g' *.repo
另外域名解析也会被 tailscale 覆盖,需要修改 dns 为公网 dns
使用如下命令查看网络连接名
nmcli connection show
Ps:我这里是 System eth0,由于中间有空格,因此需要加转移字符 System\ eth0
修改 dns 为公网 dns:
nmcli connection modify System\ eth0 ipv4.dns 223.5.5.5
nmcli connection up System\ eth0