这里记录一些常用的服务器配置方法,更方便我自己维护自己的小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
- un-download driver 先把之前的东西删除干净:
1 2 3
sudo apt-get --purge remove "*cublas*" "cuda*" sudo apt-get --purge remove "*nvidia*"# 删除无用包 sudo apt autoremove
- 通过命令安装
1 2 3
ubuntu-drivers devices sudo apt install nvidia-driver-? -y # 把?换成具体版本 sudo reboot # 需要重启
安装 CUDA Driver 导致网卡驱动掉了怎么办
在装 CUDA Driver 的时候容易碰到一个问题:CUDA Driver 是装上了,网卡的驱动掉了。。。怎么办办呢?下面记录了我的做法:
- 换了一个新的内核版本,这个内核里是包括网卡驱动的,方式是去linux官网下了离线包,然后通过以下指令安装
1
dpkg -i *.deb
- 这个内核版本不满意,需要升级/降级
- 可以选择下载 mainline 的那个管理器,具体教程在这里
- 也可以
sudo apt remove linux-header-...
卸载内核版本 - 如果要降级,需要先要重启,在进 bios 的时候选择想要的内核版本就可以了,选择好之后在去删掉高版本的内核版本就OK了
- 复盘: 原因:下个驱动,内核竟然被换掉了,(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
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里找
- 购买一个 vpn,得到 config.yaml
- 下载clash 可执行文件
- cp 可执行文件和配置文件到 /usr/local/bin/ /etc/clash/
- 创建一个系统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 内网穿透
- 买公网服务器,拿到地址
- 在转发服务器上配置 frps
- 再在要穿透的服务器上配置 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 的精髓在于插件,这里记录了一些我用到的好用插件:
name | for what |
---|---|
Github Copilot | 自动写代码 |
Atom One Light/Dark | 好看的Theme |
Markdown preview enhanced | 展示Markdown |
Prettier | 代码格式 |
怎么样加快传输?
emmmm 目前没有很好的方案,一个无奈之举:
- 现将数据传到 onedrive 上,这个带宽大概可以达到5MB/s(校园网就这速度了),不知道Onedrive 的上线是多少。
- 从 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
- 终端配置
- Clash 配置
- 安装 clash 文件 把端口改成一个自己用的端口,比如 17890
nohup ./clash-linux-amd64-v1.16.0 -f glados.yaml -d . > /dev/null 2>&1 &
- 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
- Git 配置
git config --global user.name "" / user.email ""
- 配置 ssh 连接 (ssh-keygen + eval agent + ssh-add + gh ssh-add
- 安装 pytorch + huggingface + ..
- fk nvidia nvidia 的包出错了怎么办 conda install –offline [pkg path]
Comments powered by Disqus.