数据科学每日总结--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,把启动设置改为自动,点击确定后,再双击点开,点击服务状态下的启动(如果显示已停止)。然后继续安装就能成功了

相关推荐
亮子AI10 小时前
【MySQL】node.js 如何判断连接池是否正确连接上了?
数据库·mysql·node.js
a程序小傲10 小时前
【Node】单线程的Node.js为什么可以实现多线程?
java·数据库·后端·面试·node.js
DBA小马哥13 小时前
时序数据库迁移替换与时序数据库分片
数据库·时序数据库
DBA小马哥13 小时前
时序数据库迁移方案在物联网设备监测中的实践与性能突破
数据库·物联网·时序数据库
ID_1800790547313 小时前
小红书笔记详情API接口基础解析:数据结构与调用方式
数据结构·数据库·笔记
ruleslol19 小时前
MySQL的段、区、页、行 详解
数据库·mysql
while(1){yan}19 小时前
MyBatis Generator
数据库·spring boot·java-ee·mybatis
それども19 小时前
MySQL affectedRows 计算逻辑
数据库·mysql
是小章啊19 小时前
MySQL 之SQL 执行规则及索引详解
数据库·sql·mysql