Ubuntu 16.04 装机后的配置要点

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Ubuntu 作为一个Linux的发行版,在桌面环境的易用性上做了很多改善,对推动Linux的推广做了很大的贡献。同时,它作为服务器的操作系统也越来越多的被使用。当然,服务器端可能更多的人在使用Redhat、CentOS等系统。

Ubuntu 作为一个Linux的发行版,在桌面环境的易用性上做了很多改善,对推动Linux的推广做了很大的贡献。同时,它作为服务器的操作系统也越来越多的被使用。当然,服务器端可能更多的人在使用Redhat、CentOS等系统。Linux的发行版本很多,基本命令都差不多,但是一些系统配置上,也存在着各种各样的差异。笔者结合Ubuntu的多年使用经验,总结一下Ubuntu系统的一些配置要点。QQ_20190314095024

  1. 网络的配置

Ubuntu在安装过程中会自动寻找网络连接并配置网络IP等,但是好多情况下,安装系统时不需要或不方便配置网络。那么,等我们安装完系统,就要先配好网络才能继续安装、配置其它软件。Ubuntu的网卡名称在几年前(大约14.04之前的版本)都是这样命名的:
有线网卡为eth0(多个网卡序号增大:eth1, eth2…),无线网卡是wlan0。
但是到了16.04的版本,网卡的命名做了非常大的改动,名称从eth0变为en开头的,为什么改名呢?

可预测的网络接口命名

自从 v197 systemd/udev 开始,系统可以为本地的Ethernet、WLAN和WWAN接口自动地分配可预测的、稳定的网络接口名称。该规范脱离了传统的命名机制(eth0,eth1,wlan0等),但是修复了许多问题。

原因

在传统的网络接口命名规则下,是由内核简单地从eth0开始为可被驱动探索到的设备分配名字(eht0,eth1…)。由于这些驱动不能够被现在技术所预测,意味着多个网络接口都可以被分配名为“eth0”、“eth1”这样的名字,这种方式存在一种隐患,就是一种接口可能是以“eth0”启动,但是结束时就变成了“eth1”.不可预测的命名规则存在着严重的安全威胁。 为了修复这个问题,许多方案被提出和实现。很长一段时间,udev都是根据Mac地址来分配永久了“ethX”名字。这导致了很多问题:这需要一个可写的但是通常不允许的root目录;由于系统的无边界性,当root一个OS镜像的时候可能会改变镜像的配置信息;许多系统的Mac地址并不是固定的。其中最大的问题是用户空间和系统内核对设备命名的冲突。 另一种解决方案就是“biosdevname”,该方案通过找到固件中固定的拓扑信息然后利用它们分配固定的接口。这个命名机制同/dev/*/by-path/ symlinks的方式很相似。大多数情况下,biosdevname 从底层的内核设备定位机制中分离了出来。 最后,许多观点迟滞根据用户选择的名字对接口重新命名,切断同Mac和物理位置的联系。这是一个非常好的选择,但是存在一个隐藏的问题就是用户获得了选择和分配这些名字的权利。 我们相信由“biosdevname”机制已领的泛化机制是一个很好的选择。基于固件、拓扑和位置信息分配固定的名字有一个巨大的优势,名字是全自动地、可预测的,即使硬件添加或删除也不影响。

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
  1. 更改源列表

源列表(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
替代 dpkg –get-selections | grep -v deinstall
替代 dpkg -l
apt list –upgradable apt-get -u upgrade –assume-no
apt edit-sources
替代 echo ‘new line of text’ | sudo tee -a /etc/apt/sources.list
替代 sudo nano /etc/apt/sources.list
apt autoremove 替代 apt-get autoremove
apt purge 包名 替代 apt-get purge 包名

  1. 永久更改ulimit

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了。

  1. 修改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

学习笔记来自于 [Python教程]
作者:猿人学

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
9天前
|
Ubuntu 安全 Linux
Linux(34)Rockchip RK3568 Ubuntu22.04和Debian 10上配置远程桌面工具
Linux(34)Rockchip RK3568 Ubuntu22.04和Debian 10上配置远程桌面工具
80 0
|
9天前
|
Ubuntu Apache
apache2 ubuntu18.04 配置虚拟端口
apache2 ubuntu18.04 配置虚拟端口
|
9天前
|
网络协议 Java 应用服务中间件
Springboot+ubuntu+Let‘s Encrypt配置https
Springboot+ubuntu+Let‘s Encrypt配置https
50 0
|
9天前
|
Ubuntu
百度搜索:蓝易云【Ubuntu开机自启服务systemd.service配置教程】
现在,你的服务将在Ubuntu开机时自动启动,并在之后的启动中持续运行。记得根据你的实际需求修改 `your_service_name.service`文件中的相关信息。
67 2
|
9天前
|
存储 网络协议 Ubuntu
如何在Ubuntu安装配置SVN服务端并实现无公网ip访问内网资料库
如何在Ubuntu安装配置SVN服务端并实现无公网ip访问内网资料库
80 0
|
9天前
|
Ubuntu 安全 网络安全
百度搜索:蓝易云【Ubuntu系统SSH服务端配置】
现在,你已经成功在Ubuntu系统上配置了SSH服务端。这将允许其他计算机通过SSH协议连接到你的Ubuntu系统,并进行远程管理和操作。请注意,远程访问有安全风险,建议在生产环境中采取必要的安全措施来保护系统。
47 3
|
9天前
|
负载均衡 Ubuntu 应用服务中间件
|
4天前
|
Ubuntu Python CDN
Ubuntu将自建服务配置开机启动项
在Ubuntu上设置Python Flask应用为开机启动服务,需要通过Systemd进行管理。首先,创建并编辑Systemd服务单元文件,指定`ExecStart`为Python解释器及Flask入口脚本,`WorkingDirectory`为应用目录,`User`和`Group`为运行用户,以及必要的环境变量。然后,使用`systemctl`命令进行daemon-reload,启用并启动服务。最后,检查服务状态以确保启动成功。重启机器测试,确认应用能自动启动。
|
9天前
|
Ubuntu 关系型数据库 MySQL
Ubuntu 20.04 + mysql8 安装以及配置大小写不敏感
Ubuntu 20.04 + mysql8 安装以及配置大小写不敏感
|
9天前
|
Ubuntu Linux 网络安全
Git on Ubuntu 22.04: 终极安装与配置指南
【4月更文挑战第21天】
118 0
Git on Ubuntu 22.04: 终极安装与配置指南