数据科学每日总结--Day41--ubuntu安装tailscale

在用ubuntu开发时,我们经常是通过远程ssh连接来开发的。而对于有些在境外的开发人员来说,像向日葵这种软件的连接很不稳定,容易断开。这个时候,就需要我们在ubuntu上装tailscale供ssh连接了。

ubuntu安装tailscale

在很多教程里,在ubuntu里装tailscale都是用手动安装的命令,需要GPG密钥,例如

复制代码
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.gpg | sudo apt-key add -
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.list | sudo tee /etc/apt/sources.list.d/tailscale.list
sudo apt-get update && sudo apt-get install tailscale

但是在实操的过程中,这个命令很容易遇到下载的密钥找不到,又要手动下载密钥或者去查询并验证密钥是否是对的,很麻烦;亦或者教程会推荐用curl直接一键用tailscale密钥安装:

复制代码
curl -fsSL https://tailscale.com/install.sh | sh && sudo tailscale up --auth-key='密钥'

这类命令后续需要下载许多包,且也要安装GPG密钥。

其实很多时候,像这种软件下载,我们首先要做的不是在网上找教程,而是去官网里看看有没有一键下载的命令或者推荐的方式,可能是平时大家下载软件时总是要把默认路径从C盘改到其他盘,大家都不太相信官网的命令。但实际上,官网的命令是包含了要下载的所有东西的,我们只需要在ubbutu运行:

复制代码
curl -fsSL https://tailscale.com/install.sh | sh

看到:

复制代码
Created symlink /etc/systemd/system/multi-user.target.wants/tailscaled.service → /lib/systemd/system/tailscaled.service.
+ [ false = true ]
+ set +x
Installation complete! Log in to start using Tailscale by running:

sudo tailscale up

就说明下载成功了,接下来我们在官网注册一下tailscale账号,在设置里找到key,创建一个用于外部连接的密钥,然后在ubbutu运行:

复制代码
sudo tailscale up --auth-key=密钥

没有输出是正常的,在linux系统里除了运行一些进程和下载更新包外,许多命令都是没有输出的。接下来我们运行:

复制代码
tailscale ip

会看到返回两个网址,一个是IPV4,一个是IPV6,都能用来ssh连接。

到这一步先别急,很多人装好后,着急忙慌地就直接下载tailscale客户端尝试进行ssh连接了,但是还有很关键的一步:开启ubbutu的ssh连接,并检查防火墙是不是屏蔽了。

首先让我们检查一下ssh有没有安装:

复制代码
sudo systemctl status ssh

如果显示inactive,not found或者不活动,就说明未安装或未启动。这个时候运行:

复制代码
sudo apt update && sudo apt install openssh-server -y
sudo systemctl start ssh
sudo systemctl enable ssh  # 设置开机启动

设置开机启动是为了防止以后出现类似的问题,毕竟一般用ubbutu开发的话,这台远程的服务器一般是不关机的

接着我们来检查防火墙:

复制代码
sudo ufw status

显示inactive的话,就说明防火墙没启用,可以忽略;但如果显示active,就需要开放ssh端口:

复制代码
sudo ufw allow ssh  # 或 sudo ufw allow 22/tcp

然后输入命令来检查是否监听了ssh端口:

复制代码
sudo ss -tlnp | grep :22

如果有类似显示:

复制代码
sudo ss -tlnp | grep :22
LISTEN 0      128                     0.0.0.0:22         0.0.0.0:*    users:(("sshd",pid=20031,fd=3))          
LISTEN 0      128                        [::]:22            [::]:*    users:(("sshd",pid=20031,fd=4))

说明已经监听着了。接下来检查SSH设置里是否用默认值"PasswordAuthentication no"来阻止密码登录,这同样会使ssh登录失效。

运行一下命令,备份原始配置文件并添加配置:

复制代码
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
# 启用密码认证
sudo sed -i '/^# Authentication/a PasswordAuthentication yes' /etc/ssh/sshd_config

# 确保Root登录被安全地禁止
sudo sed -i '/^# Authentication/a PermitRootLogin prohibit-password' /etc/ssh/sshd_config

然后运行:

复制代码
sudo grep -E "^PasswordAuthentication|^PermitRootLogin" /etc/ssh/sshd_config

如果看到:

复制代码
PasswordAuthentication yes
PermitRootLogin prohibit-password

就说明配置成功了,可以进行tailscale远程ssh连接。

本地windows下载tailscale

我们在windows本地下载tailscale时,一般会遇到两种错误。

  • 一是下载时,没有用管理员身份运行,此时在安装时会报错;

  • 二是在下载过程中,碰到错误:

    Some Windows system services required by Tailscale are currentlydisabled. Please re-enable the following services: iphlpsvc

它的意思是,本地的一个网络服务iphlpsvc被中断了, 此时需要我们用win+R输入services.msc ,找到IP Helper,把启动设置改为自动,点击确定后,再双击点开,点击服务状态下的启动(如果显示已停止)。然后继续安装就能成功了

相关推荐
AI砖家2 分钟前
多智能体系统实战:架构设计、数据库表设计与 Skill 体系
数据库·多智能体·skill·agent架构设计·agengt
夜雪一千34 分钟前
MySQL查询条件的顺序是否影响查询效率
数据库·mysql
X-⃢_⃢-X1 小时前
十、Redis之布隆过滤器
数据库·redis·缓存
Nturmoils1 小时前
订单号查出了三笔,我以为是数据脏了,其实是自己写错了
数据库
ZKNOW甄知科技1 小时前
燕千云深度集成飞书:以AI之力,开启无感IT运维体验
大数据·运维·网络·数据库·人工智能·低代码·集成学习
TDengine (老段)1 小时前
TDengine 免费版说明
java·大数据·数据库·物联网·时序数据库·tdengine
汉知宝科技1 小时前
历史案件数据迁移:知识产权管理系统落地的第一道门槛
大数据·数据库
这就是佬们吗1 小时前
Python入门⑤-异常处理、文件操作与实战项目
开发语言·数据库·python·算法·pycharm
吴声子夜歌1 小时前
MongoDB 4.x——SpringBoot框架整合
数据库·spring boot·mongodb
凤山老林2 小时前
MySQL“读已提交“并非万能药:深度解析RC隔离级别的盲区与适用边界
数据库·mysql