安装
本次安装是在虚拟机上进行,所以先创建虚拟机。打开WMware workstation,点击“创建新的虚拟机”
选中稍后安装操作系统,否则在创建虚拟机后会自动安装系统。
系统选择linux,并在下面选中ubuntu发型版本。
名称自定义,设置虚拟机路径。
网络我这里选择NAT,也可以用桥接,但不要用仅主机模式,否则无法连通外网。
其余都默认就可以,磁盘这里设置40GB,可以根据实际需要修改。
创建完成后,选中虚拟机,点击“编辑虚拟机设置”,在弹出的窗口里选中CD/DVD(SATA)设备,选中右侧“使用ISO影响文件”,并选中ubuntu server的iso文件,点击确定。这里可以将配置调高一点,提高安装系统的速度。如果不需要高配置,安装完系统再改回原来的配置。
此时准备工作完成,点击“开启虚拟机”,即开始安装过程。第一步需要选择语言,建议选择English。
为了提高安装速度,通常选择“continue without update”
键盘布局无需修改,直接下一步。
网络可以先配置好IP地址或bond,也可以安装完系统后配置,这里我直接下一步。
这里可以配置代理上网,我直接下一步。
配置镜像地址,不用修改,直接下一步。
设置磁盘,默认以lvm方式管理磁盘,直接下一步。
到这里基本设置项就设置完成了,回车下一步。回车以后会提示是否确认安装,继续回车。
设置用户名密码、主机名
这一步将光标调至“Install OpenSSH server”前面的括号中,按空格键选中,再将光标调至下面的“Done”按钮上并回车。
弹出的界面中选择需要安装的服务,这里我都不安装,等使用时再根据实际需要安装相应的服务。
将光标调至下面的“Done”并回车后,开始安装过程
安装过程中会自动更新,过程很慢,直接取消更新。
重启后,系统安装完成。
优化
配置主机名
如果安装过程中没有配置主机名,则建议修改。修改后重启生效,不过建议暂时不重启,因为优化项中多数都是重启生效,所以修改全部优化项后再重启即可。
sudo vim /etc/hostname
更改网卡名称为eth*
建议将网卡名称修改为eth*格式,如果安装系统时没修改,可以按以下方式修改。
~$ sudo vim /etc/default/grub
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="" #删除引号内的内容
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0" #添加引号内的内容
#保存退出
~$ sudo update-grub
Sourcing file `/etc/default/grub'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.15.0-55-generic
Found initrd image: /boot/initrd.img-4.15.0-55-generic
done
允许root远程登录
默认情况下,ubuntu不允许root⽤⼾远程ssh,如果有实际场景需要允许root⽤⼾远程ssh,则需要设置root密码,并且编辑/etc/ssh/sshd_config⽂件修改如下:
~$ sudo vim /etc/ssh/sshd_config
#PermitRootLogin prohibit-password #默认为禁⽌登录
PermitRootLogin yes #增加这一行,改为允许登录
#PasswordAuthentication yes
PasswordAuthentication yes #打开密码认证,默认就是允许通过密码认证登录
#保存退出
~$ sudo su - root #切换到root⽤⼾环境
# passwd #设置密码
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
# systemctl restart sshd #重启ssh服务并测试root⽤⼾远程ssh连接
修改默认软件源为阿里云
默认的软件源为官方地址,建议国内改为阿里云、清华大学等源地址,提高软件下载速度。这里我修改为阿里云的软件源地址。进入https://developer.aliyun.com/mirror/ubuntu,将18.04的配置复制到如下配置文件:
~$ sudo vim /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
#保存退出
~$ sudo apt update #修改后更新apt源
安装常用软件
~$ sudo apt purge ufw lxd lxd-client lxcfs lxc-common #卸载不用的软件
~$ sudo apt install iproute2 ntpdate tcpdump telnet traceroute nfs-kernel-server \
nfs-common lrzsz tree openssl libssl-dev libpcre3 libpcre3-dev make make-guile\
zlib1g-dev gcc openssh-server iotop unzip zip
系统资源限制优化
~$ sudo vim /etc/security/limits.conf
#root账⼾的资源软限制和硬限制
root soft core unlimited
root hard core unlimited
root soft nproc 1000000
root hard nproc 1000000
root soft nofile 1000000
root hard nofile 1000000
root soft memlock 32000
root hard memlock 32000
root soft msgqueue 8192000
root hard msgqueue 8192000
#其他账⼾的资源软限制和硬限制
* soft core unlimited
* hard core unlimited
* soft nproc 1000000
* hard nproc 1000000
* soft nofile 1000000
* hard nofile 1000000
* soft memlock 32000
* hard memlock 32000
* soft msgqueue 8192000
* hard msgqueue 8192000
内核参数优化
~$ sudo vim /etc/sysctl.conf
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
net.ipv4.ip_nonlocal_bind = 1
net.ipv4.ip_forward = 1
# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1
# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1
# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
# Controls the default maxmimum size of a mesage queue
kernel.msgmnb = 65536
# # Controls the maximum size of a message, in bytes
kernel.msgmax = 65536
# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736
# # Controls the maximum number of shared memory segments, in pages
kernel.shmall = 4294967296
# TCP kernel paramater
net.ipv4.tcp_mem = 786432 1048576 1572864
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_sack = 1
# socket buffer
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.netdev_max_backlog = 262144
net.core.somaxconn = 20480
net.core.optmem_max = 81920
# TCP conn
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_syn_retries = 3
net.ipv4.tcp_retries1 = 3
net.ipv4.tcp_retries2 = 15
# tcp conn reuse
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_max_tw_buckets = 20000
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syncookies = 1
# keepalive conn
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.ip_local_port_range = 10001 65000
# swap
vm.overcommit_memory = 0
vm.swappiness = 10
#net.ipv4.conf.eth1.rp_filter = 0
#net.ipv4.conf.lo.arp_ignore = 1
#net.ipv4.conf.lo.arp_announce = 2
#net.ipv4.conf.all.arp_ignore = 1
#net.ipv4.conf.all.arp_announce = 2
安装常用工具
安装JDK环境
如果系统需要JDK环境,则还要安装JDK。有两种方法:
#安装OpenJDK可用命令直接安装
~$ sudo apt install openjdk-8-jdk
#或者安装oracle JDK,解压压缩文件并设置环境变量:
##解压⼆进制⽂件并设置软连接:
~$ sudo tar xf jdk-8u212-linux-x64.tar.gz
~$ sudo ln -sv /usr/local/src/jdk1.8.0_212 /usr/local/jdk
##配置环境变量:
~$ sudo vim /etc/profile
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
##重新导⼊环境变量并验证:
~$ sudo source /etc/profile
~$ sudo java -version
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)