科研服务器工作站使用指南

本文档面向新加入研究组的同学,帮助你快速了解服务器的硬件配置、软件环境以及日常使用方法。


服务器硬件概览

项目 配置
操作系统 Ubuntu 24.04.3 LTS (Noble Numbat)
CPU Intel Core i9-14900K (32 线程,最高 6.0 GHz)
内存 128 GB DDR5
GPU NVIDIA GeForce RTX 3090 (24 GB VRAM)
硬盘 1.8 TB NVMe SSD(已用约 620 GB,剩余约 1.1 TB)
NVIDIA 驱动 535.274.02
CUDA 版本 12.2

登录服务器

校内网络(实验室 / 校园 WiFi)

在学校内网环境下,直接通过 SSH 连接:

ssh 你的用户名@125.221.233.110

校外网络(寒暑假 / 在家 / 出差)

不在学校时,通过 frp 内网穿透 连接。服务器已配置 frpc 服务(开机自启),将 SSH 映射到了一台公网服务器上:

ssh 你的用户名@8.155.17.44 -p 6001

注意:校外连接走公网中转,网速会比校内慢一些,传输大文件建议回到校内操作。

快捷配置(推荐)

在你本地电脑的 ~/.ssh/config 中添加以下配置,之后用别名一键连接:

# 校内直连
Host lab
    HostName 125.221.233.110
    User 你的用户名
    Port 22

# 校外穿透
Host lab-out
    HostName 8.155.17.44
    User 你的用户名
    Port 6001

配置后使用方式:

ssh lab       # 校内
ssh lab-out   # 校外

首次登录后建议

  1. 修改默认密码:passwd
  2. 配置 SSH 密钥免密登录(推荐,校内校外各配一次):
# 在你的本地电脑上执行
ssh-keygen -t ed25519
ssh-copy-id lab       # 校内
ssh-copy-id lab-out   # 校外(同一台机器,配一次两个都生效)
  1. 使用 tmux 保持长时间运行的任务不中断(服务器已安装 tmux 3.4):
tmux new -s mysession     # 创建新会话
tmux attach -t mysession  # 重新连接
# Ctrl+B, D              # 临时分离(任务继续跑)

提示: 特别是校外连接时,网络不稳定容易断线,务必使用 tmux,否则训练任务会随 SSH 断开而终止。


Python 环境

环境总览

服务器使用 Miniconda 管理 Python 环境,base 环境已预装常用的科研工具包。

项目 版本
Conda 25.7.0
Python (base) 3.13.7
PyTorch 2.6.0+cu124
JupyterLab 4.4.7

已安装的主要 Python 包

深度学习框架:

  • torch 2.6.0+cu124, torchvision 0.21.0+cu124, torchaudio 2.6.0+cu124
  • torch-geometric 2.6.1

数据科学:

  • numpy 2.1.2, pandas 2.3.1, scipy 1.16.1
  • scikit-learn 1.7.1, matplotlib 3.10.5, seaborn 0.13.2

生信分析:

  • scanpy 1.11.4, anndata 0.12.2

开发工具:

  • jupyterlab 4.4.7

推荐工作流:创建自己的 Conda 环境

重要: 建议每个项目创建独立的 conda 环境,避免包冲突影响其他人。

# 创建新环境(指定 Python 版本)
conda create -n myproject python=3.11

# 激活环境
conda activate myproject

# 在新环境中安装需要的包
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu124
pip install numpy pandas scikit-learn matplotlib

# 退出环境
conda deactivate

# 查看所有环境
conda env list

# 删除不再使用的环境(请及时清理,节省磁盘)
conda env remove -n myproject

使用 JupyterLab

启动 JupyterLab 并通过 SSH 隧道在本地浏览器访问:

# 在服务器上启动(建议在 tmux 中运行)
jupyter lab --no-browser --port=8888

# 在本地电脑新开一个终端,建立 SSH 隧道
ssh -N -L 8888:localhost:8888 你的用户名@服务器IP

然后在本地浏览器打开 http://localhost:8888,输入终端显示的 token 即可。

GPU 使用

# 查看 GPU 使用情况
nvidia-smi

# 在 Python 中验证 CUDA
python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))"

GPU 使用礼仪:

  • 跑大模型/长训练前,先用 nvidia-smi 确认 GPU 空闲
  • 如果 GPU 被占用,请在群里协调
  • 训练结束后及时释放 GPU 显存(关掉 Python 进程)

R 环境

环境总览

R 已安装在系统级别,所有用户可以直接使用,无需各自配置。

项目 信息
R 版本 4.5.3 (2026-03-11)
路径 /usr/bin/R, /usr/bin/Rscript
CRAN 镜像 清华大学镜像(自动配置)
共享包目录 /usr/local/lib/R/shared-library
预装包数量 289 个

直接使用

# 启动交互式 R
R

# 运行 R 脚本
Rscript my_analysis.R

# 在 R 中使用预装包,直接 library() 即可
library(tidyverse)
library(DESeq2)
library(ggplot2)

预装 R 包分类

数据处理: tidyverse, dplyr, tidyr, readr, data.table, readxl, writexl, jsonlite, yaml, haven, lubridate, forcats, purrr, tibble, stringr

可视化: ggplot2, ggpubr, pheatmap, RColorBrewer, viridis, cowplot, patchwork, ggrepel, ggsci, ggforce, gridExtra, scales

统计分析: survival, survminer, lme4, broom, car, rstatix, lmtest

机器学习: caret, glmnet, randomForest, xgboost, e1071

生物信息学(Bioconductor): BiocManager, DESeq2, clusterProfiler, GenomicRanges, org.Hs.eg.db, Biobase, BiocGenerics, SummarizedExperiment, AnnotationDbi, DOSE, enrichplot, fgsea, GOSemSim, ggtree

开发工具: devtools, remotes, rmarkdown, knitr, testthat

安装额外的 R 包

如果需要的包不在预装列表中:

# 方式一:安装到个人目录(推荐,不影响他人)
install.packages("新包名")
# R 会自动提示创建个人库目录,选 yes 即可

# 方式二:安装到共享目录(需要 sudo 权限,请联系管理员)
# sudo Rscript -e "install.packages('新包名', lib='/usr/local/lib/R/shared-library')"

# 安装 Bioconductor 包
BiocManager::install("包名")

注意:R 路径问题

由于部分用户的 conda 环境中也有 R,请注意区分:

# 查看当前使用的是哪个 R
which R

# 如果显示的是 conda 下的 R(如 /home/xxx/miniconda/bin/R),
# 但你想用系统 R,可以指定完整路径:
/usr/bin/R
/usr/bin/Rscript my_script.R

# 或者临时取消 conda 的 PATH 优先级:
conda deactivate

网络代理(V2Ray)

服务器已配置 V2Ray 代理服务,用于访问 Google Scholar、GitHub、Hugging Face 等国内网络受限的资源。

代理概览

项目 信息
V2Ray 版本 5.38.0 (V2Fly)
HTTP 代理 127.0.0.1:1087
SOCKS5 代理 127.0.0.1:1080
服务状态 systemd 托管,开机自启
节点来源 Lark @AcrossGFWBot(每月推送)

日常使用

服务器的 .bashrc 中已配置了 proxy_on / proxy_off 快捷命令:

# 开启代理(当前终端生效)
proxy_on

# 关闭代理
proxy_off

# 查看代理状态
proxy_status

开启后,curlwgetpipgit cloneconda 等命令行工具会自动走代理。

使用场景举例:

# 从 Hugging Face 下载模型
proxy_on
pip install transformers
python -c "from transformers import AutoModel; AutoModel.from_pretrained('bert-base-uncased')"

# 克隆 GitHub 仓库
proxy_on
git clone https://github.com/some/repo.git

# 访问 Google Scholar(命令行测试)
proxy_on
curl -s https://scholar.google.com | head -5

在 Python 脚本中使用代理:

import os
os.environ["http_proxy"] = "http://127.0.0.1:1087"
os.environ["https_proxy"] = "http://127.0.0.1:1087"

# 之后的网络请求会自动走代理

在 R 中使用代理:

Sys.setenv(http_proxy = "http://127.0.0.1:1087",
           https_proxy = "http://127.0.0.1:1087")

# 之后 install.packages() 等联网操作会走代理

每月更新节点

Lark 上的 @AcrossGFWBot 每月会推送新的 vmess 链接。收到新链接后,使用服务器上的 update-v2ray 脚本一键更新:

# 一键更新(粘贴完整的 vmess:// 链接)
update-v2ray "vmess://eyJhZGQiOiJ4eHguLi4..."

# 脚本会自动完成:
#   1. 解析 vmess 链接
#   2. 备份旧配置
#   3. 生成新配置
#   4. 重启 V2Ray 服务
#   5. 测试连接

其他常用命令:

# 查看当前节点和服务状态
update-v2ray status

# 测试代理是否可用
update-v2ray test

# 手动管理服务
v2ray-control status    # 查看状态
v2ray-control restart   # 重启服务
v2ray-control logs      # 查看实时日志

注意事项

  • 代理仅在本机可用(监听 127.0.0.1),不会暴露到外网
  • proxy_on 只对当前终端会话生效,新开终端需要重新执行
  • 如果代理连不上,可能是节点过期了,请联系管理员更新或自行用 update-v2ray 更新
  • 不要滥用代理流量,仅用于科研相关的资源访问
  • 节点信息每月更新,过期后需要用 @AcrossGFWBot 推送的新链接重新配置

代理不工作时的排查

# 1. 检查服务是否在运行
v2ray-control status

# 2. 检查端口是否在监听
ss -tuln | grep -E '1080|1087'

# 3. 测试连接
update-v2ray test

# 4. 如果服务挂了,尝试修复
fix-v2ray

# 5. 如果节点过期,用新链接更新
update-v2ray "vmess://新链接..."

常用开发工具

工具 版本 用途
git 2.43.0 版本控制
gcc/g++ 13.3.0 C/C++ 编译器
cmake 3.28.3 构建工具
tmux 3.4 终端复用
vim 9.1 文本编辑器

单机与服务器协作开发

文件上传与下载

推荐优先使用 scp / rsync,也可以使用图形化工具(FileZilla、XFTP)。

# 本地上传目录到服务器
scp -r ./project 你的用户名@125.221.233.110:~/

# 服务器下载文件到本地
scp 你的用户名@125.221.233.110:~/result.csv ./

# 增量同步(推荐,适合大项目)
rsync -avzP ./project/ 你的用户名@125.221.233.110:~/project/

如果你更习惯图形化操作,可在 FileZilla/XFTP 中配置同样的主机、端口、用户名和密码后拖拽传输。

VS Code / Cursor 远程开发(推荐)

本地安装 Remote SSH 扩展后,可直接连接服务器并远程编辑代码,常见流程如下:

  1. 先在本地验证 SSH(ssh labssh lab-out
  2. 在 VS Code / Cursor 中使用 Remote SSH 连接
  3. 打开服务器上的项目目录
  4. 在远程终端中激活 conda 环境并运行代码
  5. 配合 Jupyter 或 Python 调试器进行远程调试

这种方式通常比纯命令行更高效,也更适合长期项目维护。

R 与 Python 混合开发

如果一个项目同时需要 R 的统计能力和 Python 的深度学习生态,推荐以下方式:

  • 在 R 中调用 Python:reticulate
  • 在 Python 中调用 R:rpy2
  • 在同一个 Notebook 中混写:Jupyter(分 cell 使用不同内核)

实践建议:把数据处理和模型训练拆成清晰的脚本阶段,减少跨语言状态耦合,便于复现和排错。


磁盘空间管理

服务器总共 1.8 TB,是大家共享的资源。请注意:

# 查看自己的目录占用
du -sh ~

# 查看磁盘总体使用
df -h /

清理建议:

  • 定期清理不用的 conda 环境:conda env remove -n 环境名
  • 清理 conda 缓存:conda clean --all
  • 清理 pip 缓存:pip cache purge
  • 训练完成后,删除不需要的 checkpoint 文件
  • 大型数据集用完及时删除或移到外部存储

常见问题

pip install 时报错 permission denied?

不要使用 sudo pip install。应该在自己的 conda 环境中安装:

conda activate myenv
pip install 包名

CUDA out of memory?

# 查看谁在用 GPU
nvidia-smi

# 如果是自己之前的僵尸进程,可以 kill 掉
kill -9 <PID>

R 的 library() 找不到包?

确认你用的是系统 R 而不是 conda 里的 R:

which R  # 应该是 /usr/bin/R

如果不是,先 conda deactivate 再运行 R。

在家连不上服务器?

校外需要走 frp 穿透,注意端口是 6001:

ssh 你的用户名@8.155.17.44 -p 6001

如果仍连不上,可能是公网服务器或 frpc 服务异常,请联系管理员。

pip install 或 git clone 很慢/超时?

可能需要开代理:

proxy_on
pip install transformers
# 或
proxy_on
git clone https://github.com/xxx/yyy.git

如果 proxy_on 后仍不行,运行 update-v2ray test 检查代理是否可用,可能节点需要更新。

长时间任务怎么跑?

使用 tmux,防止 SSH 断开后任务终止:

tmux new -s training
python train.py
# Ctrl+B, D 分离
# 之后用 tmux attach -t training 重新连接

联系与协作

  • 有问题请先查阅本文档
  • 需要安装系统级软件或共享 R 包,请联系管理员 (chenx)
  • GPU 使用请在群里协调,避免冲突
  • 请保持良好的磁盘卫生,及时清理不用的数据和环境

最后更新:2026-04-10  |  维护人:chenx