Ubuntu 16.04 装机后的配置要点

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 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教程]
作者:猿人学

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
51 2
|
2月前
|
网络协议 Ubuntu 网络安全
|
2月前
|
消息中间件 监控 Ubuntu
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
96 3
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
|
2月前
|
资源调度
Ubuntu22.04静态ip配置+yarn build后显示内存超限,变异失败
Ubuntu22.04静态ip配置+yarn build后显示内存超限,变异失败
46 2
Ubuntu22.04静态ip配置+yarn build后显示内存超限,变异失败
|
2月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
507 3
|
3月前
|
存储 Prometheus 监控
在Ubuntu系统上安装与配置Prometheus的步骤
通过以上步骤,您应该已经成功在Ubuntu系统上安装并配置了Prometheus。您现在可以开始使用Prometheus收集和分析您的系统和应用程序的指标数据了。
226 1
|
2月前
|
Ubuntu 网络协议 Linux
liunx各大发行版(centos,rocky,ubuntu,国产麒麟kylinos)网卡配置和包管理方面的区别
liunx各大发行版(centos,rocky,ubuntu,国产麒麟kylinos)网卡配置和包管理方面的区别
130 0
|
3月前
|
Ubuntu Oracle 关系型数据库
Oracle VM VirtualBox之Ubuntu 22.04LTS双网卡网络模式配置
这篇文章是关于如何在Oracle VM VirtualBox中配置Ubuntu 22.04LTS虚拟机双网卡网络模式的详细指南,包括VirtualBox网络概述、双网卡网络模式的配置步骤以及Ubuntu系统网络配置。
356 3
|
3月前
|
Ubuntu 开发工具 虚拟化
MacOS系统基于VMware Fusion配置Ubuntu 22.04LTS环境
这篇文章介绍了如何在MacOS系统上使用VMware Fusion虚拟化软件配置Ubuntu 22.04 LTS环境,包括自定义VMware Fusion网段、Ubuntu系统安装、配置root用户登录、设置静态IP地址、修改默认网卡名称、配置PS1变量、设置登录界面为字符界面、修改软件源和进行vim基础优化等步骤。
416 2
|
3月前
|
Ubuntu
树莓派 —— ubuntu上通过netplan配置网络
树莓派 —— ubuntu上通过netplan配置网络
下一篇
DataWorks