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

相关推荐
星星也在雾里8 小时前
PgBouncer 解决 PostgreSQL 连接数超限 + 可视化监控
数据库·postgresql
雨辰AI10 小时前
SpringBoot3 + 人大金仓读写分离 + 分库分表 + 集群高可用 全栈实战
java·数据库·mysql·政务
长城202410 小时前
关于MySql的ONLY_FULL_GROUP_BY问题
数据库·mysql·聚合列
常常有10 小时前
MySQL 底层执行原理:输入SQL语句到两阶段提交
数据库·sql·mysql
不仙52011 小时前
VMware Workstation 26.0.0 在 Ubuntu 24.04 (内核 6.17.0) 上的安装与内核模块编译问题
linux·ubuntu·elasticsearch
Mr. zhihao11 小时前
深入解析redis基本数据结构
数据结构·数据库·redis
m0_7488394911 小时前
利用天正暖通CAD快速掌握风管数量统计的方法
数据库
随身数智备忘录11 小时前
什么是设备管理体系?设备管理体系包含哪些核心模块?
网络·数据库·人工智能
dapeng-大鹏11 小时前
KVM+LVM 零停机在线扩容 Ubuntu 根分区:从磁盘添加到逻辑卷扩展完整
linux·运维·ubuntu·磁盘空间扩展
海市公约12 小时前
MySQL更新语句执行全流程:从Buffer Pool修改到二阶段提交
数据库·mysql·binlog·innodb·undo log·二阶段提交·update执行原理