DIY 服务器配置


#前提假设
组装电脑(4人用):

基本配置需求如下:

内存DDR4 2400 32G

M.2接口固态 512G(用于存放程序和安装系统)

机械硬盘 7200转 1T(用于存放数据)

显卡 GTX 1650

CPU 英特尔 至强 E5-2680v4(这个4指的是支持DDR4)

主板华南金牌 X99-F8

机箱EATX型

cpu要3风扇

注:内存要匹配cpu,主板的最大支持频率


装机

1.使用Rufus 烧录centos7的iso镜像(DVD或者Everything那个,可选国内镜像)如阿里镜像阿里云官方镜像

2.u盘启动安装
3.网线/wifi联网(可以先ping看是否链接上网,右键桌面打开terminal输入)

$ ping www.baidu.com 

3.1 备份旧源(可选):

$ mkdir /etc/yum.repos.d/backup 
$ mv CentOS-Base.repo CentOS-Base.repo.old
$ wget http://mirrors.aliyun.com/repo/Centos-7.repo
$ wget  http://mirrors.aliyun.com/repo/epel-7.repo

3.2 如果没有网就:

$ yum update -y

4.连上网后先检查ifconfig查看IP地址

$ ifconfig -a

4.1 如果没有上面命令报错

$ yum install net-tools

4.2 可能也少这几个

$ yum install kernel-devel gcc -y

IP地址设置,申请固定IP,可以问学校申请

  1. 开启ssh协议, Centos7网卡一般放如下位置
    $ cd /etc/sysconfig/network-scripts
    $ ll
    or
    $ ls
  2. 1 找到你的网卡一般是ifcfg-enp啥的
    例如

1.2 vim 修改网卡文件(这里要替换你的网卡文件名字)

$ vim ifcfg-enps5s0

1.2.1 键入I或A进入修改模式

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none (或者static)
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp5s0 #(要改你的)
UUID=e19bc806-a8fd-4380-b352-858d0003e26e
DEVICE=enp5s0  #(要改你的)
ONBOOT=yes
IPADDR=  #(输入学校给的IP)
NETMASK=255.255.255.0 #(子网掩码)
PREFIX=25
GATEWAY= #(网关)
DNS1=  #(DNS服务器1个就够)

1.2.2 大概如上

注:若没有申请固定IP,则只能填当前路由器范围内的可选IP ,即掩码后IP与路由IP掩码后的一致(如路由192.168.1.1,则可以是192.168.1.198,这个198可以换成0-255可选值)

浏览器登录路由器IP设置静态IP绑定或虚拟机服务(填上你设置的IP,端口22(SSH默认),FTP,ALL协议)并最好绑定MAC地址你的IP和你的mac地址(命令ifconfig -a可查)

$ ifconfig -a

1.3 拓展操作(单IP,多服务器,单路由器)

一个固定IP用路由器当交换机分配多台服务器:

路由器WAN端口查外部网线,LAN端口连到服务器

登录路由器设置:

1:设置路由器IP为申请的IP,网关子网掩码DNS也要一并设置为申请的

2:关闭DHCP(IP自动分发协议)

3:设置一个IP【为路由器IP子网下(路由器一般192.168.1.0),例如192.168.1.2,大于2就行,因为192.168.1.1为默认LAN端口】为与你要连接的服务器自身的mac地址绑定。

4:设置端口分配,内部端口默认22,外部端口设置一个唯一的,IP地址就填上面分配给服务器的。

5:连接时IP填申请的固定IP,端口填刚刚分配给服务器对应的外部端口

提示,若LAN口不够时,再加一台路由器LAN口接上一台的LAN口,WAN口不接,接了的话会形成多个子网,此时外接的路由器的LAN端口要设置最后一段不同,如192.168.1.2,若WAN口接上一台LAN口,则LAN口设置倒数第二段不同,如192.168.X.1,这里X不是1就行)

1.4 检查SSH服务

$ systemctl status sshd.service

如果inactivate(若active则会绿色突出显示)

$ systemctl enable sshd.service
$ systemctl start sshd.service

其端口一般在 /etc/ssh/sshd-config 中 可vim修改 取消注释 PORT 22 下面再加 PORT xx(你的设置),成功后可注释掉22的,当然路由器端口绑定也得改

1.5 检查测试

$ ping (自己的IP)

用同级网络下另一台电脑putty/shell等FTP链接


挂载硬盘(可选)

  1. 列出你的硬盘设备
    $ fdisk -l
    $ mount  (需挂载硬盘) (挂载文件夹)
  2. 永久挂载
    $ vim /etc/fstab
    在文件中添加 /dev/sdb1 (需挂载硬盘) /opt(挂载文件夹) ext3(文件系统类型) defaults 1(是否备份) 1(启动时是否扫描)

即时生效挂载信息

$ mount -a

安装Python3.7,系统自带Python2.7

$ which python
$ cd /usr/bin
$ wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
$ tar zxvf Python-3.7.2.tgz
$ mv Python-3.7.2/ /usr/local/
$ yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel gcc libffi-devel gcc make automake autoconf libtool libffi-devel
$ cd /usr/local/Python-3.7.2
$ ./configure --prefix=/usr/local/python3
$ ./configure --enable-optimizations
$ make && make install
配置软链接
$ ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
$ ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3	

配置nvidia驱动

参考

1.导入公钥

$ rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

2.To install ELRepo for RHEL-7, SL-7 or CentOS-7:

$ rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

3.安装显卡检查程序,检查内核,源码版本是否一致

$ ls /boot | grep vmlinu
$ rpm -aq | grep kernel-devel
(之前可关闭自带集成显卡驱动:lsmod | grep nouveau 
$ vim /lib(这里可能在/etc)/modprobe.d/dist-blacklist.conf
注释 #blacklist nvidiafb
添加 blacklist nouveau
        options nouveau modeset=0
或
$ su root
$ echo -e "blacklist nouveau\noptions nouveau modeset=0" > /etc/modprobe.d/blacklist.conf)后重启 reboot

4.先备份系统启动引导文件镜像(可选)

$ cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak

然后建立新的镜像

$ dracut /boot/initramfs-$(uname -r).img $(uname -r)

5.查找合适驱动

$ yum install nvidia-detect
$ nvidia-detect 
>> kmod-nvidia

6.安装合适版本驱动

$ yum install $(nvidia-detect)
//也可以查找软件源中驱动程序
$ yum search kmod-nvidia

7.reboot(必须!)

$ reboot

8.需要卸载的时候 显卡驱动卸载(yum 安装模式的卸载)查看安装的nvidia模块命令

$ rpm -qa|grep -i nvid|sort
$ yum  remove kmod-nvidia-*

9.安装 cuda,然后

$ wget https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda-repo-rhel7-11-3-local-11.3.1_465.19.01-1.x86_64.rpm
$ sudo rpm -i cuda-repo-rhel7-11-3-local-11.3.1_465.19.01-1.x86_64.rpm
$ sudo yum clean all
$ sudo yum -y install nvidia-driver-latest-dkms cuda
$ sudo yum -y install cuda-drivers

我这里要用预先下载的cuda10 rpm版本不然版本对不上

$ sudo rpm -i cuda-repo-rhel7-10-0-local-10.0.130-410.48-1.0-1.x86_64.rpm
$ sudo yum clean all(可选清除所有yum缓存)
$ sudo yum install cuda

10.安装cudnn
切换到压缩包所在位置,解压

$ tar -xzvf cudnn-10.2-linux-x64-v7.6.5.32.tgz

10.1 复制相关文件到cuda特定目录下(我的cuda安装目录为/usr/local/cuda/)

$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64

10.2 修改文件权限

$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

10.3 检查安装是否成功

$ nvidia-smi

注意pytorch/tensorflow(要使用gpu版本) + cuda+cudnn版本号要对应

11.python程序执行
上传py程序后cd到对应目录执行:

python sample.py >run.log 2>e.log &

或创建脚本(vim xxx.sh)按i进入编辑模式(set paste进入可右键粘贴模式)
编写脚本大概如下:

python sample.py -xxxx xx(这里为参数设置) >run.log 2>e.log &

按Esc 输入:wq 保存退出

nohup sh xxx.sh

可选操作

##安装virtualenvwrapper

$ pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
$ ln -s /usr/Python-3.6.5/bin/virtualenv /usr/bin/virtualenv #创建软连接
$ pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenvwrapper

修改/.bashrc或者/.bash_profile

$ vim ~/.bashrc

按i或a修改,最后应写为

export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/python3/bin/virtualenvwrapper.sh
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/python3/bin/virtualenv
export PATH=/usr/local/cuda-10.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH

按esc输入:wq保存并退出

立即生效

$ source ~/.bashrc
$ reboot

使用方法:
创建自己的python虚拟环境
(1) 创建虚拟环境
创建虚拟环境(-p为指定python版本)
mkvirtualenv [虚拟环境名称] -p python3
创建虚拟环境时会同时配置好pip。

(2) 基本使用
进入(切换)虚拟环境
workon [虚拟环境名称]
退出虚拟环境
deactivate
列出虚拟环境下安装的包
lssitepackages 或者 pip list

(3) 其他可能用到的命令
列出所有虚拟环境
lsvirtualenv -b
进入虚拟环境主目录
cdvirtualenv [子目录]
复制虚拟环境
cpvirtualenv [source] [dest]
删除虚拟环境
rmvirtualenv [虚拟环境名称]

##添加远程桌面连接
1.开始前请确保你有能上网的主机两部(一个是CentOS7系统,一个是Windows10系统)

1、用SSH root用户登录Centos主机;

2、检查你的centos是否装了epel库 执行命令:

$ rpm -qa|grep epel

如果没有就安装:

$ yum install epel-release

3、安装xrdp,执行命令:

$ yum install xrdp ;

一路Y下来

4、安装tigervnc-server,执行命令:

$ yum install tigervnc-server;

5、为用户root设置vnc密码,命令为:

$ vncpasswd root;

6、网上说还要配置xrdp.ini文件,修改XRDP最大连接数,否则远程连接可能无法成功。***我没有配置

7、配置或关闭SELinux

查看SELinux状态命令:

$ /usr/sbin/sestatus -v 

临时关闭SELinux(设置SELinux 成为permissive模式)命令:

setenforce 0 

8、关闭防火墙或者不关闭防火墙,打开3389端口命令,或直接永久关闭防火墙:(宝塔用户直接在WEB面板的安全里面放行端口即可)

$ firewall-cmd --permanent --zone=public --add-port=3389/tcp
$ firewall-cmd --reload

9、启动xrdp服务,并且设置为开机启动

启动服务命令:

$ systemctl start xrdp

开机启动命令:

$ systemctl enable xrdp

10、Win系统下“Win+R”键,在弹出的“运行”框中输入“mstsc“命令,按“确定”,打开Windows远程连接,输入IP地址和端口号如 192.168.1.10:22

开始远程连接,在弹出的Xrdp用户验证窗口中输入CentOS7的用户名和密码登录即可。Good Luck!

##安装jupyter notebook
###一个强大的python即时编辑环境
搭建jupyter远程登录环境:
安装jupyter包:

$ pip install --user jupyterlab

进入ipython,若失败则先安装ipython,建立软链接

$ ln /usr/local/python3/bin/ipython /usr/bin/ipython

生成jupyter密钥:

$ from notebook.auth import passwd
$ passwd() (之后填写并确认密码*不显示输入)复制输出的密钥
$ exit()

建立软连接:

$ ln -s /usr/local/Python3/bin/jupyter /usr/bin/jupyter

生成jupyterlab配置文件:

$ jupyter lab --generate-config

修改配置文件

$ vim ~(这里填上面说的生成位置)/.jupyter/jupyter_notebook_config.py
将ip设置为*,允许任何IP访问
c.NotebookApp.ip = '*'
这里的密码填写上面生成的密钥
c.NotebookApp.password = 'argon2:$argon2id$v=19$m=10240,t=10,p=8$H/PskzDjY8eqKrQU8pDSCA$fK4/TFffP1mJOePWZUP+UA' 
禁止用host的浏览器打开jupyter
c.NotebookApp.open_browser = False 
监听端口设置为8888或其他
c.NotebookApp.port = 8888
允许远程访问 
c.NotebookApp.allow_remote_access = True
(保存退出)

关闭防火墙或者开放8888端口:

$ systemctl stop firewalld.service
$ ystemctl disable firewalld.service 
或
$ firewall-cmd --permanent --zone=public --add-port=8888/tcp
$ firewall-cmd --reload
reboot(重启)

jupyter nodebook

用其他电脑浏览器访问:http://ipaddress(你的服务器IP地址):8888/


卸载cuda:

$ cd /Developer/NVIDIA/CUDA-10.1/bin
$ sudo perl uninstall_cuda_10.1.pl --manifest=.cuda_toolkit_uninstall_manifest_do_not_delete.txt
$ sudo rm -r /usr/local/cuda-10.1

$ sudo yum remove cuda 
$ sudo yum clean all(可选)
$ sudo yum remove cuda*
$ sudo yum remove nvidia*

命令行和图形界面切换:

$ cat /etc/inittab 或 systemctl get-default(查看开机设置)
$ systemctl set-default multi-user.target(设置开机命令行)
$ systemctl set-default graphical.target(设置开机图形化界面)

小记

查看进程情况 top -c 或者 jobs

查看特定PID情况:ps -mp -o THREAD,tid,time | sort -k2r

图形到DOS:Ctrl+alt+f2

DOS到图形:命令行输入startx
或者
在命令上输入 init 3 切换到DOS界面 输入init 5 切换到图形界面


文章作者: Huangqicheng
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明来源 Huangqicheng !
  目录