

远程服务器设置本地proxy转发#
- 首先开启proxy,端口号默认7890,然后在本地命令行中输入ipconfig获得ip地址

- 打开远程服务器,输入下列代码设置proxy转发端口
export http_proxy=http://172.21.***.109:7890
export https_proxy=http://172.21.***.109:7890powershell- 设置完毕后测试一下,访问网站
curl -v http://www.google.compowershell访问成功
- 取消
unset http_proxy
unset https_proxypowershell本地免密登录远程服务器#
一、生成SSH密钥对#
在Windows命令行(CMD)或PowerShell中执行:
ssh-keygen -t ed25519 -C "your_email@example.com"cmd说明:
-t ed25519:使用ED25519算法(安全且高效)-C:添加注释(通常是你的邮箱)- 直接按回车使用默认路径(C:\Users\你的用户名.ssh\id_ed25519)
- 密码短语直接按回车跳过(实现免密)
二、复制公钥到远程服务器#
重要说明:如果服务器上已有 authorized_keys 文件(比如之前在其他设备上配置过),以下命令会自动追加新公钥,不会覆盖已有的公钥。这样你可以在多台设备上实现免密登录。
方法1:使用PowerShell命令(推荐,最简单)
在PowerShell中执行:
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh username@remote_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"powershell示例:
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh root@192.168.1.100 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"powershell方法2:手动复制
- 查看本地公钥(CMD):
type %USERPROFILE%\.ssh\id_ed25519.pubcmd或(PowerShell):
type $env:USERPROFILE\.ssh\id_ed25519.pubpowershell- 复制公钥内容,登录远程服务器:
ssh username@remote_ipcmd- 在远程服务器上执行:
mkdir -p ~/.ssh
echo "你的公钥内容" >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keysbash三、测试免密登录#
ssh username@remote_ipcmd如果不需要输入密码直接登录,说明配置成功!
四、配置快捷别名(可选)#
编辑 SSH 配置文件 C:\Users\你的用户名\.ssh\config:
使用记事本打开:
notepad %USERPROFILE%\.ssh\configcmd添加以下内容:
Host myserver
HostName 192.168.1.100
User root
Port 22
IdentityFile C:\Users\你的用户名\.ssh\id_ed25519plaintext以后直接 ssh myserver 即可登录。
结束GPU进程#
ps x |grep python|awk '{print $1}'|xargs killpython解释:ps grep组合查看python进程,使用awk分割pid,xargs组合kill命令,等价于kill [属于python的pid]
使用Tmux挂起会话进程#
-
输入tmux即可进入Tmux窗口,但不推荐。因为第一个启动的 Tmux 窗口,编号是0,第二个窗口的编号是1,以此类推。这些窗口对应的会话,就是 0 号会话、1 号会话。使用编号区分会话,不太直观,更好的方法是为会话起名。
-
使用命令创建一个指定名称的会话
tmux new -s <session-name>powershell- 分离会话
tmux detachpowershell或者使用Ctrl + b, d 先按下 Ctrl + b(这是 tmux 的前缀键) 然后松开,再按 d。
- 查看所有会话
tmux lspowershell- 接入会话
tmux attach -t <session-name>powershell- 杀死会话
tmux kill-session -t <session-name>powershell从远程服务器之间数据拷贝#
- 使用
sudo apt-get install rsync来安装rsync工具,支持断点重续。 - 执行命令
rsync -avzP --exclude='Multimodal-Cooperation-main/code/log_sample/' -e "ssh -p 2233" tangqian@172.21.201.220:/path/to/source/ /path/to/destination/powershell-v:详细模式输出,显示传输过程中的信息。
-z:在传输文件时进行压缩。
-P: -P 参数是 —partial 和 —progress 的组合,其中:partial:告诉 rsync 保持部分传输的文件,这样如果传输中断,下次传输同一文件时不会从头开始,而是从中断处继续。progress:显示传输进度。
—exclude=‘log_sample/‘:指定排除不拷贝的文件或目录,这里使用了相对路径。
user@remote:/path/to/source/:远程服务器上的用户名、主机地址和源路径。
/path/to/destination/:本地的目标路径。
-e “ssh -p 2233” 指定了通过SSH连接并且使用端口2233。
确保源路径和目标路径以斜杠结尾,这取决于你希望如何同步文件夹内容。在你的例子中,源路径 /home/tangqian/my_project/ 以斜杠结尾意味着复制该目录的内容到目标位置;如果不以斜杠结尾,则会创建一个名为 my_project 的子目录并将所有内容放入其中。
- 也可以本地上传至服务
rsync -avzP --progress ./upload.zip -e "ssh -p 2233" tangqian@172.21.201.220:/home/tangqian/datasetpowershell远程服务器与本地之间数据拷贝#
-
首先去微软商店安装ubuntu系统
-
安装完之后,可能出现bug,参考windows11 启用 wsl, 安装 ubuntu 系统 ↗
-
在cmd终端输入ubuntu进入系统
-
进入windows路径
cd /mntpowershell- 使用rsync传数据
Tensorflow-GPU安装#
python=3.6 2.x才支持GPU加速
pip install keras==2.2.4 tensorflow-gpu==1.14.0 -i https://pypi.tuna.tsinghua.edu.cn/simplepowershellpip install keras==2.3.1 tensorflow-gpu==2.2.0 -i https://pypi.tuna.tsinghua.edu.cn/simplepowershellPyTorch-GPU安装#
python=3.6-3.9
pip install torch==1.9.0 torchvision==0.10.0 -i https://pypi.tuna.tsinghua.edu.cn/simplepowershellpip install torch==1.10.0 torchtext==0.11.0 torchvision==0.11.1 -i https://pypi.tuna.tsinghua.edu.cn/simplepowershell适用于A100 python3.8
pip install torch==1.10.0+cu111 torchvision==0.11.0+cu111 torchaudio==0.10.0 -f https://download.pytorch.org/whl/torch_stable.htmlpowershell查看CUDA版本指令,通常torch.version.cuda 显示的版本号要小于等于NVIDIA CUDA 版本
import torch
print(torch.cuda.is_available())
print(torch.version.cuda)powershell其他镜像
-i https://mirrors.aliyun.com/pypi/simplepowershell-i https://pypi.douban.com/simplepowershell-i https://pypi.mirrors.ustc.edu.cn/simplepowershell-i https://repo.huaweicloud.com/repository/pypi/simplepowershell服务器上报数据和缓存不在同一个GPU上的错误#
RuntimeError: module must have its parameters and buffers on device cuda:3 (device_ids[0]) but found one of them on device: cuda:0bash这是由于在并行训练时,如果已经通过 model.to(device) 或 torch.nn.DataParallel 将模型移动到了特定的 GPU 或多个 GPU 上,再次调用 model.cuda() 是不必要的。
修改后的代码如下:
model.to(device)
if len(gpu_ids) > 1:
model = torch.nn.DataParallel(model, device_ids=gpu_ids)
else:
model.cuda()pythonLinux常用的命令#
- 删除当前文件夹下的所有文件和子目录
rm -rf *powershell- 移动指定目录下的所有文件和子目录
mv /path/to/source/* /path/to/destination/powershellzip压缩命令跳过指定文件夹#
zip -r Multimodal-Cooperation-main-v2.zip Multimodal-Cooperation-main/ -x "Multimodal-Cooperation-main/code/log_sample/*"powershellNvidia-smi在当前页面刷新输出#
watch -n 0.1 nvidia-smipowershell解释 watch:这是一个 Linux 命令,用于定期执行指定的命令并在终端中显示输出。 -n 0.1:这个选项指定了刷新的间隔时间,这里设置为 0.1 秒。 nvidia-smi:这是你希望定期执行并显示其输出的命令。
Ubuntu启动EasyConnect#
sudo /usr/share/sangfor/EasyConnect/EasyConnectpowershellDocker的使用#
-
拉取原始镜像
docker pull ubuntu:22.04此时镜像名称为 ubuntu,标签为 22.04。 或者使用 docker tag 重命名镜像:docker tag ubuntu:22.04 my-ubuntu:v1重命名为 my-ubuntu:v1 -
查看镜像
docker image
-
删除原始镜像
docker rmi ubuntu:22.04
-
创建容器
docker run -it --name hw_mirror ubuntu:22.04(一定要带标签) docker run:Docker 的核心命令,用于创建并启动一个新容器 -it (组合参数):-i (—interactive):保持标准输入打开,允许与容器交互 -t (—tty):分配伪终端(TTY),使容器像本地终端一样工作 → 组合效果:进入容器的交互式命令行模式 **—name hw_mirror**:为容器指定名称 hw_mirror 如果不指定,Docker 会随机生成名称(如 friendly_curie) 后续可用 docker start hw_mirror 通过名称操作容器 ubuntu:22.04:使用的镜像名称及标签,若本地不存在,会先自动执行 docker pull ubuntu:22.04 -
查看容器
docker ps -a
-
删除容器
docker rm hw_mirror
-
查看ubuntu版本
cat /etc/os-release
-
容器内安装python
# 1. 更新包列表
apt update
# 2. 安装 Python 3
apt install -y python3
# 3. 安装 pip(Python 包管理器)
apt install -y python3-pip
# 4. 验证安装
python3 --version
pip3 --versionpython
自定义创建Docker#
- 创建Dockerfile以及一些准备的文件
Dockerfile的内容:
# 使用官方轻量级镜像
FROM ubuntu:22.04
# 临时禁用交互(构建结束时移除)
ENV DEBIAN_FRONTEND=noninteractive
# 安装系统依赖(清理缓存)
RUN apt-get update && \
apt-get install -y --no-install-recommends \
python3-pip \
curl \
&& rm -rf /var/lib/apt/lists/*
# 不需要安装python3.10(22.04自带python3.10)
# 删除环境变量(防止运行时影响)
RUN unset DEBIAN_FRONTEND
# 安装Python依赖(优先复制依赖文件)
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# 设置工作目录并复制代码
WORKDIR /app
# 将当前路径下的所有内容拷贝到工作目录
COPY . .
# 声明端口(文档用途)
EXPOSE 8000
# 启动命令
# CMD ["python3", "app.py"]python-
在包含Dockerfile的目录下构建镜像
docker build -t my-custom-app:v1 .docker build 作用:启动 Docker 构建流程 行为:根据当前目录下的 Dockerfile 创建新镜像 -t my-custom-app:v1 -t 参数:—tag 的缩写,用于指定镜像名称和标签 my-custom-app:自定义的镜像名称(通常按”项目名/用途”格式) :v1:镜像标签(推荐使用语义化版本控制) 标签省略时默认为 :latest 有效标签格式:v1.2.3, beta, 20240610等 .(末尾的点) 含义:指定构建上下文路径 作用:Dockerfile 中的 COPY 和 ADD 指令相对此路径工作 注意事项: Docker 会把当前目录所有内容发送给 Docker 守护进程 使用 .dockerignore 文件排除不需要的文件
-
使用镜像执行
python3 -V命令:docker run -it my-custom-app:v1 python3 -V
-
创建并使用新的容器
docker run -it -d --name my-app my-custom-app:v2 /bin/bashdocker run:创建并启动新容器 -it:组合参数:
-i:保持标准输入流打开(允许交互)
-t:分配伪终端(创建命令行界面) -d:后台运行(detach 模式) —name my-app:指定容器名称为 my-app my-custom-app:v2:使用的镜像和标签 /bin/bash:容器启动后执行的命令(启动 Bash Shell) -
连接已有容器:
# 如果容器已停止:
docker start my-app
# 进入运行中的容器
docker exec -it demo-app /bin/bashpython- 修改容器后,将当前容器提交为镜像:
docker commit ur5e my-custom-ur5e-image
- 保存镜像为tar压缩文件
docker save -o ur5e-image.tar my-custom-ur5e-image - 压缩文件大小
gzip ur5e-image.tar - 解压tar文件
gzip -d ur5e-image.tar.gz - 加载镜像
docker load -i ur5e-image.tar
docker run -itd --name ros2_gpu --gpus all --env="DISPLAY" --env="NVIDIA_DRIVER_CAPABILITIES=all" --env="QT_X11_NO_MITSHM=1" --env="LIBGL_ALWAYS_INDIRECT=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" --volume="$HOME/.Xauthority:/root/.Xauthority:rw" my-custom-ur5e-image:latest /bin/bash—gpus all:允许容器访问宿主机的所有 NVIDIA GPU —env=“NVIDIA_DRIVER_CAPABILITIES=all”:定义 NVIDIA 驱动的功能范- all 包含 图形渲染(OpenGL/Vulkan) 和 计算(CUDA) —env=“DISPLAY”: 传递宿主机的 DISPLAY 环境变量(通常为 :0)到容器 —volume=“/tmp/.X11-unix:/tmp/.X11-unix:rw”: 挂载宿主机的 X11 套接字目录到容器 —volume=“$HOME/.Xauthority:/root/.Xauthority:rw”: 挂载 X11 认证文件(~/.Xauthority)到容器 —env=“QT_X11_NO_MITSHM=1”:禁用 Qt 的共享内存(MIT-SHM)扩展 —env=“LIBGL_ALWAYS_INDIRECT=1”: 强制 OpenGL 使用间接渲染(通过 X11 转发)
Ubuntu换源工具#
wget http://fishros.com/install -O fishros && . fishrospythonUbuntu使用代理教程#
云服务器直接下载百度网盘文件#
-
先下载bypy
bashpip install bypy -
登录
bashbypy info -
登录后会在“我的应用数据”文件夹下生成bypy文件夹,我们只需要把要下载的内容复制到该文件夹中

-
然后下载文件夹到指定目录(下载文件用download)
bashbypy downdir / /path/to/your/target/directory -v -
上传到百度云命令
bashbypy upload /path/to/local/folder
清理pip的缓存#
rm -rf /tmp/*
# 2. 删除 Python 缓存
find /root -name "__pycache__" -type d -exec rm -rf {} + 2>/dev/null
find /root -name "*.pyc" -delete 2>/dev/null
# 3. 清理 pip/conda 残留(即使你迁移了 .cache)
rm -rf /root/.local/lib/python*/site-packages/* # 谨慎!如果你用 pip install --user
rm -rf /root/.conda
# 4. 删除 Jupyter 缓存
rm -rf /root/.local/share/jupyterbash将本地代码上传到Github仓库#
生成新的SSH密钥
ssh-keygen -t ed25519 -C "14680426@qq.com"bash将SSH公钥添加到Github
cat ~/.ssh/id_ed25519.pubbash复制公钥内容,登录 GitHub → 点右上角头像 → Settings → 左侧 SSH and GPG keys → New SSH key
测试SSH连接
ssh -T git@github.combash# 初始化仓库
git init
# 配置git用户名和邮箱
git config --global user.name "SoupCola"
git config --global user.email "14680426@qq.com"
# 查看改动
git status
# 添加所有改动
git add .
# 提交
git commit -m "feat: support structured output tools"
# 关联远程仓库
git remote add origin git@github.com:你的用户名/仓库名.git
# 推送到 main 分支(GitHub 默认分支可能是 main 或 master)
git push -u origin mainbashWSL2安装可视化桌面#
安装VcXsrv 下载地址 ↗
启动VcXsrv 一直点next(注意第一个界面设置Display为0),第三个界面勾选Disable access control
在wsl环境中安装xfce
sudo apt install xfce4-terminal
sudo apt install xfce4bash因为每次启动WSL都会使用新的IP,所以配置自动更新~/.bashrc文件的IP
nano ~/.bashrcbash在末尾添加
export DISPLAY=$(awk '/nameserver/{print $2; exit}' /etc/resolv.conf):0bash启动xeyes测试
xeyesbash更新配置
source .bashrcbash安装中文支持
sudo apt install ttf-wqy-zenheibash运行xfce4即可查看桌面
startxfce4bash
Windows 关闭 Service Worker 进程#
1️⃣ 打开运行:
Win + R
输入:
resmon
2️⃣ 打开 CPU
3️⃣ 在 关联的句柄 搜索:
Service Worker
或你的文件夹名字
4️⃣ 找到进程 → 结束进程。
windows清理python进程#
查找进程命令
wmic process where "name='python.exe' or name='pythonw.exe'" get ProcessId,CommandLine /format:tablebashkill命令
taskkill /PID <PID> /Fbash