Home Maintain My Server
Post
Cancel

Maintain My Server

这里记录一些常用的服务器配置方法,更方便我自己维护自己的小Server。我主要使用 ubuntu 操作系统。

basic install packages

1
2
3
4
5
6
sudo apt update
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install make
sudo apt-get install git
sudo apt install openssh-server

useful commands

| commands | usage | | :—- | - | | pkill -u cjl | 中止用户 cjl 的所有进程 | | ps -u cjl | 看下 cjl 的进程 | | systemctl status frpc/clash/lightdm/...| 查看某个 systemctl 的状态 | | wget www.google.com | 验证 Proxy 配置正确与否| |export ?=?| 环境变量 | |unset ?| 取消环境变量| | ip addr|| | df -h|| |killall ssh-agent; eval ssh-agent | git push 不上去怎么办?|

SSH

通过 SSH 进行远程连接非常常见,SSH 的操作有很多

1
2
3
4
# 端口映射
ssh -L [localport]:[server-ip]:[remote port] [server-ip]
# 把本机的 pub 添加到服务器上,之后就可以免去密码登陆
ssh-copy-id -i ~/.ssh/id_rsa.pub -p [port] [user]@[ip]  

ssh 的 config 是自己作为 client 连接别人,可以配置端口号和对应的ssh-private-key address,然后直接通过 ssh 用户名@地址 连接 {.prompt-tip} ssh 的 known_hosts 是自己作为主机,认识连接到自己的client 的信息 {.prompt-tip}

SFTP

我一般直接使用现成的 APP:Termius 使用 SFTP 协议,走的流量和 SSH 是同一个(小心内网穿透的垃圾网速)

终端配置

终端使用 oh-my-zsh + p10k 配置,比较好看:) 具体操作在这里,配置完后记得再配置一下vscode的字体(不然有可能乱码,Terminus 可以选择字体)。

Proxy 配置

vi .bashrc or vi .zshrc

1
2
3
export https_proxy=http://127.0.0.1:7890
export http_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7890

CUDA 环境变量

1
2
3
4
5
export CUDA_HOME=/usr/local-/cuda
export PATH=/usr/local/cuda/bin:$PATH
export CPATH=/usr/local/cuda/include:$CPATH
export LIBRARY_PATH=/usr/local/cuda/lib64:$LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH

CUDA 相关配置

安装 CUDA-Driver

  1. un-download driver 先把之前的东西删除干净:
    1
    2
    3
    
    sudo apt-get --purge remove "*cublas*" "cuda*"
    sudo apt-get --purge remove "*nvidia*"# 删除无用包
    sudo apt autoremove
    
  2. 通过命令安装
    1
    2
    3
    
    ubuntu-drivers devices 
    sudo apt install nvidia-driver-? -y  # 把?换成具体版本
    sudo reboot # 需要重启
    

    安装 CUDA Driver 导致网卡驱动掉了怎么办

    在装 CUDA Driver 的时候容易碰到一个问题:CUDA Driver 是装上了,网卡的驱动掉了。。。怎么办办呢?下面记录了我的做法:

  3. 换了一个新的内核版本,这个内核里是包括网卡驱动的,方式是去linux官网下了离线包,然后通过以下指令安装
    1
    
    dpkg -i *.deb
    
  4. 这个内核版本不满意,需要升级/降级
    • 可以选择下载 mainline 的那个管理器,具体教程在这里
    • 也可以sudo apt remove linux-header-... 卸载内核版本
    • 如果要降级,需要先要重启,在进 bios 的时候选择想要的内核版本就可以了,选择好之后在去删掉高版本的内核版本就OK了
  5. 复盘: 原因:下个驱动,内核竟然被换掉了,(TODO:具体到底啥原因呢?)!!! **Fix:我的做法显然是有问题的,感觉直接重启电脑,选择之前的内核版本就可以了,QAQ… **

https://juejin.cn/post/7235961488040132667#%E5%AE%89%E8%A3%85CUDNN%28%E5%8F%AF%E9%80%89%29

安装 cuda-toolkit & cudnn

如果只用 Pytorch + CUDA,直接在装 Pytorch 的时候选一个包括 CUDA 的下载,不需要安装 CUDA-Toolkit,e.g. conda install ...

如果要写CUDA 代码,那还是老老实实安装 toolkit

cuda-toolkit-url

example:

1
2
3
4
5
6
7
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.0.0/local_installers/cuda-repo-ubuntu2204-12-0-local_12.0.0-525.60.13-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-0-local_12.0.0-525.60.13-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-0-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

cudnn 安装类似

git config

配置好 Git,流程

1
2
git config --global user.email "you@example.com"
git config --global user.name "Your Name"

clash 网络工具

基本跟着链接里的教程就可以,大致的步骤如下:也可以去glados里找

  1. 购买一个 vpn,得到 config.yaml
  2. 下载clash 可执行文件
  3. cp 可执行文件和配置文件到 /usr/local/bin/ /etc/clash/
  4. 创建一个系统service 设置开机启动 sudo vi /etc/systemd/system/clash.service 参考: ```r Description=my clash service After=syslog.target netwok.target Wants=network.target

[Service] Type=simple ExecStart=/home/cjl/Desktop/clash/clash-linux-amd64-v1.10.0 -f glados.yaml -d . ExecStop=/usr/bin/killall clash #启动失败1分钟后再次启动 RestartSec=1min KillMode=control-group #重启控制:总是重启 Restart=always

[Install] WantedBy=multi-user.target

1
2
3
4
5
6
7
5. 启动服务
```shell
su
systemctl daemon-reload
systemctl enable clash
systemctl start clash
systemctl status clash

换源

1
2
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vi /etc/apt/sources.list
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse

# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse

sudo apt-get update

frpc 内网穿透

  1. 买公网服务器,拿到地址
  2. 在转发服务器上配置 frps
  3. 再在要穿透的服务器上配置 client frpc,再设置开机启动

frps (server)

有个脚本可以用 one-key 和自己配置 frps.ini 然后移到 /usr/local/frp 效果一样的,还挺方便

frpc (client)

1
2
3
wget https://github.com/fatedier/frp/releases/download/ ???
tar -zxvf ??? 
cp ??? ???

设置开机启动过程如下: vi /etc/systemd/system/frpc.service

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Description=Frp Client Daemon
After=syslog.target network.target
Wants=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/frp/frpc -c /usr/local/bin/frp/frpc.ini
ExecStop=/usr/bin/killall frpc
#启动失败1分钟后再次启动
RestartSec=1min
KillMode=control-group
#重启控制:总是重启
Restart=always

[Install]
WantedBy=multi-user.target
1
2
3
4
systemctl daemon-reload
systemctl enable frpc
systemctl start frpc
systemctl status frpc

conda + pytorch

照着官网的教程就好了

VSCode 配置

VSCode 在 client 上安装后,直接使用自带的 ssh 工具连接服务器,会在服务器上自动装一份server版本的VSCode。 VSCode 的精髓在于插件,这里记录了一些我用到的好用插件:

namefor what
Github Copilot自动写代码
Atom One Light/Dark好看的Theme
Markdown preview enhanced展示Markdown
Prettier代码格式

怎么样加快传输?

emmmm 目前没有很好的方案,一个无奈之举:

  1. 现将数据传到 onedrive 上,这个带宽大概可以达到5MB/s(校园网就这速度了),不知道Onedrive 的上线是多少。
  2. 从 Onedrive 下载,怎么下载呢?
    • 打开游览器的开发者模式 F12
    • 点下载,去 Preview / Response 里抓到 @content.downloadUrl :

Anothers

kill processes list

1
2
3
4
for ((pid=3086031; pid<=3086068; pid++))
do
    kill -9 $pid
done

How to setup when I don’t have root access

  1. 终端配置
    • install zsh through install_zsh_without_root.sh url
    • install ohmyzsh + p10k url
  2. Clash 配置
    • 安装 clash 文件 把端口改成一个自己用的端口,比如 17890
    • nohup ./clash-linux-amd64-v1.16.0 -f glados.yaml -d . > /dev/null 2>&1 &
  3. Conda 配置
    • 阿里源 把需要的东西加到 .condarc 中即可
    • 新建一个conda 环境,conda create env -n dl python=3.8 在zshrc中加入conda activate dl
    • conda 环境中安装 git-cli gh conda install gh --channel conda-forge
  4. Git 配置
    • git config --global user.name "" / user.email ""
    • 配置 ssh 连接 (ssh-keygen + eval agent + ssh-add + gh ssh-add
  5. 安装 pytorch + huggingface + ..
This post is licensed under CC BY 4.0 by the author.

Text and Typography

Yaml 文件格式使用

Comments powered by Disqus.