Ubuntu 做为一个Linux的发行版,在桌面环境的易用性上作了不少改善,对推进Linux的推广作了很大的贡献。同时,它做为服务器的操做系统也愈来愈多的被使用。固然,服务器端可能更多的人在使用Redhat、CentOS等系统。Linux的发行版本不少,基本命令都差很少,可是一些系统配置上,也存在着各类各样的差别。笔者结合Ubuntu的多年使用经验,总结一下Ubuntu系统的一些配置要点。mysql
Ubuntu在安装过程当中会自动寻找网络链接并配置网络IP等,可是好多状况下,安装系统时不须要或不方便配置网络。那么,等咱们安装完系统,就要先配好网络才能继续安装、配置其它软件。Ubuntu的网卡名称在几年前(大约14.04以前的版本)都是这样命名的:
有线网卡为eth0(多个网卡序号增大:eth1, eth2…),无线网卡是wlan0。
可是到了16.04的版本,网卡的命名作了很是大的改动,名称从eth0变为en开头的,为何更名呢?ios
可预测的网络接口命名sql
自从 v197 systemd/udev 开始,系统能够为本地的Ethernet、WLAN和WWAN接口自动地分配可预测的、稳定的网络接口名称。该规范脱离了传统的命名机制(eth0,eth1,wlan0等),可是修复了许多问题。docker
缘由ubuntu
在传统的网络接口命名规则下,是由内核简单地从eth0开始为可被驱动探索到的设备分配名字(eht0,eth1…)。因为这些驱动不可以被如今技术所预测,意味着多个网络接口均可以被分配名为“eth0”、“eth1”这样的名字,这种方式存在一种隐患,就是一种接口多是以“eth0”启动,可是结束时就变成了“eth1”.不可预测的命名规则存在着严重的安全威胁。 为了修复这个问题,许多方案被提出和实现。很长一段时间,udev都是根据Mac地址来分配永久了“ethX”名字。这致使了不少问题:这须要一个可写的可是一般不容许的root目录;因为系统的无边界性,当root一个OS镜像的时候可能会改变镜像的配置信息;许多系统的Mac地址并非固定的。其中最大的问题是用户空间和系统内核对设备命名的冲突。 另外一种解决方案就是“biosdevname”,该方案经过找到固件中固定的拓扑信息而后利用它们分配固定的接口。这个命名机制同/dev/*/by-path/ symlinks的方式很类似。大多数状况下,biosdevname 从底层的内核设备定位机制中分离了出来。 最后,许多观点迟滞根据用户选择的名字对接口从新命名,切断同Mac和物理位置的联系。这是一个很是好的选择,可是存在一个隐藏的问题就是用户得到了选择和分配这些名字的权利。 咱们相信由“biosdevname”机制已领的泛化机制是一个很好的选择。基于固件、拓扑和位置信息分配固定的名字有一个巨大的优点,名字是全自动地、可预测的,即便硬件添加或删除也不影响。vim
V197添加了什么安全
systemd 197为许多命名策略新增了许多本地化的支持到 systemd/udevd 并实现了一个相似于“biosdevname”的机制。五种网络接口的命名机制经过udev获得了支持。服务器
/* * Two character prefixes based on the type of interface: * en — Ethernet * sl — serial line IP (slip) * wl — wlan * ww — wwan * * Type of names: * b — BCMA bus core number * c — CCW bus group name, without leading zeros [s390] * o[d] — on-board device index number * s[f][d] — hotplug slot index number * x — MAC address * [P]ps[f][d] * — PCI geographical location * [P]ps[f][u][..][c][i] * — USB port number chain */
上面一段是systemd源码的注释,意思是:网络
en表明以太网卡
p3s0表明PCI接口的物理位置为(3, 0), 其中横座标表明bus,纵座标表明slot
那么如何查看个人机器上的网卡名称是什么呢?能够经过如下命令来查看:
ls /sys/class/net/ docker0 enp0s31f6 enx30b49e09b81e lo zt0
能够看到个人机器上有5个网卡设备。知道了网卡名称就能够配置网络IP了。这里,咱们用vim编辑网络配置文件:
vim /etc/network/interfaces
若是你的网络是经过dhcp自动获取IP,能够这样编写配置文件:
auto lo # 表明127.0.0.1,即localhost iface lo inet loopback auto enp0s31f6 # 这是网卡名称 iface enp0s31f6 inet dhcp
若是你的网络有静态IP,则这样编写配置文件:
auto lo # 表明127.0.0.1,即localhost iface lo inet loopback auto enp0s31f6 # 这是网卡名称 iface enp0s31f6 inet static address 10.1.40.240 gateway 10.1.40.254 netmask 255.255.255.0
若是你的网卡须要绑定多个IP,则增长的IP这样写:
auto enp0s31f6:0 # 这是虚拟出的网卡名称,加了:0,若是有更多IP,能够:1, :2, ... iface enp0s31f6:0 inet static address 192.168.1.100 gateway 192.168.1.1 netmask 255.255.255.0
配置文件编辑完成后,重启一下网络,使配置生效:
sudo /etc/init.d/networking restart # 或者用service命令: sudo service networking restart
源列表(sources.list)是Ubuntu的包管理软件apt-get获取软件的网址列表。该列表文件位于: /etc/apt/sources.list。因为Ubuntu官方的源地址在国外,国内访问速度很慢,因此,咱们须要改为国内的镜像服务器,这样下载安装软件包的时候就能够很快了。好比,可使用阿里云的镜像:
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
除了阿里云的镜像,国内还有清华大学镜像、中科大镜像等等,能够根据本身的网络链接状况选择镜像源。
随着 Ubuntu 16.04 LTS 的发布,Ubuntu 的软件包管理命令也发生了变化,新系统采用了 Debian 项目中所使用的 APT(Advanced Package Tool)来完成各类的不一样的任务,APT 命令全面取代了咱们以前在 Linux 软件包管理基本操做入门中所介绍的 apt-get、apt-cache 等功能。下面是新的apt和旧的apt-get、apt-cache的不一样:
Ubuntu 16.04 LTS | 老版本Ubuntu |
---|---|
apt install 包名 | 替代 apt-get install 包名 |
apt remove 包名 | 替代 apt-get remove 包名 |
apt search 包名 | 替代 apt-cache search 包名 |
apt show 包名 | 替代 apt-cache show 包名 |
apt update | 替代 apt-get update |
apt upgrade | 替代 apt-get upgrade |
apt list –installed |
|
apt list –upgradable | apt-get -u upgrade –assume-no |
apt edit-sources |
|
apt autoremove | 替代 apt-get autoremove |
apt purge 包名 | 替代 apt-get purge 包名 |
ulimit限制着程序打开文件的数目,默认状况下为1024,做为服务器使用时,这个数字每每很是偏小。Ubuntu要修改这个限制,稍微有点复杂。如下步骤咱们把限制数修改成:65536。
(1)修改系统限制
abc@ubuntu:~$ sudo vim /etc/sysctl.conf
文件最后增长一行:
fs.file-max = 65536
(2)修改limits.conf
sudo vim /etc/security/limits.conf
增长:
* soft nproc 65536 * hard nproc 65536 * soft nofile 65536 * hard nofile 65536 root soft nproc 65536 root hard nproc 65536 root soft nofile 65536 root hard nofile 65536
(3)修改common-session
sudo vim /etc/pam.d/common-session
增长:
session required pam_limits.so
(4)编辑/etc/profile,加入
ulimit -SHn 65536
重启系统,再次经过命令ulimit -n 查看,该数字已经变成65536了。
4. 修改MySQL的存储路径datadir
Ubuntu经过apt install mysql-server 安装的MySQL的默认路径是 /var/lib/mysql。做为服务器,咱们每每把MySQL的数据盘单独出来,而不是和系统盘混在一块儿。好比,咱们但愿MySQL放在/database 这个数据盘上,则须要如下配置:
#0. 中止MySQL服务
sudo service mysql stop
#1.复制原有数据(-a 选项保持mysql目录的原始权限)
cp -ra /var/lib/mysql/ /database/
#2.修改MySQL配置文件
vim /etc/mysql/my.cnf datadir = /database/mysql
#3.修改apparmor启动文件
vim /etc/apparmor.d/usr.sbin.mysqld #把 /var/lib/mysql r /var/lib/mysql/** rwk #修改为 /database/mysql r /database/mysql/** rwk,
#4.重启apparmor
/etc/init.d/apparmor restart
#5. 启动MySQL
sudo service mysql start