远程协作:SSH 进阶工作流

在 Linux 的世界里,开发者几乎从不在本地机器上运行复杂的后端环境。通过一套优雅的远程工作流,你可以像在本地一样操作千里之外的服务器。


1. SSH Config:告别 IP 记忆

如果你有 10 台服务器,你不需要记住每个 IP 和端口。

实操:配置 ~/.ssh/config

编辑本地电脑的 ~/.ssh/config 文件:

# 生产服务器
Host production
    HostName 1.2.3.4
    User susu
    Port 2222
    IdentityFile ~/.ssh/id_ed25519
 
# 测试服务器(通过跳板机)
Host test-server
    HostName 192.168.1.50
    User root
    ProxyJump production  # 关键:通过 production 机器跳转到内网测试机

配置后: 你只需要输入 ssh test-server 即可一键直连内网机器。


2. SSH 隧道:内网穿透的“瑞士军刀”

当你需要访问内网中的一个数据库或内网面板时,SSH 隧道是最高效的方法。

将远程服务器上的端口映射到本地:

# 将服务器上的 3306 端口映射到本地 3307
ssh -L 3307:localhost:3306 production

现在你在本地连接 127.0.0.1:3307 实际上连接的是服务器上的 MySQL。

将你本地的开发环境暴露给公网服务器:

# 将本地 8000 端口映射到服务器的 8080
ssh -R 8080:localhost:8000 production

现在任何人访问 production_ip:8080 都会被转发到你的本地电脑。

创建 SOCKS5 代理。

ssh -D 1080 production

配置浏览器使用 127.0.0.1:1080 代理,即可通过服务器网络冲浪。


3. SSH 性能优化:ControlMaster

频繁连接 SSH 会有握手延迟。通过 ControlMaster,可以让多个 SSH 会话共享同一个 TCP 连接。

# 添加到 ~/.ssh/config
Host *
    ControlMaster auto
    ControlPath ~/.ssh/sockets/%r@%h-%p
    ControlPersist 10m  # 断开后连接保持 10 分钟

4. VS Code Remote:云端开发的终极形态

通过 VS Code Remote - SSH 插件,你可以直接在本地 IDE 中打开远程文件夹。

  • 优势: 本地渲染 UI,计算、编译、调试都在强大的服务器上完成。
  • 配置: 点击 VS Code 左下角的蓝绿色图标,选择 Connect to Host...,选择刚才在 Config 里定义的别名即可。

5. 结业练习

Navigation