用 VS Code 管理服务器,我有独特的服务器管理方式

2023-10-05 17:02:01 +08:00
 nexmoe

自从 Typora 开始收费之后,我彻底转向使用 VS Code ( Visual Studio Code ) 进行文章撰写。作为一款 Markdown 编辑器,它已经完全满足了我的需求。

然而,我开始思考是否可以将 Visual Studio Code 用作服务器管理器。在此之前,我一直使用 FinalShell 进行服务器管理,这款工具具备以下特点,也是我所喜欢的:

当 VS Code 发布 Remote SSH 功能时,我并没有太过关注。该功能的初衷是用于远程开发,而我并没有远程开发的需求。然而,当我开始进行远程开发时,我决定尝试使用 Remote SSH 。结果令我惊喜地发现,Remote SSH 非常适合用于服务器管理工作。

那么,VS Code 有哪些特点,并且满足了我哪些需求呢?

VS Code 的特点

多服务器管理

通过在你需要访问的远程服务器中配置好 SSH Key ,便可以轻松地设置 Remote SSH ,并指定服务器的 IP 地址,从而直接通过 Remote SSH 访问服务器。

Host server1
    HostName 服务器 1 的 IP 地址
    User 用户名

Host server2
    HostName 服务器 2 的 IP 地址
    User 用户名

通过这样的配置,然后就可以方便地在 VS Code 中访问和管理多个服务器。只需单击服务器列表中的相应服务器,即可快速连接到目标服务器,并在远程环境中执行所需的操作。

文件浏览器

和正常一个项目的使用一样,VS Code 可以打开服务器的一个文件夹。然后我们就可以进行各种各样的文件浏览器的常规操作。还可以使用搜索功能快速查找和定位特定的文件。

我通常就会直接把账号目录直接打开。

同时还可以直接集成 VS Code 本身拥有的强大的文件编辑能力。

从此告别 lsmkdirtouchvi 等操作。

方便快捷的终端体验

可以同时打开多个终端实例,并在它们之间切换。每个终端实例都可以独立运行命令,并保留其输出历史记录。

还可以在编辑器的多个标签页或分割视图中同时打开不同的终端实例,以便同时执行不同的命令。

除此之外,在 VS Code 中,可以通过右键单击文件或文件夹,选择"在终端中打开",快速打开终端并自动切换到对应的路径。再也不用痛苦的到处 cd 了。

Docker GUI 管理

由于我大部分服务都是放在 Docker 上,所以对于 Docker 的使用是非常高频的。

如果你在服务器上使用 Docker 进行容器化管理,VS Code 通常就会推荐你安装 Docker 扩展,然后就可以并以图形化界面的形式管理和操作 Docker 容器。可以方便地查看和管理容器、镜像、网络和卷等 Docker 资源,执行常见的 Docker 命令,以及监控容器的状态和日志。

这基本覆盖了大部分 Docker 常用的操作,也让我大部分时间不再需要使用 Portainer 或是命令行了。

Git GUI 集成

VS Code 提供了强大的 Git GUI 集成功能,可以在代码仓库上进行版本控制和协作。可以直接通过 GUI 进行查看提交历史、比较文件差异、切换分支、合并代码,以及推送和拉取代码等操作。

丰富的个性化主题、插件生态

如果本身就使用 VS Code ,便可以直接继承自己的审美。同时 VS Code 比其他终端管理软件拥有更为丰富丰富的个性化主题选项,可以根据自己的喜好和习惯选择适合的主题。也具有丰富的插件社区。

其它

除此之外,VS Code 本身就具有跨平台支持、多语言支持等特性,而且它完全免费。

如何使用 VS Code 进行服务器管理

你需要满足如下条件

其实你需要的并不多,核心是 VS Code 中的 Remote SSH 插件。

配置 SSH Key

你需要在你的电脑上生成 SSH Key ,并将公钥配置到服务器上以实现免密登录。你可以在网上查找相关教程了解如何生成和配置 SSH Key 。

配置 Remote SSH

通过 这个链接 安装 Remote SSH 后。

你可以按照以下步骤来打开和配置 SSH 主机:

  1. 在 VS Code 左下方找到 Remote SSH 的图标按钮。
  2. 点击该按钮,然后选择 "Connect to Host" 选项。
  3. 再次点击 "Configure SSH Hosts"。

就可以在 VS Code 中进行配置,指定服务器的 IP 地址和用户名。示例配置如下:

Host server1
    HostName 服务器 1 的 IP 地址
    User 用户名

Host server2
    HostName 服务器 2 的 IP 地址
    User 用户名

完成配置后便可以在左下角直接连接服务器了。

插件以及其他推荐

Monitor Pro 插件

资源监控,由我开发。

Monitor Pro 是一款资源监控工具,实时跟踪系统指标。监测 CPU 、内存、网络、文件系统使用率,电池百分比和充电状态。可自定义顺序和刷新间隔,提供高占用警报。适用于开发人员、系统管理员和普通用户。

https://marketplace.visualstudio.com/items?itemName=nexmoe.monitor-pro

Docker 插件

如果你在使用 Docker 容器来部署应用程序,这个插件可以帮助你在 VS Code 中管理和调试 Docker 容器。

Wakatime 插件

统计你在服务器上的摸鱼时间。

zsh 与 ohmyzsh

使用 ohmyzsh 以及它的生态,为你的命令行集成自动补全和纠错功能。

5990 次点击
所在节点    Visual Studio Code
38 条回复
supersu
2023-10-06 10:05:30 +08:00
支持 sudo 提权么,因为我禁用了 root 登录
uncat
2023-10-06 10:17:12 +08:00
@kongkongye 请使用密钥验证替代密码验证,无论是 Linux 还是 Windows

Windows Docs: https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_keymanagement
uncat
2023-10-06 10:19:40 +08:00
@releaseme 自己买台 PC 装 Linux ,WireGuard + FRP 实现 VPN 接入(可以访问所有 192.168.0.0/16 ),然后再配合虚拟化,你就可以有一个超级强悍的个人开发网络了

![servers]( https://jinmiaoluo.oss-cn-shenzhen.aliyuncs.com/blog/workstation.jpg)
ferock
2023-10-06 11:38:29 +08:00
试过了,竟然是在远程服务器上安装 vs code server...
nexmoe
2023-10-06 11:51:57 +08:00
@ferock #15 本地 VS Code 用 Remote SSH 连接远程服务器
nexmoe
2023-10-06 11:54:04 +08:00
@zouzou0208 不错啊
ferock
2023-10-06 12:03:21 +08:00
@worldquant #17

用过,很不方便
ferock
2023-10-06 12:11:22 +08:00
@uncat #23

我用 Tailscale
nexmoe
2023-10-06 12:16:57 +08:00
@qbug 有准备做资源监控的打算
lidage
2023-10-06 12:21:47 +08:00
vscode 的插件 https://zh.database-client.com/#/home?source=8828_cweijan.vscode-ssh

database-client 不香吗,数据库,rdp ssh 等都可以
2NUT
2023-10-06 16:22:07 +08:00
自从 Typora 开始收费之后,我就买了授权
blankmiss
2023-10-06 19:13:06 +08:00
vs code server 吃性能吃的一批
zoumouse
2023-10-06 19:43:52 +08:00
@lscho 只能说确实太方便了,对我来说方便到了可以忽略这些的程度
SekiBetu
2023-10-06 20:10:06 +08:00
感觉不如 tabby
jlak
2023-10-06 20:41:11 +08:00
开了 node.js 服务器实例后待机后( macbook 盒盖)再打开需要重连,重连后实例一直开着占用大量内存但是找不到了有解决办法吗
csznet2023
2023-10-07 08:35:36 +08:00
建议直接使用 Windows CMD 或者 Macos Terminal 配合 goFile 使用,能达到楼主需要的目的,还不占用资源,https://github.com/csznet/goFile
xgdgsc
2023-10-07 11:56:42 +08:00
还可以配合 https://marketplace.visualstudio.com/items?itemName=nguyenngoclong.terminal-keeper 每次启动 vscode 的时候打开一些服务器上的监控终端之类的命令
toyst
223 天前
@lidage rdp 就过了啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/979052

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX