远程服务器怎么用才顺手

远程服务器怎么用才顺手

目录

背景

相信大家平时习惯用的都是Windows系统和MacOS系统居多,用Ubuntu这类的Linux系统的机会可能相对少一些。但是,绝大多数的服务器装的其实都是Linux系统

就我亲身经历而言,对于Vivado这个软件,用Linux系统相较于用Windows系统做编译,在同样硬件条件下,测出来过高达5倍的速度提升。一个Windows下30个小时才能编译出来的超大规模程序,在Linux下可以做到6小时以内。另外,同等硬件下,Matlab的计算效率在Linux下也更高,尤其是并行计算时。

正因如此,后续课题组内安装服务器的时候,我都会建议优先安装Linux系统,虽然上手稍微难一点,但后续的效率提升所带来的收益,远大于前期的探索成本。

本文不涉及可视化界面,因为很多场景下用可视化界面连接服务并不稳定,体验也并不好,仅通过ssh在很多计算场景下就能获得非常好的体验。另外,本文默认大家已经掌握通过命令行的ssh命令进入服务器的方法。以下内容聚焦于:

  1. 如何方便地在自己电脑上对远程服务器上的文件进行访问、修改;

  2. 如何查看远程服务器的系统资源消耗;

  3. 如何通过创建会话,实现关闭终端而程序不中断。

通过这三点,希望能帮助大家扫清最开始使用Linux服务器的一些上手障碍。

👨‍💻用Vscode直接进行远程代码编写

为什么?

相信很多同学都是先在本地对程序进行编写、调试,然后再通过sftp对文件进行上传,在远处直接执行。但是这会带来几个问题:

  1. 本地写的代码会跟远程服务器上的代码有些许出入,比如执行次数、是否并行、是否采用GPU等,如果采用这个方法的话,每一次代码的改动都需要进行一次上传,效率降低
  2. 整个流程需要多个软件配合使用,来回切换,效率降低
  3. 如果中间过程还会产生log之类的文件,想要实时观测log内容,还需要反复同步,效率降低
  4. 等等。

其实我们常用的vscode就完全可以做到“像本地文件一样”操作远程服务器上的代码,非常好用且高效。

怎么做?

  1. 先安装vscode,并在扩展市场中安装Remote - SSH插件

CleanShot_on_Code_in_2025_07_13_at_16_00_50

  1. 修改配置文件,依次点击左下角的蓝色按钮——连接到主机——配置SSH主机——选择用户名下的那个配置文件。

CleanShot_on_Code_in_2025_07_13_at_16_02_31

在配置文件下,添加如下内容:

Host myserver
  HostName 192.168.x.x
  User myname
  IdentityFile ~/.ssh/id_rsa

这个本质上跟点击蓝色按钮——连接到主机之后输入ssh myname@192.168.x.x是一样的效果,不过保存成配置文件之后,以后连接就不需要反复输入这串命令了。另外,IdentityFile这一行不是必选,这个是进行密钥校验用的,具体可以去网上查一下“如何通过密钥连接服务器”,这一步可以跳过密码验证,如果没有这一行的话,每次连接的时候手动输入一下密码就行。

  1. 配置完成,连接服务器:再次点击蓝色按钮——连接到主机,此时能看见刚刚配置的服务器名"myserver",点击之后便进行连接。

CleanShot_on_Code_in_2025_07_13_at_16_09_51

  1. 连接之后选择打开文件夹,进入你想要的路径,接下来你的所有代码操作都可以在Vscode中完成了,跟本地使用的方法是一样的。

还有一些需要注意的地方:

  1. 远程服务器上的插件是需要重新安装一次的,点击这个云的按钮即可选择需要安装的插件

CleanShot_on_Code_in_2025_07_13_at_16_12_17

  1. 第一次连接速度会比较慢,因为有一系列东西vscode会自动进行安装,这个过程取决于网速

个人用例

我习惯了用vscode写程序,旁边放一个终端(vscode也自带终端,可以直接用),用SSH连接到远程服务器。用vscode修改程序并保存之后,直接通过终端在远程服务器上执行脚本查看输出。

比如我用matlab的时候,我会先通过matlab -nodesktop进入无界面的matlab环境,接下来在里面执行脚本程序即可。

查看系统资源消耗

为什么?

我们登录服务器的时候,最常见的问题就是:现在这台机器忙不忙?能不能跑?跑的是什么?

常用的有 tophtopglances这些命令,其中 glances 还支持web远程查看,这样我就可以用浏览器直接接入了。

怎么做?

看你喜欢哪一款,top是自带的,基本使用足够了,其他两款用命令行安装即可,具体看需求安装。注意,安装过程可能需要管理员权限,可以让管理员完成。安装命令分别如下:

sudo apt install htop
sudo apt install glances

其中,glances还支持浏览器直接访问,具体的安装过程问一下大模型即可,非常容易,如下:

CleanShot_on_Dia_in_2025_07_13_at_16_19_54

基本界面如下。如果你喜欢可以安装,如果基本功能就够了,那就直接用系统自带的top即可

CleanShot_on_Typora_in_2025_07_13_at_16_21_06

用Byobu进行会话管理

为什么?

场景非常常见:你开了一个远程终端,跑了一个模型训练,结果突然网络断了——程序直接终止,几个小时白跑。

byobu 管理会话,就能避免这类跑到一半不敢退出的场景。 它允许你把当前终端“挂起来”,哪怕你断网了,任务照常运行,回来还能接着看输出。

怎么做?

  1. 安装:

    sudo apt install byobu
    
  2. 启动:

    byobu
    
  3. 常用操作(进入byobu之后):

    功能快捷键
    创建新会话Ctrl + ac
    退出/删掉当前会话输入 exit ,回车
    上一个/下一个会话Ctrl + ap/n
    detach 会话,即离开byobu环境,但是byobu在后台继续执行,可以随时重新进来Ctrl + ad
    重新连接byobu attach
    重命名当前会话为newnamebyobu rename-window newname

这里的意思是Ctrl + a之后,Ctrl键不要松,直接接下一个键


其他用法

  1. 启用状态栏显示会话名:

    byobu-status --enable-session-name
    
  2. 如果想每一次连接SSH都能直接进入byobu环境的话,可以执行

    byobu-enable
    
  3. 查看/选择后端(推荐使用tmux

    byobu-select-backend
    

个人用例

我跑一个仿真,经常需要跑一整晚,甚至两三天。每次我都会先进入byobu环境,“创建一个新会话”,给这个会话改一个好记的名字(不然会话多了就忘了这个会话执行什么内容了)然后在里面运行训练脚本,再 Ctrl + a d 挂起来。哪怕回宿舍关电脑,第二天一早 ssh 上去 byobu attach 一下,模型还在继续跑,日志全都在。妈妈再也不会担心仿真中断了。以下是界面示例:

CleanShot_on_Tabby_in_2025_07_13_at_17_33_57

标签 :
分享 :
comments powered by Disqus