0
0

我的 Ubuntu Server Setup:基础篇

图拉鼎 发表于 2017年09月14日 23:12 | Hits: 857

用 Ubuntu 有十年多了,近几年有什么项目需要用到 Server 的,基本上也都是直接用 Ubuntu,原因无它,熟悉+社区支持度。

每次去新设定一个 Ubuntu Server 的时候,总会做一些重复的动作,怪麻烦的。今天我就整理这么一篇《我的 Ubuntu Server Setup》,列一个我开启 Ubuntu Server 必做的一些操作。当然因为不同的云厂商提供的默认环境不一样,有些不是必做的。

至少在阿里云的主机上(他们的 Ubuntu 干净到啥都没有…),我都会做一遍这个操作。也算是借机讨论,看看大家有没有一些有意思的个人设定。

增加新用户,使其成为 root

大多数云主机在开启 Ubuntu 主机后,默认都是用 root 登录的,这里不得不赞一个 Google Cloud Platform,他们默认的帐户是在开主机时就可以确定的。

用 root 是危险的,所以我们要用下面指令创建一个普通用户:

adduser username

创建完这个用户后,也要用它来执行一些系统级动作,于是把它加进 sudo 群组,这样就可以用 sudo 命令了:

gpasswd sudo -a username

默认情况下,sudo 用户每次都是要输入密码的,如果你觉得麻烦,可以考虑关掉它。执行下面这条命令进行 sudo 配置文件编辑模式:

sudo visudo

把文中的

%sudo ALL=(ALL:ALL) ALL

改成

%sudo ALL=(ALL:ALL) NOPASSWD:ALL

这样,sudo 执行命令就再也不用输入密码了。不过建议还是保持密码。输入密码时好歹可以反悔…

配置默认的系统编辑器

在用上面 visudo 这个命令时,你可能会诧异:我明明是 vi,怎么进入 nano 来编辑配置文件了。这是因为 Ubuntu 系统默认的文件编辑器是 nano 而不是 Vim,那么怎么设置成 Vim 呢?

很简单,执行这条命令,选择 Vim,以后凡是自动调用编辑器的地方,都会用 Vim 啦。

sudo update-alternatives --config editor

配置 SSH 登录及 SSH Server 安全设定

前面我们已经创建好用户了,每次登录用户都要输入密码可不爽,现在我们给登录用户设置 SSH Key 来登录,这样就不用输入密码了。

执行下面的执行,建立 authorized_keys 文件,然后把自己电脑的 id_rsa.pub 复制进去。

mkdir -p ~/.ssh

touch ~/.ssh/authorized_keys

chmod 600 ~/.ssh/authorized_keys

这样就可以用用 ssh xxx@127.0.0.1 来登录主机了。

安全性设定,我建议禁止 root 远程登录,然后能改端口的话也改端由。

于是编辑 SSH 配置文件:

sudo vim /etc/ssh/sshd_config

把 PermitRootLogin 设置成 no,用于禁止 root 登录:

PermitRootLogin no

把 PasswordAuthentication 设置成 no,禁止密码登录,更安全:

PasswordAuthentication no

改 Port 为其他数字,注意了,改成其他数字后,记得防火墙设置也要更新。

Port 22####

最后重启 SSH Server 生效:

sudo systemctl restart sshd.service

安装 Byobu

Byobu 是我超喜欢在 Server 上的工具,简单地来说它是一个 Tmux 的包装,默认就提供了一些比较精美的显示模式。

首先安装 Byobu:

sudo apt-get install byobu

然后启用 Byobu:

byobu-enable

这样操作后,以后每次 SSH 登录进主机后,就会进入 Byobu 这个漂亮的 Tmux 环境啦。

设置正确的 hostname

默认主机的 hostname 都是随机的或又土又长的,我通常会设置域名绑定的 hostname:

sudo vim /etc/hostname

设置完成成,记得也在设置上与 IP 对应的 hostname

sudo vim /etc/hosts

123.123.123.123 host.to.name

配置代理 proxychains

用过国内主机的朋友都知道,在国内的主机上更新国外的软件包(package)通常速度很慢,非常令人崩溃…于是我的解决办法不是换一个源,而是搭一个 Proxy,这里我用 Shadowsocks + Proxychains 的解决方案。

用 Shadowsocks 的 sslocal 运行起一个代理,然后用 Proxychains 用这个代理去为更新或安装软件包等去服务。

安装 Shadowsocks

sudo apt-get install shadowsocks

省去中间配置过程…大家根据自己的需要去配置出一个 config.json 文件,然后用下面的执行跑起 proxy:

sslocal -c config.json

安装 proxychains

sudo apt-get install proxychains

修改配置文件,设置成刚刚跑起的本地代理。

sudo vim /etc/proxychains.conf

改成比如socks5 127.0.0.1 1080这样的内容。

然后,再安装东西,比如安装 Docker,用加了 proxychains 的前缀在前面,就能超快啦。

sudo proxychains apt-get install docker-ce

安装 Docker

前面提到了 Docker 这东西,现在我部署 Web Server,基本上都是用 Docker 来了。虽然 Docker 的官网有写,不过每次去找还是挺麻烦的,我就写在自己的 Blog 里:

首先安装基本环境:

sudo apt-get install \
        apt-transport-https \
        ca-certificates \
        curl \
        software-properties-common

再安装 key:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

再增加 Docker 官方源:

sudo add-apt-repository \
     "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
     $(lsb_release -cs) \
     stable"

最后就可以安装 Docker 了,我一般也同时会用 Docker Compose,一起安装上去吧!

sudo apt-get update

sudo apt-get install docker-ce docker-compose

安装好 Docker 以后,记得将当前用户加到 docker 用户组里去(如果你不想每次都用 sudo 用 Docker 的话)

sudo gpasswd docker -a username

安装好这些后,差不多算是完成我所满意的基本设定了。但还远远没完啊…比如安装 Git 之类的必备工具。

不知道大家在维护自己的主机时有没有做一些特别的设定,可以与我交流。

本站架设于Linode 东京机房

原文链接: http://feedproxy.google.com/~r/tualatrix/~3/A_OCUy9O-zw/2375.html

0     0

评价列表(0)