Debian 11 “bullseye” 安裝筆記
請訪問原文鏈接:https://sysin.org/blog/debian-11-install/,查看最新版,原創作品,轉載請保留出處,
作者:gc(at)sysin.org,主頁:www.sysin.org
iso 下載:Debian 11
ovf 下載:Debian 11 OVF
Debian 版本:11
代號:bullseye
發布日期:2021.08.14
內核版本:5.10
$ uname -a
Linux debian 5.10.0-8-amd64 #1 SMP Debian 5.10.46-4 (2021-08-03) x86_64 GNU/Linux
Debian 11 是 LTS 長期支持版本,長達 5 年的生命周期,適合在生產環境運行,
1. Debian 版本歷史
Debian 是最早的 Linux 發行版之一,由 Ian Murdock(伊恩 · 默多克)創立,Ian Murdock 于 1973 年 4 月 28 日出生于德國的君斯坦市 (Konstanz, Germany),他是 Debian GNU/Linux 發行版的創始人,也是商用 Linux 發行商 Progeny 公司的創始人,他曾就職于 Sun Microsystems, Inc,負責 Sun 公司的作業系統平臺發展戰略,在加入 Sun 公司之前,Ian Murdock 是 Linux 基金會 (Linux Foundation) 的首席技術長官 (CTO),以及 Linux 平臺互動標準 LSB (Linux Standard Base) 的主席,最后受聘于 Docker 公司,非常令人遺憾的是 Ian Murdock 于美國時間 2015 年 12 月 28 日 逝世,開源界和 Linux 業界痛失一位真正的天才!
Debian 于 1993 年 8 月 16 日由當時還在美國普渡大學念書的 Ian Murdock 首次發表,Debian 的名稱中的 “deb” 取自他的女友(現在為其妻子) Debra,“ian” 取自 Ian Murdock 自己的名字,Ian Murdock 最初把他的系統稱為 “Debian Linux Release”,在定義檔案 Debian Manifesto 中,Ian Murdock 宣布將以開源的方式,本著 Linux 及 GNU 的精神發行一套 GNU/Linux 發行版,Ian Murdock 的目的是創建一個任何人都可以免費下載和使用的穩定的發行版,而不是讓用戶一個一個地收集應用程式并自己編譯,
-- Debian GNU/Linux 的發展簡史
以下是最近的基本版本的發布日期:
? 2021-08-14: Distribution Release: Debian 11
? 2019-07-07: Distribution Release: Debian 10
? 2017-06-18: Distribution Release: Debian 9
? 2015-04-26: Distribution Release: Debian GNU/Linux 8.0
? 2013-05-05: Distribution Release: Debian GNU/Linux 7.0
? 2011-02-06: Distribution Release: Debian GNU/Linux 6.0
? 2009-02-15: Distribution Release: Debian GNU/Linux 5.0
? 2007-04-08: Distribution Release: Debian GNU/Linux 4.0
詳見:DebianReleases
2. Debian 11 的新變化
目錄:
-
2.1. 支持的架構
-
2.2. 這次發布中有什么新變化?
- 2.2.1. 桌面和知名軟體包
- 2.2.2. 無驅動掃描和列印
- 2.2.3. 新的通用 open 命令
- 2.2.4. 控制組 v2
- 2.2.5. 持久化 systemd 日志
- 2.2.6. 新的 Fcitx 5 輸入法
- 2.2.7. 來自 Debian Med Blend 團隊的新聞
- 2.2.8. 內核 exFAT 支持
- 2.2.9. 改進的 man page 翻譯
維基頁面 提供了更多關于這個主題的資訊,
2.1. 支持的架構
下面是 Debian bullseye 官方支持的架構:
- 32 位 PC 機(
i386)和 64 位 PC 機(amd64) - 64 位 ARM(
arm64) - ARM EABI(
armel) - ARMv7(EABI 硬浮點 ABI,
armhf) - 小端序 MIPS(
mipsel) - 64 位小端序 MIPS(
mips64el) - 64 位小端序 PowerPC(
ppc64el) - IBM System z(
s390x)
您可以在 Debian 移植頁面 閱讀更多的關于您的架構的移植狀態和移植細節的資訊,
2.2. 這次發布中有什么新變化?
Debian 的這次發行再次帶來了比上一版本 buster 更多的軟體;本次發行包括 11294 個新軟體包,軟體包的總數達到了 59551 個,這個發行版的多數軟體包得到了更新:更新了 42821 個軟體包(占 buster 軟體包總數的 72%),而且,由于各種原因,有相當數量的軟體包(9519 個,占 buster 軟體包總數的 16%)從這次發行中被洗掉了,您將不會看到這些包有任何更新,而且在包管理軟體中它們會被標記為 “過時的”;參見 第 4.8 節 “過時的軟體包”,
2.2.1. 桌面和知名軟體包
如往常一樣,Debian 也提供了多個桌面程式和環境,提供的桌面環境包括 GNOME 3.38,KDE Plasma 5.20,LXDE 11,LXQt 0.16,MATE 1.24,以及 Xfce 4.16,
生產力應用也得到了升級,包括辦公套件:
- LibreOffice 已升級到 7.0 版;
- Calligra 已升級到 3.2 版;
- GNUcash 已升級到 4.4 版;
這次發行包含了許多軟體的更新,其中包括:
| 軟體包 | 在 10(buster)中的版本 | 在 11(bullseye)中的版本 |
|---|---|---|
| Apache | 2.4.38 | 2.4.48 |
| BIND DNS 服務器 | 9.11 | 9.16 |
| Cryptsetup | 2.1 | 2.3 |
| Dovecot MTA | 2.3.4 | 2.3.13 |
| Emacs | 26.1 | 27.1 |
| Exim 默認郵件服務器 | 4.92 | 4.94 |
| GNU 編譯器套件(默認編譯器) | 8.3 | 10.2 |
| GIMP | 2.10.8 | 2.10.22 |
| GnuPG | 2.2.12 | 2.2.20 |
| Inkscape | 0.92.4 | 1.0.2 |
| GNU C 函式庫 | 2.28 | 2.31 |
| lighttpd | 1.4.53 | 1.4.59 |
| Linux 內核映像 | 4.19 系列 | 5.10 系列 |
| LLVM/Clang 工具鏈 | 6.0.1 和 7.0.1(默認) | 9.0.1 和 11.0.1(默認) |
| MariaDB | 10.3 | 10.5 |
| Nginx | 1.14 | 1.18 |
| OpenJDK | 11 | 11 |
| OpenSSH | 7.9p1 | 8.4p1 |
| Perl | 5.28 | 5.32 |
| PHP | 7.3 | 7.4 |
| Postfix MTA | 3.4 | 3.5 |
| PostgreSQL | 11 | 13 |
| Python 3 | 3.7.3 | 3.9.1 |
| Rustc | 1.41(armel 則為 1.34) |
1.48 |
| Samba | 4.9 | 4.13 |
| Vim | 8.1 | 8.2 |
2.2.2. 無驅動掃描和列印
使用 CUPS 列印以及使用 SANE 掃描對于越來越多的硬體型號已經可以實作無需任何驅動程式(通常是非自由驅動程式)即可正常操作,尤其是過去五年以來出現在市場上的新設備,
2.2.2.1. CUPS 和無驅動列印
使用以太網或無線網路連接的現代列印機已經可以使用 無驅動列印功能,由 CUPS 和 cups-filters 軟體包提供支持,此功能已在 Debian buster 發行注記 中描述,Debian 11 “bullseye” 提供了新軟體包 ipp-usb;它使用許多現代列印機所支持的、供應商中立的 IPP-over-USB 協議,且 cups-daemon 推薦安裝該軟體包,它使得 USB 設備可被視作網路設備,以將無驅動列印擴展至包括 USB 連接的列印機,詳情 在維基上 有更多描述,
在 ipp-usb 軟體包中包含的 systemd 服務檔案將在使用 USB 的列印機連接到系統時啟動 ipp-usb 守護程式,以使其可用于列印任務,默認情況下 cups-browsed 軟體包應當可以自動完成配置,或者可以 手動設定本地無驅動列印佇列,
2.2.2.2. SANE 和無驅動掃描
官方的 SANE 無驅動后端在 libsane1 軟體包中由 sane-escl 提供,另有一獨立開發的無驅動后端 sane-airscan,兩個后端均可使用 eSCL 協議,但 sane-airscan 另外也可使用 WSD 協議,用戶應該考慮在系統上同時安裝兩個后端,
eSCL 和 WSD 均為網路協議,因此,它們在設備是 IPP-over-USB 設備的情況下也可經由 USB 連接生效(參見上文),請注意 libsane1 推薦安裝 ipp-usb 軟體包,在軟體包已安裝的情況下,合適的設備可以在使用 USB 埠連接到系統的同時自動設定使用無驅動后端,
2.2.3. 新的通用 open 命令
新增加的 open 命令將作為 xdg-open(默認)或者 run-mailcap 的別名出現,具體實作則由 update-alternatives(1) 系統管理,它旨在作為命令列互動工具,幫助用戶使用默認的應用程式打開檔案;所使用的程式按照具體情況可以是圖形界面程式,
2.2.4. 控制組 v2
在 bullseye 中,systemd 默認使用控制組 v2(cgroupv2),它提供了統一的資源控制層級架構,如果有需要,可以使用內核命令列引數重新啟用舊有的 cgroups;請參見 第 5.1.9 節 “OpenStack 和 cgroups v1” 一節中適用于 OpenStack 的注記,
2.2.5. 持久化 systemd 日志
在 bullseye 中的 systemd 默認啟用了持久日志的功能,日志檔案存放于 /var/log/journal/,請參見 systemd-journald.service(8) 以了解細節;請注意 Debian 中的日志除了默認的 systemd-journal 組外,還可以被 adm 用戶組內的成員閱讀,
這項改動應該不會對任何已有的傳統日志守護程式(例如 rsyslog)產生任何干擾,但是不依賴這些守護程式所提供的特別功能的用戶應當考慮將傳統日志程式卸載并切換到僅使用新的 systemd 日志工具,
2.2.6. 新的 Fcitx 5 輸入法
Fcitx 5 是用于中文、日語、韓語和其它許多語言的一個輸入法,它是 buster 提供的 Fcitx 4 的后續版本,新版本增加了對 Wayland 的支持并改進了擴展支持,您可以在 維基頁面上 閱讀更多資訊以及從舊版本遷移的方法,
2.2.7. 來自 Debian Med Blend 團隊的新聞
Debian Med 團隊正在積極打包用于研究病毒序列以及與流行病學研究相關的軟體以抗擊 COVID-19 和疫情大流行,下一個發行周期中,團隊將繼續進行這項任務,并專注于打包可以應用于這兩個領域的機器學習工具,
除了添加生命科學和醫藥領域的新軟體包之外,許多已有的軟體包也得到了持續集成支持,
一些性能關鍵的應用程式現在受益于 SIMD Everywhere 的實作,該軟體庫可以幫助軟體包既支持更多的硬體平臺(尤其是 arm64),又受益于處理器所提供的向量運算擴展帶來的性能提升,例如 amd64 上的 AVX,或 arm64 上的 NEON,
如需安裝由 Debian Med 團隊維護的軟體包,您可以安裝名為 med-*** 的元軟體包;在 Debian bullseye 中,其版本號為 3.6.x,您還可以訪問 Debian Med 任務頁面 以查看 Debian 中全部可用的生物和醫療軟體,
2.2.8. 內核 exFAT 支持
bullseye 是第一個提供支持 exFAT 檔案系統的 Linux 內核的發行版本,且它默認使用該實作掛載 exFAT 檔案系統,因此,用戶不再需要使用 exfat-fuse 軟體包所提供的用戶空間檔案系統實作,如果您要繼續使用用戶空間檔案系統的實作,您需要在掛載 exFAT 檔案系統時直接呼叫 mount.exfat-fuse 命令,
創建和檢查 exFAT 檔案系統的工具位于 exfatprogs 軟體包,它由 Linux 內核 exFAT 實作的作者撰寫,由已有的 exfat-utils 軟體包提供的獨立實作仍然可用,但它不能與新的實作共同安裝在系統上,我們推薦您遷移到使用 exfatprogs 軟體包,盡管您需要注意并處理兩者可能不互相兼容的命令列選項,
2.2.9. 改進的 man page 翻譯
部分專案,例如 systemd、 util-linux、 OpenSSH 和 Mutt 的部分語言的手冊頁,例如法語、西班牙語和馬其頓語,得到了明顯改進,欲獲得此項改進,請安裝 manpages-*xx*(其中 *xx* 是您所需的自然語言的代碼),
在 bullseye 的生命周期中,進一步的翻譯改進將會通過 backports 倉庫提供,
3. 安裝摘要
本例使用 Debian 11 AMD64(x86_64)CD:debian-11.0.0-amd64-netinst.iso 進行安裝,
- 語言選擇,選擇 English,Location 選擇 China
- 設定 root 賬號密碼,并提示新建一個賬號(普通用戶)并設定密碼
- 磁區,默認 ext4 檔案系統,可選 LVM
- 軟體包管理,可以選擇本地鏡像源
- 組件:默認選擇 GNOME 桌面環境(這里取消)和 Standard System Utilities(保持勾選),勾選 SSH server
4. 默認沒有安裝 sudo
Debian 在安裝程序中設定 root 密碼,并提示創建一個普通用戶,SSH server 需要手動勾選安裝,root 默認不允許 SSH 登錄,同時默認并沒有 sudo,所以第一步必須配置 sudo,或者開啟 root 賬號 SSH 登錄(存在安全性風險,不推薦),
本例中安裝時創建了一個名為 sa 的用戶:
$ id sa
uid=1000(sa) gid=1000(sa) groups=1000(sa),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),109(netdev)
安裝 sudo:
apt install sudo
將之前創建的普通用戶添加到 sudo 組,即可獲得管理員權限:
usermod -a -G sudo sa
# -a=append,不改變原有附加組
附:/etc/sudoers 默認配置如下,
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "@include" directives:
@includedir /etc/sudoers.d
5. 軟體包管理入門
Debian 軟體包管理叫做 Advanced Packaging Tool (APT),是一套管理軟體包和相關依賴的機制,可以實作應用程式的安裝、移除和更新等,
如果您已經有了 Linux(CentOS、Ubuntu)或者 Unix(macOS、FreeBSD)任一產品的軟體包管理工具使用經驗,對于其他系統可以參看下表快速入門:
| 命令功能/系統 | macOS/Darwin | FreeBSD | Debian/Ubuntu | CentOS(dnf = yum) |
|---|---|---|---|---|
| 搜索和查找軟體包 | brew search | pkg search | apt list | yum list |
| 查看軟體包資訊 | brew info | pkg info | apt show | yum info |
| 安裝 | brew install | pkg install | apt install | yum install |
| 洗掉 | brew uninstall/remove/rm | pkg delete/remove | apt remove | yum remove |
| 洗掉不在使用的軟體包 | brew autoremove | pkg autoremove | apt autoremove | yum autoremove |
| 更新 repo 串列 | brew update | pkg update | apt update | yum makecache |
| 更新軟體包 | brew upgrade | pkg upgrade | apt upgrade | yum upgrade/update |
| 清理快取臨時檔案等 | brew cleanup | pkg clean | apt autoclean | yum clean all |
備注:CentOS 8 開始,使用 dnf,但 yum 仍然可用,實際上兩個命令都是相同的檔案鏈接,等價,
可以看到,CentOS 中更新 repo 串列的命令與其他不同,其他命令幾乎都是相同或者極為類似,
當然 Ubuntu 是基于 Debian 構建,apt 使用方式是一樣的,
注意事項:應該盡量避免以下行為,
- 在 “
/etc/apt/sources.list” 中不要包含testing或unstable, - 在 “
/etc/apt/sources.list” 里不要在標準的 Debian 中混合使用其它非 Debian 的檔案庫,例如 Ubuntu , - 不要建立 “
/etc/apt/preferences” , - 不了解會造成的全部影響,就不要通過組態檔改變軟體包管理工具的默認行為,
- 不要使用 “
dpkg -i <random_package>” 安裝任何軟體包, - 絕不使用 “
dpkg --force-all -i <random_package>” 安裝任何軟體包, - 不要洗掉或修改 “
/var/lib/dpkg/” 中的檔案, - 不要讓從原始碼直接安裝的程式覆寫系統檔案,如果需要的話,將它們安裝到 “
/usr/local” 或 “/opt” 中,
6. 創建一個管理員賬號
默認配置下,創建一個管理員賬號,即有 sudo 權限執行所有命令的用戶:
useradd -m -s /bin/bash -G sudo user1 #user1 為用戶名
passwd user1 #為 user1 設定密碼
備注:
-m 創建同名 home 目錄
-s 指定 shell
-G 修改附加屬組
7. 配置 vi
系統自帶 vi 即 vim 8.2.2434,默認配置有點難用,使用 .vimrc 組態檔后報錯,竟然不支持語法高亮:
E319: Sorry, the command is not available in this version: syntax on
安裝最新的 vim:
sudo apt install vim
雖然版本并沒有更新,安裝了附件組件,已經正常了,
.vimrc 組態檔參考如下:
""""""""""""""""""""""""""""""""""""""
" vim 示例組態檔 ~/.vimrc
" by [email protected] 2021.05.30
""""""""""""""""""""""""""""""""""""""
" 去掉 vi 的一致性
set nocompatible
" 顯示行號
set number
" 開啟語法高亮
syntax on
" 設定字體
"set guifont=Monaco:h13
" solarized 主題設定在終端下的設定
"let g:solarized_termcolors=256
" 設定不自動換行
set nowrap
" 設定以 unix 的格式保存檔案(UNIX 系統下默認)
set fileformat=unix
" 自動縮進
set autoindent
set cindent
" Tab 鍵的寬度 = 4 個空格
set tabstop=4
" 統一縮進為 4
set softtabstop=4
set shiftwidth=4
" expandtab:縮進用空格來表示,noexpandtab:用制表符表示一個縮進
set expandtab
" 高亮顯示匹配的括號
set showmatch
" 匹配括號高亮的時間(單位是十分之一秒)
set matchtime=5
" 游標移動到 buffer 的頂部和底部時保持 3 行距離
set scrolloff=3
" 啟動顯示狀態行 (1), 總是顯示狀態行 (2)
set laststatus=2
" 使退格鍵(backspace)正常處理 indent, eol, start 等
set backspace=2
" 允許 backspace 和游標鍵跨越行邊界
"set whichwrap+=<,>,h,l
" 可以在 buffer 的任何地方使用滑鼠(類似 office 中在作業區雙擊滑鼠定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key
" 搜索忽略大小寫
set ignorecase
" 高亮顯示匹配字符(回車后)
set hlsearch
" 搜索實時高亮顯示所有匹配的字符
set incsearch
" 設定當檔案被改動時自動載入
"set autoread
" 突出顯示當前行
set cursorline
" 打開標尺,在螢屏右下角顯示當前游標所處位置(設定了 statusline 可以忽略)
set ruler
" 狀態行顯示的內容
"set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ENC=%{&encoding}]\ [POS=%l,%v][%p%%]\ %{strftime(\"%Y.%m.%d\ -\ %H:%M\")}
set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %l,%c%)\ %p%%
" 語言設定
set langmenu=zh_CN.UTF-8
set helplang=cn
" 編碼設定釋義
" vim 內部使用的字符編碼方式
"set encoding = 編碼
"set enc = 編碼
"set fileencoding = 編碼
"set fenc = 編碼
"fileencodings 是一個用逗號分隔的串列,簡寫 fencs
" 編碼設定
"set enc=utf-8" 默認
"set fencs=utf-8,gb18030,gbk,gb2312,cp936,big5" 包含簡體中文,繁體中文
8. 開啟 root SSH 登錄的方法
Debian 默認禁用 root 用戶 SSH 登錄,安裝時候創建特定用戶作為管理員帳號,啟用 root 用戶步驟如下:
- 修改 root 密碼
sudo passwd root
- 修改組態檔
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo vi /etc/ssh/sshd_config
找到下面相關配置:
# Authentication:
#LoginGraceTime 2m
#PermitRootLogin prohibit-password
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
#PubkeyAuthentication yes
# Expect .ssh/authorized_keys2 to be disregarded by default in future.
#AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
修改如下
增加一句
PermitRootLogin yes
快速配置:
sudo sed -i "/^#PermitRootLogin/c"PermitRootLogin""yes"" /etc/ssh/sshd_config
補充
PermitRootLogin prohibit-password #允許 root 登錄,但禁止適用密碼認證
可以配合使用 Pubkey 認證,修改 PubkeyAuthentication yes
- 重啟服務生效
sudo systemctl restart ssh
9. 格式化網卡命名
從 Debian 9 開始,(CentOS 7 開始,Ubuntu 16.04 開始),安裝好后網卡名稱變成了類似 ensxxx 這種隨機名稱(本例為 ens33,可能是其他數字),
# 編輯 grub 組態檔
sudo vi /etc/default/grub
修改 GRUB_CMDLINE_LINUX=""為 GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
# 直接使用 sed 編輯
sudo sed -i "/^GRUB_CMDLINE_LINUX=""/c GRUB_CMDLINE_LINUX=\"net.ifnames=0 biosdevname=0\"" /etc/default/grub
# 更新 grub 組態檔
sudo update-grub
# 然后下一節編輯組態檔并重啟生效
vi /etc/network/interfaces
# 將 ensxxx 修改為 eth0
# 重啟系統生效
reboot
10. 網路配置
查看 IP 地址資訊:
ip address
# 簡寫 ip a
# 或者使用 ifconfig
ifconfig
Debian 11 網路組態檔為:/etc/network/interfaces ,
默認配置使用 DHCP,安裝程序并沒有手動配置提示,內容如下:
$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug ens33 #ens33 修改為 eth0
iface ens33 inet dhcp #ens33 修改為 eth0
修改 IP 地址:
sudo vi /etc/network/interfaces
# 修改為以下內容:
iface lo inet loopback
auto lo
auto eth0
iface eth0 inet static
address 10.10.1.5
netmask 255.255.255.0
#broadcast 10.10.1.255 #可選,上述配置了掩碼
#network 10.10.1.0 #可選,上述配置了掩碼
gateway 10.10.1.1
#dns-domain example.com
# domain 和 search 不能共存;如果同時存在,后面出現的將會被使用,
dns-search sysin.org
dns-nameservers 10.10.1.1 8.8.8.8 #注意 debian 11 默認沒有安裝 resolvconf,所以需要手動在 resolv.conf 中編輯 DNS
# 或者安裝 resolvconf 后,在這里配置,將自動更新 resolv.conf
sudo apt install resolvconf
# iface eth0 inet6 auto #ipv6 自動配置,不寫則表示禁用了
# DHCP 配置如下:
auto eth0
iface eth0 inet dhcp
# 配置 DNS
cat /etc/resolv.conf #如果已經安裝 resolvconf,不要手動編輯,直接在上述 interfaces 中編輯 dns
# 重啟網路
sudo systemctl restart networking
#sudo service networking restart
可以看到 Debian 網路配置方法并沒有變更,Ubuntu 16.04 也是這樣配置,但是 18.04 開始使用 netplan,20.04 同樣使用 netplan 但是默認組態檔名稱再次變更,
配置多個 IP:
auto eth0:0
iface eth0:0 inet static
address 192.168.1.90
netmask 255.255.255.0
auto eth0:1
iface eth0:1 inet static
address 192.168.1.91
netmask 255.255.255.0
添加靜態路由(Linux 通用,臨時,重啟消失):
route add -net 10.10.11.0/24 gw 10.10.1.1
Debian 配置永久靜態路由:
#添加
cat >> /etc/network/interfaces << EOF
# static routes
up ip route add 10.10.12.0/24 via 10.10.1.1 dev eth0
up ip route add 10.10.13.0/24 via 10.10.1.1 dev eth0
up ip route add 10.10.14.0/24 via 10.10.1.1 dev eth0
up ip route add 10.10.15.0/24 via 10.10.1.1 dev eth0
up ip route add 10.10.16.0/24 via 10.10.1.1 dev eth0
EOF
#重啟網路
systemctl restart networking
#驗證
ip route
11. 修改主機名
設定主機名:
hostnamectl set-hostname debian01 --static
# 修改為主機名 ubuntu01
或者:
sudo vi /etc/hostname
# 修改為主機名 debian01
debian01
添加 domain name:
sudo vi /etc/hosts
# 添加一行
127.0.0.1 debian01.sysin.org debian01
# 注意這里的格式,IP 后面先寫 FQDN 再寫主機名,與 CentOS 相同
# 先寫 FQDN 后寫主機名,順序反了不影響決議,但是'hostname -f'命令無法顯示 FQDN,只能顯示主機名
查看 FQDN:
hostname -f
# 正確顯示如下
debian01.sysin.org
12. 設定時區
我們默認安裝是已經正確設定時區,但是如果是第三方云主機時區就未必符合本地要求,
# 查看時區,有 CST 正確
date
# 設定
sudo timedatectl set-timezone Asia/Shanghai
# 或者使用向導選擇
tzselect
13. 修改鏡像源
安裝的時候已經可以選擇 mirror,加速本地訪問,可以訪問 Debian worldwide mirror sites 查看選擇可用的鏡像站點,
# 模板使用 mirror.sjtu.edu.cn
# 備份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 比如將默認官方中國像源 ftp.cn.debian.org 替換為 mirror.sjtu.edu.cn
sudo sed -i 's/ftp.cn.debian.org/mirror.sjtu.edu.cn/' /etc/apt/sources.list
## 中國可選鏡像站點如下
ftp.cn.debian.org
mirrors.bfsu.edu.cn
mirrors.hit.edu.cn
mirror.sjtu.edu.cn
mirrors.tuna.tsinghua.edu.cn
mirrors.ustc.edu.cn
# 可以 ping 站點名稱,對比一下延遲來選擇
更新:
sudo apt update #更新源
sudo apt upgrade #更新已安裝的包
sudo apt dist-upgrade #升級系統
sudo apt clean && sudo apt autoclean #清理下載檔案的存檔
# apt 是新版命令,替代 apt-get,apt-get 將來會淘汰
14. 安裝 SNMP
sudo apt install snmpd snmp
(模板僅僅安裝,未配置)
15. 配置 NTP
這里使用 chrony 替代傳統的 ntp,當然 ntp 也是可用的,兩種默認都沒有安裝,
安裝 chrony:
sudo apt install chrony
sudo systemctl enable chrony
sudo systemctl start chrony
sudo systemctl status chrony
# 查看組態檔,暫使用默認配置
cat /etc/chrony/chrony.conf
chrony 自帶一個互動式工具 chronyc,在組態檔中指定了時間服務器之后,如果想查看同步狀態,可以進入這個互動式工具的互動界面,
chronyc 有很多的子命令,可以輸入 help 來查看
chronyc> help
選項:
sources [-v] 顯示關于當前來源的資訊
sourcestats [-v] 顯示時間同步狀態(如時間偏移了多少之類)
查看:
chronyc sources -v
chronyc sourcestats -v
最基本配置:
$ cat /etc/chrony/chrony.conf
# Welcome to the chrony configuration file. See chrony.conf(5) for more
# information about usable directives.
# Include configuration files found in /etc/chrony/conf.d.
confdir /etc/chrony/conf.d
# Use Debian vendor zone.
pool 2.debian.pool.ntp.org iburst
修改 pool 2.debian.pool.ntp.org iburst 為指定的 NTP 服務器,
通常是修改為內網中的 NTP,保持時間的統一和可靠同步,否則一般不用修改,
例如 Ubuntu 中默認的是:
pool ntp.ubuntu.com iburst maxsources 4
pool 0.ubuntu.pool.ntp.org iburst maxsources 1
pool 1.ubuntu.pool.ntp.org iburst maxsources 1
pool 2.ubuntu.pool.ntp.org iburst maxsources 2
這里的 pool 表示一組服務器,也可以用 sever 指令替代,標識一臺服務器,可以是域名也可以是 IP 地址,
16. 虛機安裝 VMware Tools
默認自動安裝,查看狀態如下:
# 查看版本
vmtoolsd -v
# 查看運行狀態
systemctl status vmtoolsd
如果未安裝,執行如下命令安裝:
apt install open-vm-tools
17. 安裝必備工具
根據需要安裝自己常用的必備工具:
sudo apt install zip unzip
sudo apt install lrzsz
sudo apt install htop #已經收錄
sudo apt install lnav
sudo apt install fd-find #fd 命令,已經收錄,命令為 fdfind
sudo ln -s /usr/bin/fdfind /usr/local/bin/fd
sudo apt install ripgrep #rg 命令,已經收錄
sudo apt install tree
sudo apt install build-essential #Following command will install essential commands like gcc, make etc.
#sudo apt install net-tools #ifconfig、netstat、route 等命令集,默認安裝
sudo apt install ntp ntpdate ntpstat #可選,模板未安裝
# nc lsof 系統自帶
# pstree
sudo apt install psmisc
# ncdu:NCurses Disk Usage
sudo apt install ncdu
# dstat 監控 CPU、磁盤和網路使用率
sudo apt install dstat
18. Shell 配置
命令自動補全忽略大小寫
該配置針對 Bash,僅使用 Zsh 可以忽略,
echo 'set completion-ignore-case on' >> ~/.inputrc
修改 vmrc(vim 組態檔)
為當前用戶創建 ~/.vimrc,內容參看上述 “配置 vi”
為將 .vimrc 添加到默認用戶組態檔 cp ~/.vimrc /etc/skel/.vimrc
ll 常規版
一般 Linux 中默認定義了 ll 別名,但引數比較少,需要使用更加強大的 ll 別名,
Debian 默認并沒有定義 ll 別名,
寫入環境變數(當前用戶優先執行):
bash:
echo 'alias ll="ls -lahF --color=auto --time-style=long-iso"' >> ~/.bashrc
zsh(稍后配置 zsh):
echo 'alias ll="ls -lahF --color=auto --time-style=long-iso"' >> ~/.zshrc
注意:僅僅針對當前用戶,寫入全域用戶組態檔:/etc/skel/.bashrc 或者 /etc/skel/.zshrc
高級版 ls:以數字顯示權限
這里我們把命令叫做 lll
命令:
ls -lahF --color=auto --time-style=long-iso | awk '{k=0;s=0;for(i=0;i<=8;i++){k+=((substr($1,i+2,1)~/[rwxst]/)*2^(8-i))}j=4;for(i=4;i<=10;i+=3){s+=((substr($1,i,1)~/[stST]/)*j);j/=2}if(k){printf("%0o%0o ",s,k)}print}'
創建檔案
在使用 cat EOF 中出現 $ 變數通常會直接被執行,顯示執行的結果,若想保持 $ 變數不變需要使用 \ 符進行注釋,
# 如果非 root 用戶,切換到 root
sudo -i
cat > /usr/local/bin/lll <<EOF
#!/bin/bash
ls -lahF --color=auto --time-style=long-iso | awk '{k=0;s=0;for(i=0;i<=8;i++){k+=((substr(\$1,i+2,1)~/[rwxst]/)*2^(8-i))}j=4;for(i=4;i<=10;i+=3){s+=((substr(\$1,i,1)~/[stST]/)*j);j/=2}if(k){printf("%0o%0o ",s,k)}print}'
EOF
# 賦予執行權限:
chmod +x /usr/local/bin/lll
# 如果非 root 用戶,執行完畢退出
exit
寫入環境變數(可選配置,默認不需要):
- bash
echo 'alias lll="/usr/local/bin/lll"' >> ~/.bashrc
- zsh
echo 'alias lll="/usr/local/bin/lll"' >> ~/.zshrc
Zsh
以下針對當前用戶有效,建議使用全域配置,參看 其他文章,
# Zsh
sudo apt install zsh
# or for Redhat
#yum install -y zsh
sudo chsh -s /bin/zsh
sudo apt install git
#通過 https://www.ipaddress.com 查詢,美國地址有效
sudo echo '199.232.96.133 raw.githubusercontent.com' >> /etc/hosts
sudo sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
sed -i '/^ZSH_THEME=.*/c ZSH_THEME="ys"' ~/.zshrc
echo 'alias ll="ls -lahF --color=auto --time-style=long-iso"' >> ~/.zshrc
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
sed -i '/^plugins=.*/c plugins=(git zsh-syntax-highlighting)' ~/.zshrc
source ~/.zshrc
19. 清理并制作鏡像模板
清理 apt 快取
sudo apt clean && sudo apt autoclean #清理下載檔案的存檔
清理臨時檔案夾
rm -rf /tmp/* # 清空臨時檔案夾
清空歷史記錄
#比較完整的清空歷史記錄
#debian/ubuntu use auth.log
rm -f /var/log/auth.log.*
echo > /var/log/auth.log
#rm -f /var/log/audit/audit*
#echo > /var/log/audit/audit.log
rm -f /var/log/secure*
echo > /var/log/secure
rm -f /var/log/btmp*
echo > /var/log/btmp
echo > /var/log/lastlog
rm -f /var/log/wtmp*
echo > /var/log/wtmp
#以上需要 root,以下當前用戶執行
echo > ~/.bash_history
echo > ~/.zsh_history
history -c
至此,Debian 的基本配置已經完成,可以制作模板了,
20. Gnome 桌面環境
如果需要在命令列下安裝桌面環境,操作如下:
sudo apt update
# GNOME 3 and GNOME Classic desktop environment
sudo tasksel install desktop gnome-desktop
# 要安裝 KDE 桌面環境將 以上命令中的 gnome-desktop 替換為 kde-desktop
# laptop tools (optional)
sudo tasksel install laptop
# start the graphical desktop environment by default on boot
sudo systemctl set-default graphical.target
# start desktop in console
startx
21. 關于防火墻或者包過濾
Debian 11 默認使用 nftables 作為 netfilter 前端,使用 nft 命令進行管理,但是默認并沒有啟用,
Linux 內核嵌入了 netfilter 防火墻,可以從用戶空間使用 iptables、ip6tables、arptables 和 ebtables 命令對其進行控制, 然而,Netfilter iptables 命令正在被 nftables 取代,這避免了它的許多問題, 它的設計涉及較少的代碼重復,并且只需使用 nft 命令即可對其進行管理,
Debian Buster(即 Debian 10,包括 11)默認使用 nftables 框架,
要在 Debian 中啟用默認防火墻,請執行:
# apt install -y nftables
Reading package lists... Done
...
# systemctl enable nftables.service
Created symlink /etc/systemd/system/sysinit.target.wants/nftables.service → /lib/systemd/system/nftables.service.
關于 nft 命令的語法和用例,參看其他文章,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/295845.html
標籤:Linux
下一篇:樹莓派遠程連接工具SSH使用教程
