05月27, 2017

Ubuntu 16.04 配置指南

本文将持续更新

缘起

过去一年正是我接触 Linux 的一年,这期间我从头开始配置过了许多台 Linux(主要以 Ubuntu 为主)。许多同学也来问过我配置 Ubuntu 有什么建议,但是一时也很难说清,于是一直有计划写一篇文章详细记叙一下我从头配置一台 Ubuntu 的过程。

阿里云最近推出的云翼计划 是我着手写这篇文章的契机,118.80 元一年的费用购买一个配置还不错的国内阿里云主机对我有一定吸引力。索性购买了一个,顺便记录下以下过程。

学生认证

阿里云通过学信网进行学生身份的认证。在认证途中我发现原来的手机换了,顺便改了帐号。学信网上可以显示你的学籍,具体到班级学号。

阿里云会自动获取到这些信息,并对你的学生主机设置期限。由此可以看出阿里的整套体系已经非常完善,实名认证走支付宝,学生认证走学信网,一方面上防止了作假的可能,另一个方面上也为我们提供了便利。

部分设置仅适用于 Ubuntu 16.04 ,其他发行版请谨慎效仿。

Login

我在注册时直接创建了一个新的密钥,封掉通常的帐号密码登录,采用 ssh 密钥登录。 阿里云支持导入和直接创建密钥,导入则导入你自己的现有公钥,创建则会在服务器上保存新的公钥,密钥长度2048位,将新的私钥通过浏览器发送给你,注意只能下载一次。 下载私钥后,将私钥放到一个安全的地方,通常我们放到 ssh 目录,并 chmod 为 400。 在 linux 下使用 ssh 的 -i 参数 root@ip ssh -i <密钥路径> 即可。 在 windows 下可以使用 ssh 客户端的使用密钥登录功能。

The authenticity of host '47.93.185.137 (47.93.185.137)' can't be established.
ECDSA key fingerprint is SHA256:dsrK9+Gk2lul8yV9BHTgQ2EK7du2w9D2ycDDE3qVD74.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '47.93.185.137' (ECDSA) to the list of known hosts.

第一次连接的时候 ssh 会有这样的提示,这是 ssh 连接的身份确认机制,虽然很重要,但是一般我们也大手大脚的略过了,这里不赘述。推荐阅读阮一峰博客

使用ssh密钥是安全性较高的推荐方法,许多人为了便利,还是希望使用帐号密码登录。那么除了一定要设置强密码以外,建议在第一次登录后,直接修改 ssh 默认端口,提高系统的安全性。

如果你已经有密码的情况想用密钥登录可以用 ssh-copy-id user@host 把自己的密钥拷贝到服务器上。

如果拷贝后仍不能使用密钥登录的,请检查 sshd_config 文件下的这两行的注释是否取消

RSAAuthentication yes
PubkeyAuthentication yes

修改 SSH 端口

SSH 的配置文件一般在/etc/ssh目录下,ssh_config是客户端配置文件,sshd_config是服务端配置文件,我们可以通过修改服务端配置文件来修改 SSH 的端口。

过程如下

nano /etc/ssh/sshd_config #修改其中的 port 行,默认的是22,改成一个别的数字,不超过65535
service sshd restart
exit

增加连接稳定性

许多服务会在一定时限后自动断开空闲的会话,这使我们会经常遇到连接中断的情况。我们可以让服务端定时向客户端发送空数据包来确认客户端的在线情况。

nano /etc/ssh/sshd_config #在末尾增加两行
ClientAliveInterval 60
ClientAliveCountMax 5

这两行配置表示服务器每隔 60s 会向客户端发送一个空包,如果连续尝试 5 次没有得到回应就会断开连接。具体参数可以视网络情况自己调节。

如果你使用 *NIX 系统的客户端,你也可以修改客户端的 ssh_config 文件,原理相同。

使用 mosh

mosh 是专为移动设备设计的 ssh。即使我们不处在移动环境下,我们的连接也可以因为种种原因(跨国啦,校园网啦)而变得不稳定,这时我们可以用它来使我们的连接环境更稳定。

sudo apt install mosh

使用这条命令安装 mosh 会自动添加 ufw 的白名单让 mosh 通过。以后可以使用 mosh 替代 ssh。

mosh user@host

添加用户

Ubuntu 推荐使用 adduser username 命令添加用户,使用 usermod -aG sudo username 将其添加到 sudo 用户组中。

修改 hostname(可选)

初次登录一台 Linux 主机(尤其是云主机)时,我们往往会看到下面这行提示。root@后面跟随着一长串编码,这其实是随机生成的主机名。强迫症可能不能忍耐这点,我们尝试进行修改。

root@iZ2zeeqt798ezcsynbfpn1Z:~#

暂时修改

sudo hostname your-new-name

主机名不能包含下划线

重新登录

永久修改

sudo vim /etc/hostname

重新启动

“不需要重启的永久修改”

所以如果想要修改 hostname without reboot 那就可以通过同时进行上述两项操作来实现(呵呵)

附加改动

改完 hostname 以后我们修改 /etc/hosts 中 127.0.0.1 指向 your-new-name

更换 Apt 源

如果你完全不知道 Apt 源是什么的话,推荐先阅读 https://wiki.debian.org/SourcesList

Apt 源指定了 apt-get 等相关命令获取资源的路径,在国内使用 Linux 必须更换 Apt 源到国内的镜像站以获取稳定 apt-get 速度。阿里云拥有自己的镜像站,所以在云主机初始化的时候,阿里云就已经在 /etc/apt/sources.list.d/ 目录下放置了自己的源文件,如果你想修改,可以参考该目录下的说明。

如果你的主机需要自己配置源,那么你直接修改 /etc/apt/sources.list 文件内容就可以。教育网内推荐清华 tuna 镜像源以及中科大镜像源。

sources.list 的替换步骤在镜像站上一般都有说明,我们可以观察一下 sources.list 的结构。

文件中除了以 # 号开头的注释以外,每一条条目都是类似

deb http://site.example.com/debian distribution component1 component2 component3
deb-src http://site.example.com/debian distribution component1 component2 component3

这样的结构,其中 deb 是二进制包的源,也就是 .deb 文件,deb-src 是源文件包的源,包括了.dsc 文件和 .diff.gz 文件。在更换其中内容的时候,我们可以大概看一下 distribution 是不是符合我们的发行版,distribution 既可以是名字也可以是昵称。以下是 Ubuntu 各个发行版的名字/昵称:

  • Ubuntu 17.04 (Zesty Zapus)
  • Ubuntu 16.10 (Yakkety Yak)
  • Ubuntu 16.04.2 LTS (Xenial Xerus)
  • Ubuntu 14.04.5 LTS (Trusty Tahr)
  • Ubuntu 12.04.5 LTS (Precise Pangolin)

配置防火墙 ufw

ubuntu 自带了防火墙应用 ufw,一般不默认开启

ufw app list

这个命令会列举出常见可以开放的应用。

ufw allow “”

allow 命令开放应用端口

ufw enable

开启 ufw 服务

ufw reload

以后修改 ufw 配置时可以用 reload 重载,无需重启服务

配置 Vim

ubuntu 默认的 vim 是不支持 ruby 的,这样可能会影响到一些插件的安装。我们可以安装 vim.nox 以支持 ruby。

配置网卡

Linux 下有几个检查网络环境的常见工具

lspci #查看 pci 设备
ipconfig #查看活跃的网卡
ipconfig -a #查看所有网卡
ip link #查看网卡状态
ip link set up ... #开启某张网卡
vim /etc/network/interfaces #修改网络配置
ifdown ... && ifup ... #重启某张网卡

由于网络情况的复杂性,本文只做一些抛砖引玉的提示,并不意图写出详细的配置过程。

配置显卡

请参照此文

本文链接:https://sxing.xyz/post/ubuntu.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。