使用 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 使用正常

相关推荐
谷哥的小弟10 小时前
CentOS Stream浴火重生
linux·运维·centos
程序员-Benothing10 小时前
Shell输入输出详解:read、echo、printf、颜色输出
linux·运维·服务器
Ai-_Man11 小时前
您您这可以把Microsofat Copilot的多个会话比如说。左侧的多个会话一次性导出吗?不是单条会话里面的多次会对话。AI导出鸭
javascript·人工智能·ai·小程序·电脑·copilot
FPGA小徐11 小时前
从 NEMU 到 AbstractMachine:程序、运行时环境与 AM 完全解析
linux·运维·服务器
qetfw12 小时前
Debian Chrony 时间同步、RAID5 与 LUKS 磁盘加密配置
linux·debian
东城居士15 小时前
Linux驱动阻塞与非阻塞访问的理解
linux·嵌入式系统
..Dauntless..15 小时前
【Linux】进程地址空间初步理解
linux·运维·服务器
Julien200415 小时前
Docker 网络(一)
linux·运维·服务器·ssh·学习方法
杨云龙UP15 小时前
一次数据库查询缓慢故障复盘:大表数据增长、SQL全表扫描导致系统响应异常
linux·运维·服务器·数据库·sql·mysql
PellyKoo16 小时前
【linux运维】ubuntu+samba 用户组独占目录权限配置踩坑记
linux·运维·ubuntu