使用 Tailscale 实现 Ubuntu 远程开发(VSCode Remote SSH + NoMachine)

前言

我的开发环境:

复制代码
Windows 主机
↓
VSCode Remote SSH
↓
Ubuntu 开发机

Ubuntu 经常:

  • 连接手机热点

  • IP 经常变化

  • 每次都要重新查 IP

后来使用:

Tailscale

来实现:

  • 固定远程 IP

  • 任意网络远程开发

  • SSH 稳定连接

  • NoMachine 远程桌面

效果非常好。


一、Windows 安装 Tailscale

官网下载:

复制代码
https://tailscale.com/download

安装完成后:

  1. 登录自己的 Tailscale 账号

  2. 保持在线即可

登录后可以在后台看到自己的所有设备。


二、Ubuntu 安装 Tailscale

Ubuntu:

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

安装完成后:

复制代码
sudo tailscale up --accept-dns=false

浏览器会弹出登录页面。

登录同一个 Tailscale 账号即可。


三、查看 Ubuntu 的固定 IP

Ubuntu:

复制代码
tailscale ip

会得到类似:

复制代码
100.x.x.x

这个 IP 基本长期固定。

以后:

  • 手机热点

  • 家里 WiFi

  • 学校网络

都不会影响远程连接。


四、Windows 使用 VSCode Remote SSH 连接 Ubuntu

Windows:

安装:

VSCode Remote SSH 插件

然后配置:

复制代码
~/.ssh/config

添加:

复制代码
Host ubuntu-dev
    HostName 100.x.x.x
    User your_username

以后直接:

复制代码
Remote-SSH: Connect to Host

即可远程开发。


五、NoMachine 远程桌面

如果需要远程 Ubuntu 桌面:

Ubuntu 安装:

复制代码
https://www.nomachine.com/

然后 Windows 也安装 NoMachine。

连接:

复制代码
100.x.x.x

即可远程桌面。

非常适合:

  • ROS

  • Gazebo

  • RViz

  • MATLAB

  • 仿真 GUI


六、重要:Ubuntu 不建议开启 Tailscale DNS 接管

Ubuntu 默认:

Tailscale 会接管系统 DNS。

这可能导致:

  • GitHub Copilot Agent 不稳定

  • VSCode Remote 偶尔异常

  • 长连接断流

尤其:

复制代码
Ubuntu + VSCode Remote SSH + Copilot

场景下。

因此推荐:

复制代码
sudo tailscale up --accept-dns=false

这样:

  • Tailscale 仍正常工作

  • 固定 IP 保留

  • SSH 正常

  • NoMachine 正常

  • Copilot 更稳定

这是目前 Linux 远程开发中比较稳定的做法。


七、常用命令

查看 Tailscale 状态

复制代码
tailscale status

查看 Tailscale IP

复制代码
tailscale ip

停止Tailscale

复制代码
sudo systemctl stop tailscaled
sudo systemctl disable tailscaled
sudo tailscale down

重新启动(不接管 DNS)

复制代码
sudo tailscale up --accept-dns=false

八、最终效果

最终开发架构:

复制代码
Windows
├── VSCode
├── Remote SSH
├── GitHub Copilot
└── NoMachine

        ↓ Tailscale

Ubuntu
├── SSH
├── Tailscale
├── Docker
├── ROS
├── AI开发环境
└── 仿真系统

特点:

  • 不需要同一 WiFi

  • 不需要查 IP

  • 手机热点也能远程开发

  • 固定远程 IP

  • VSCode Remote SSH 稳定

  • Copilot 使用正常

相关推荐
jieyucx17 分钟前
Windows11 & Linux 环境Docker部署与镜像拉取效率优化实战指南
linux·运维·docker
weixin_307779131 小时前
Linux下ClickHouse数据仓库故障系统化诊断脚本
linux·运维·clickhouse·自动化·数据库开发
我命由我123459 小时前
Android Studio - Android Studio 自定义预览尺寸
android·java·ide·java-ee·android studio·android-studio·android runtime
小林ixn9 小时前
Node.js 文件系统与路径处理:从 API 到工程化实战
node.js·编辑器·vim
RisunJan12 小时前
Linux命令-rlogin(远程登录)
linux·运维
大飞记Python15 小时前
Linux命令速查手册(测试开发4年实战总结,附PDF)
linux·网络·pdf
拥抱太阳061616 小时前
HarmonyOS 应用开发《掌上英语》第2篇:ArkTS 模块化开发:Index.ets 统一导出模式深度解析
pytorch·ubuntu·harmonyos
顾喵17 小时前
PetaLinux 2017.4 实操指南:PREEMPT_RT实时补丁移植+Zynq PL中断UIO用户态配置(超完整避坑版)
linux
小樱花的樱花17 小时前
Linux 线程的创建
linux·c语言·开发语言
mounter62517 小时前
BPF 的进化史:从网络过滤器到 AI 时代的 Linux 核心引擎
linux·网络·人工智能·ebpf·linux kernel·kernel