Ubuntu Server 22.04 服务器配置。

一、Ubuntu 基本配置

首先,掌握 apt 命令的基本使用:https://itsfoss.com/apt-command-guide/

1. 开启 root 用户远程登录

对于 服务器版本 来说,默认的 root 用户是禁止使用密码登录的(prohibit-password),这里修改允许使用密码进行远程登录。

BASH
1# 设置 root 用户的密码
2sudo passwd root
点击展开查看更多

编辑文件 sudo vim /etc/ssh/sshd_config,找到 #PermitRootLogin prohibit-password 所在的行,去掉注释并修改 prohibit-passwordyes,保存退出并重启 sshd 服务。

BASH
1systemctl restart sshd
点击展开查看更多

2. apt-get

BASH
 1# 查看所有的安装软件
 2dpkg --list
 3# 安装已经下载好的 deb 安装包
 4dpkg -i 安装包
 5
 6# 更新所有可更新的软件包
 7sudo apt update && sudo apt upgrade
 8
 9# 卸载指定软件并删除配置文件
10sudo apt --purge remove 包名
11# 清理不再使用的依赖和库文件
12sudo apt autoremove
点击展开查看更多

3. 禁止使用 snap

snap 可以获取软件的最新版,Ubuntu 逐渐迁移很多软件包到 snap,这样会导致软件不稳定。当然优点也是显而易见的,不过只对开发人员友好。对于个人日常使用、生产环境等场景还是不需要的。

卸载 snap 请参考:https://ubuntuhandbook.org/index.php/2022/04/remove-snap-block-ubuntu-2204/amp/

BASH
1# 查看列表
2snap list
3# 卸载所有列表中的软件,有些软件依赖其它组件的,注意先后顺序
4sudo snap remove --purge [soft]
5# 最后卸载 snapd
6sudo apt remove --autoremove snapd
点击展开查看更多

然后编辑文件 sudo vim /etc/apt/preferences.d/nosnap.pref 添加下面的内容禁止 apt 使用 sanp 包。

BASH
1# To prevent repository packages from triggering the installation of snap,
2# this file forbids snapd from being installed by APT.
3
4Package: snapd
5Pin: release a=*
6Pin-Priority: -10
点击展开查看更多

之后执行 sudo apt update,就不会使用 snap 下载了。

4. 安装基础的开发、编译工具

由于最小化的服务器版安装有一些编译库默认是没有安装的,需要用户手动安装,所以这里记一下常用的基础库:

BASH
1# gcc/g++/gdb/make 编译工具
2apt-get install build-essential
3# ssl-lib
4apt-get install openssl libssl-dev
5apt-get install zlib1g-dev
点击展开查看更多

5. 时区设置

Ubuntu 可以使用内置的 timedatectl 设置系统的时区。

BASH
 1# 查看当前的时区
 2timedatectl
 3# 查看支持的时区列表
 4timedatectl list-timezones
 5# 是否含有中国时区
 6timedatectl list-timezones | grep Asia/Shanghai
 7# 设置中国时区
 8timedatectl set-timezone Asia/Shanghai
 9
10# 无需重启,再次查看
11timedatectl
点击展开查看更多

6. 语言设置

① Ubuntu 22.04 以上

BASH
1# 查看当前系统的语言配置
2locale
3# 如果使用的 Ubuntu 22.04 以上使用这个命令将更加简单容易,选择完成之后注销重启
4sudo dpkg-reconfigure locales
5# 再次查看配置
6locale
点击展开查看更多

② Ubuntu 22.04 以下

BASH
 1# 下面的适用旧版本 Ubuntu 22.04 以下
 2# 列出所有启用的区域设置
 3locale -a
 4
 5# 编辑 locale.gen 文件
 6# 取消 zh_CN.UTF-8 UTF-8 en_US.UTF-8 UTF-8 两行的注释
 7vim /etc/locale.gen
 8
 9# 编辑保存后,执行以下命令
10locale-gen
11# 显示正在使用的 Locale 和相关的环境变量
12locale
13# 设置整个系统使用的区域设置
14localectl set-locale LANG=zh_CN.UTF-8
15# 立即生效
16unset LANG
点击展开查看更多

如果使用上面的立即生效命令仍然有问题,没有生效,请重启计算机。

7. Vim 配置

Linux 中有很多编辑工具,像 Vim、Nano 等,都是非常不错的,可以使用自己喜欢的。Vim 的全局配置文件在 /etc/vim/vimrc 或者 /etc/vimrc,对所有用户生效;用户的配置文件一般在 ~/.vimrc 中。

这里修改全局的配置,编辑 {% mark /etc/vim/vimrc color:green %} 文件,没有的话可以手动创建一个。下面给了一些简单实用的配置。

BASHRC
 1" 文件编码
 2set encoding=utf-8
 3set fileencoding=utf-8
 4" 自动缩进
 5set autoindent
 6" 新行智能自动缩进
 7set smartindent
 8" 状态栏标尺
 9set ruler
10" 语法高亮 vim5 之后默认开启
11set syntax=on
12" Tab键的宽度
13set tabstop=4
14" 搜索忽略大小写
15set ignorecase
16" 高亮显示匹配的括号
17set showmatch
18" 总是显示行号
19set nu
20
21" 侦测文件类型
22filetype on
23
24" 状态行显示的内容(包括文件类型和解码)
25set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
26" 总是显示状态行
27set laststatus=2
28" 高亮搜索的文本
29set hlsearch
点击展开查看更多

二、常用软件

1. Redis

BASH
1wget https://download.redis.io/redis-stable.tar.gz
2tar -xzvf redis-stable.tar.gz
3cd redis-stable
4make && make install
5redis-server &
点击展开查看更多

2. MySQL

apt-get安装:https://blog.lanluo.cn/8662

3. Docker

BASH
 1# 卸载旧版本
 2sudo apt-get remove docker docker-engine docker.io containerd runc
 3sudo apt-get update
 4sudo apt-get install \
 5    ca-certificates \
 6    curl \
 7    gnupg \
 8    lsb-release
 9
10# Add Docker’s official GPG key:
11sudo mkdir -p /etc/apt/keyrings
12curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
13
14# 设置稳定版仓库
15echo \
16"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
17$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
18
19# 更新包索引
20sudo apt-get update
21
22####################### 下面二选一 #############################
23
24# 1. 安装最新版本的 Docker Engine-Community 和 containerd ,或者转到下一步安装特定版本:
25sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
26
27# 2.
28# 查看版本
29apt-cache madison docker-ce
30# 选择指定的版本安装
31sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io docker-compose-plugin
点击展开查看更多

4. btop++

BASH
1# 下载解压安装
2wget https://github.com/aristocratos/btop/releases/download/v1.2.8/btop-x86_64-linux-musl.tbz
3mkdir btop && tar xvf btop-x86_64-linux-musl.tbz -C btop
4cd btop
5./install.sh
6# 运行
7btop
点击展开查看更多

5. Nodejs

BASH
1# Using Ubuntu
2curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
3sudo apt-get install -y nodejs
点击展开查看更多

6. open-jdk

BASH
1sudo apt-get install openjdk-8-jdk
点击展开查看更多

三、其它

1. 查找apt安装的软件的路径

这里以jdk为例

BASH
1which java
2# 多次执行,直到最后打印出一些系统信息
3file 上一条命令打印的路径
点击展开查看更多

2. 开放指定端口

随着 Ubuntu 的更新,它的各种软件也在更新,以前用 firewall,新版本(22.04)已经默认使用 ufw,相比较而言,UFW command more easily,不过具体使用这里就不详细写了,可以参考官网的说明,很简单。

BASH
 1# 启动防火墙
 2systemctl start firewalld
 3# --zone 作用域 --add-port 格式 端口/通讯协议 --permanent 永久生效
 4firewall-cmd --zone=public --add-port=1935/tcp --permanent
 5# 重启
 6firewall-cmd --reload
 7# 查看当前所有tcp端口
 8netstat -ntlp
 9# 查看所有1935端口使用情况
10netstat -ntulp | grep 1935
11
12# 启用 ufw
13ufw enable
14# 禁用 ufw
15ufw disable
16# 查看状态
17ufw status verbose
18# 放行端口
19ufw allow port/协议(TCP|UDP)
20# 关闭端口
21ufw deny port/协议
22# 允许特定 IP 访问
23ufw allow from IP
点击展开查看更多

3. ftp服务搭建

下载 完成后上传至服务器,执行以下命令安装

BASH
1dpkg -i xxx.deb
点击展开查看更多

安装完成后编辑 /etc/vsftpd.conf 文件:

CONF
 1listen=NO
 2listen_ipv6=YES
 3anonymous_enable=NO
 4local_enable=YES
 5write_enable=YES
 6local_umask=022
 7dirmessage_enable=YES
 8use_localtime=YES
 9xferlog_enable=YES
10connect_from_port_20=YES
11chroot_local_user=YES
12secure_chroot_dir=/var/run/vsftpd/empty
13pam_service_name=vsftpd
14rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
15rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
16ssl_enable=NO
17# 新增
18pasv_enable=Yes
19pasv_min_port=10000
20pasv_max_port=10100
21allow_writeable_chroot=YES
点击展开查看更多

更新防火墙:sudo ufw allow from any to any port 20,21,10000:10100 proto tcp

重启服务:sudo systemctl restart vsftpd

创建新用户并设置密码:

BASH
 1sudo useradd -m ftptest
 2sudo passwd ftptest
 3New password:
 4Retype new password:
 5passwd: password updated successfully
 6
 7
 8# 出于安全考虑,限定用户ftpuser不能登录,只能ftp
 9usermod -s /sbin/nologin ftpuser
10
11# 出于安全考虑,我们将禁用此用户的 ssh 权限。输入
12sudo vim /etc/ssh/sshd_config
13# 在此文件中添加以下行,然后重启 SSH sudo systemctl restart sshd
14DenyUsers ftpuser
点击展开查看更多

添加文件(连接 ftp 时展示的目录为登录的用户的主目录,所以为了安全我们使用新建的用户):

sudo echo "this is a simple file" > /home/ftptest/test.txt

然后就可以连接测试了:ftp://ip

四、一些问题

1. Docker

Ubuntu version 22.04 Docker version 23.0.1 Docker Compose version v2.16.0 安装 Docker 工具:snap 错误原因:

BASH
1Cannot Connect to the Docker Daemon at ‘unix:///var/run/docker.sock’
点击展开查看更多

解决参考:https://appuals.com/cannot-connect-to-the-docker-daemon-at-unix-var-run-docker-sock/

如果不能解决,尝试下面的方法:

BASH
 1# 停止 docker
 2systemctl stop docker.socket
 3systemctl stop docker
 4
 5# 查看 snap 管理的 docker 状态
 6snap services
 7# 停止服务
 8snap stop docker
 9
10# 然后重启
11systemctl start docker
点击展开查看更多

版权声明

作者: 浮生一梦

链接: /posts/2025/10/ubuntu-server-config/

许可证: 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

评论

开始搜索

输入关键词搜索文章内容

↑↓
ESC
⌘K 快捷键