debian的安装
详细文档 :
- https://wiki.debian.org/zh_CN/FrontPage 详细的wiki
- https://www.debian.org/doc/manuals/debian-handbook/index.zh-cn.html 手册
- https://www.debian.org/doc/manuals/debian-reference/index.zh-cn.html 参考手册
- https://www.debian.org/releases/stable/arm64/index.zh-cn.html 安装手册
- https://wiki.debian.org/zh_CN/NetworkConfiguration 网络配置
一键装机脚本见我的GitHub:
一、debian虚拟机的安装
1、用虚拟机安装debian12
- vmware 桥接模式的虚拟机不能用quanx的代理连接国外网站; nat模式是虚拟机自己组成子网,通过nat转发流量到宿主机,所以可以通过quanx连接国外网站;
- 但是nat模式下,宿主机默认不能直接通过虚拟机的内部 IP(例如 172.x.x.x)进行远程连接(如 SSH),因为 NAT 模式下虚拟机的网络是一个私有子网,与宿主机的网络隔离,除非用端口转发(windows上的nat)
- mac中,vmware_fusion提供了自定义网络,选这个,其实是用的桥接网络,加上nat转发流量连接外网; 宿主机既可以ssh连接虚拟机,虚拟机也可以使用quanx访问国外网站
- 选择第二个
Graphical install
, 安装界面可以用鼠标点击; 第一个Install
的安装界面只能用键盘不能用鼠标 - 美国: United States
- 步骤1:语言选择美国英文:安装过程中显示的语言,所选语言也将是系统安装后的默认语言;安装后可用
sudo dpkg-reconfigure locales
重新配置 - 步骤2:选择区域, 中国; 会影响时区; 先选other,再asia,再选china
- 步骤3:因为没有找到符合你选择的语言和国家组合(我选的是美国英文+中国时区)的预设区域设置,系统会提示你重新选语言,依然选美国英文
- 步骤4:Configure the keyboard,键盘布局,选择American English;安装后可用
sudo dpkg-reconfigure keyboard-configuration
重新配置 - 步骤5:hostname, 设置为
prod
或dev
或test
; 这样的格式 - 步骤6:domain name; 设置为
vm.local
; 这样的格式 - 步骤7:输入两次root用户的密码;
- 步骤8:full name; 全名,真实姓名(英文的姓+名), 用于显示的; 就设置为 helq就可以了 ;
- 步骤9:username; 用于登录的; 设为helq
- 步骤10:输入两次helq用户的密码;
- 步骤11:Partition disks; 选择 Guided - use entire disk ; 不分区,使用整个磁盘(虚拟机创建的虚拟磁盘);
- 步骤12:会提示:Partition disks; Note that all data on the disk you select will be erased, but not before you have confirmed that you really want to make the changes. 就是个磁盘擦除警告,直接选择那个磁盘,回车下一步
- 步骤13:Selected for partitioning:The disk can be partitioned using one of several different schemes. If you are unsure, choose the first one. 选择分区方案; 直接选择第一个: All files in one partition
- 步骤14:This is an overview of your currently configured partitions and mount points. Select a partition to modify its settings (file system, mount point, etc.), a free space to create partitions, or a device to initialize its partition table. 即当前配置的分区和挂载点的概述, 选择Finish partitioning and write changes to disk,继续回车
- 步骤15:If you continue, the changes listed below will be written to the disks. Otherwise, you will be able to make further changes manually; 一个确认提示, 选择yes, 回车继续;如果选择默认的no, 会回到上一步
- 步骤16:Configure the package manager;Scanning your installation media finds the label; 是否扫描额外的安装介质; 选择no ,回车继续
- 步骤17:A network mirror can be used to supplement the software that is included on the installation media. This may also make newer versions of software available; 网络镜像的配置; debian12不用镜像,安装包里自带了,直接选no回车继续; debian11安装时,这里也选no;但是11.7.0那个包安装时,即便有梯子下载速度也很慢,所以debian这里需要断网; 但是11.11.0的包我安装的时候联网就通过了;
- 步骤18:Configuring popularity-contest; 提示是否开启匿名信息统计,选择no回车
- 步骤19:选择默认的软件包:SSH server、standard system utilities; 回车继续
- 步骤20: 安装结束; 回车 continue 会自动重启; 关机后需要把 虚拟机的设置里面的 CD/DVD 驱动器 取消连接
二、debian的环境搭建
1、软件包的源配置
- /etc/apt/sources.list
- debian12那个系统DVD安装好后,发现 /etc/apt/sources.list 中的内容是
deb cdrom:[Debian GNU/Linux 12.8.0 _Bookworm_ - Official arm64 DVD Binary-1 with firmware 20241109-11:05]/ bookworm contrib main non-free-firmware
,因为这个系统最初通过离线 DVD 安装的,安装的DVD中包含所有的了
a、备份原来的
b、解释
- deb: 二进制软件包的来源,这些包是已经编译好的,可以直接安装到你的系统中,它是普通用户用来安装应用程序和库的来源
- deb-src: 源码软件包的来源。源码包包含了软件的源代码,你可以从中编译和安装软件,如果需要修改或自行编译软件,可以用到这个源
- bookworm/bullseye: debian12/debian11 ;是发行版的代号
- main:完全开源的软件,符合 Debian 自由软件指南;
- contrib:自由软件,但需要依赖非自由的软件(如驱动或库)
- non-free:非自由软件(可能有版权或许可限制,用户可以使用但不能修改)
- non-free-firmware:从 non-free 中分离出来的非自由固件,专用于硬件驱动和设备运行支持
c、使用官方的源(需要梯子)
I、debian12
|
|
Copied!
- debian11 只需把 bookworm 改为 bullseye
d、使用国内镜像源
|
|
Copied!
上面是debian11的配置; debian12的去找镜像网站有相关配置,这里不写了
e、更新
f、apt相关命令
|
|
Copied!
2、网络配置
- 静态ip + 自定义dns
- 自定义dns时, 不要去修改,/etc/resolv.conf,因为可能重启后失效; 去在 /etc/network/interfaces 配置
- ip addr 查看当前的ip
- vmware中配置了端口转发
0、resolvconf
- 默认情况下,resolvconf并没有安装, 所以在 /etc/network/interfaces 中配置的 dns-nameservers 并不会自动同步到 /etc/resolv.conf, 并且每次系统重启或者使用命令 systemctl restart networking.service 后, resolv.conf 都会被 dhclient 覆盖;
- dhclient 是常用的 DHCP 客户端,它会根据 DHCP 服务器提供的 DNS 信息自动更新 /etc/resolv.conf, 查看 /etc/dhcp/dhclient.conf 中有request 里面有 domain-name, domain-name-servers, 和 domain-search;是 DHCP 客户端从 DHCP 服务器请求的选项,如果 DHCP 服务器提供了这些选项,dhclient 默认会更新 /etc/resolv.conf
- 在不安装额外程序的情况下, 也可以使用命令 sudo chattr +i /etc/resolv.conf ,给这个文件设置只读权限, 这样就不会被覆盖了; sudo chattr -i /etc/resolv.conf 恢复权限
- resolvconf 依赖于 /etc/network/interfaces、DHCP 等服务来收集 DNS 配置信息,并通过这些信息更新 /etc/resolv.conf。resolvconf会将来自多个来源(例如 DHCP 客户端、静态配置、VPN 配置等)的 DNS 信息汇总并合并,最终由 resolvconf 更新 /etc/resolv.conf;
- 安装 resolvconf 后, /etc/resolv.conf 被替换为符号链接,指向 /run/resolvconf/resolv.conf; 原来的resolv.conf中的内容被删除,备份在/etc/resolvconf/resolv.conf.d/original中
- 安装了 resolvconf 后,会在/etc/dhcp/dhclient-enter-hooks.d/ 目录下创建
resolvconf
脚本, dhclient 会通过这个脚本将获取到的 DNS 信息交给 resolvconf 管理; 这些动态信息(包括在/etc/network/interfaces中配置的)通常被写入 /run/resolvconf/interface/ 目录中 - resolvconf 使用多个配置文件片段来管理 DNS 信息,配置文件路径包括:
- /etc/resolvconf/resolv.conf.d/head:内容会添加在动态生成的 /etc/resolv.conf 文件的最开头,通常是注释行(例如,文件生成说明)或管理员希望固定放在前面的配置
- /etc/resolvconf/resolv.conf.d/base:基本 DNS 信息,配置一些静态的dns,始终会添加到resolv.conf; resolvconf收集到的动态信息会跟base文件中的配置进行merge;如:base中配置了
search a.b.c
,收集到的动态信息是search x.y.z
,最终结果就是:search a.b.c x.y.z
- /etc/resolvconf/resolv.conf.d/tail:尾部内容;可以用来加入一些额外的选项,比如 options inet6;如果不需要任何追加内容,可以将该文件留空。
- 可以直接在 /etc/network/interfaces 中配置 dns-nameservers 和 dns-search, 在resolvconf的帮助下会同步到 resolv.conf
- 文档目录: /usr/share/doc/resolvconf/README.gz gunzip README.gz
- resolvconf 和 systemd-resolved 两个软件冲突,安装一个就会卸载另一个; systemd-resolved的功能比resolvconf更多,如mdns和dns缓存等,但我不会用,也没必要用
a、原始配置的解释
1、运行 cat /etc/resolv.conf ; 显示:
一
、找到这个nameserver
, 写在后面/etc/network/interfaces
中的gateway
; nameserver就是使用的dns服务器, 在vmware虚拟机中,这个默认被配置为nat的网关ip,用来转发流量和dns解析; 但是也不是必须与 网关ip相同, 可以配置成多个不同的dns, 写多行 nameserver, 配置的dns中就算没有网关ip, nat的外网访问依然还是保持不变, 所以网关是网关,dns是dns,两个不同的功能和概念;- 虚拟机linux中的网关ip虽然默认没有文件配置(除非配置静态ip),但可以执行命令:
ip route | grep default
可以查看到 - 在 VMware 创建的 NAT 模式的虚拟机中,虚拟机的网关 IP 并不是直接存储在虚拟机的配置文件(不在linux虚拟机的文件系统中)中,而是通过 VMware 的网络配置文件定义,并由虚拟机通过 DHCP 或静态配置使用,可能会存放在宿主机
/Library/Preferences/VMware Fusion/networking
(VNET_8_HOSTONLY_SUBNET)中,这是标识了nat能用的子网段,以.0
结尾,但是网关ip用的是以.2
结尾的; - 在
/Library/Preferences/VMware Fusion/vmnet8/nat.conf
中有下面的这个配置,也标识了网关ip;注意这是纯nat模式,和自定义模式还不相同;
- mac上vmware fusion自定义模式实际上是桥接, 在
/Library/Preferences/VMware Fusion/networking
中的VNET_2_HOSTONLY_SUBNET
中有显示;在/Library/Preferences/VMware Fusion/vmnet2/nat.conf
中也有如下表示(vmnet2
也在软件中显示的我的自定网络的名字):
- nat 模式的网关 ip
xxx.xxx.xxx.2
通常以.2
结尾, 因为约定俗成;.0
是一个网段的网络标识地址,表示整个子网常表示子网本身,不能分配给设备或服务使用;.1
通常用于路由器,在家庭路由器中,192.168.1.1 是常见的默认网关,虽然 VMware 可以选择使用 .1,但它通常会避开这个地址,以避免与一些软件或网络设备的默认配置产生冲突 二
、这个文件就是被修改,重启后也会恢复原样; 若要进行配置,需要修改后执行chattr +i /etc/resolv.conf
变为只读的;恢复:chattr -i /etc/resolv.conf
三
、domain
和search
最好保持不变, 就用 localdomain, 更安全, 因为外网中没有localdomain的顶级域名- localdomain 就是个默认的域名占位符,假如我
ping aaa
, 他会尝试去dns中查找aaa
和aaa.localdomain
; 可以删除localdomain,替换为自己要用的 - search 就是一个搜索域, 用于补全主机名,假如配置成
com
, 我执行ping baidu
就能直接ping成功; 但是不能和本地hosts文件配合使用,如在hosts中配置:1.1.1.1 a.com
; 则我执行ping a
, 是不会成功的, 因为会直接去dns服务器中查找(nat模式虚拟中就是那个网关ip),网络上并没有 a.com 这个地址,所以不会成功,这种只能ping a.com
; domain
和search
功能相同,原理也相同; 但是1、search若配置后, 会覆盖domain 的配置; 2、search 支持多个 以空格分开, domain 仅支持一个
2、运行 cat /etc/network/interfaces ; 显示:
|
|
Copied!
详情见下面修改静态ip的示例
b、静态ip+dns配置
ens160
:网络接口名称,必须使用原本默认的, 但是有些老linux使用的是eth0
,所以需要修改前预先查看当前系统使用的网络接口名称
; 在后面修改的配置文件示例作出相应的修改才行; 原来用的哪个,修改后也应该用哪个;可以用ip link show
或者ifconfig
, 或者直接看 /etc/network/interfaces文件- 如果要配置静态ip,那就必须要配置gateway(网关)ip,否则不能连接外网;局域网使用是可以的
- 为什么默认不需要配置?因为默认网络是动态ip,是通过dhcp自动发现的,通过dhcp,linux就知道了该找哪个网关ip;静态ip则不然;
- 桥接模式也需要配置网关ip(通常为路由器ip),默认使用动态ip时,也是用dhcp自动发现的;
- 若要配置dns,则最好在/etc/network/interfaces中配置,虽然/etc/resolv.conf中也能配置,但是重启就会没了;而/etc/network/interfaces中配置的dns则会自动同步到resolv.conf,重启也不会消失
- lo 的两行是非必须的,是回环地址(127.0.0.1),可以不用显式配置,linux会在开机后自动启用lo,可以用
ping 127.0.0.1
来检测 - 也可以设置: dns-search com # 设置DNS搜索域 ,见上面的 resolv.conf配置详解(就是这个resolv.conf里的 search, 会自动同步到resolv.conf)
|
|
Copied!
c、配置默认语言
- 尽管在安装时已经选择了默认语言(即安装的第一步,选择安装程序的显示语言,这个设置也会成为安装后系统的默认语言)
- 在系统安装完成后,可以通过命令重新配置; 如果安装时选择的英文, 安装后用命令把中文加为第二个语言,但是默认首选还是英文,只是添加了个中文环境信息,可以给其他软件使用;如:
tldr -L zh tree
,这个命令,如果不添加中文语言环境的支持,是不会显示中文的 - 默认
tty界面(非远程连接、非图形化界面的系统自己的操作界面,那个黑窗口)
无论怎么配置,通常也是不支持中文的,除非安装fbterm
这个第三方的tty
|
|
Copied!
d 、重新配置键盘布局
- 装好系统后,默认不用修改
- 键盘布局就是,在 tty 界面,或者linux自己的图形化界面的键盘映射;其目的是让操作系统正确识别和映射键盘上的按键到字符或功能;
- 按键 Shift+2 输出
@
(在美式键盘中)还是"
(在英式键盘中)某些键盘布局会增加对语言特定符号的支持,比如法语的 é 或德语的 ß - 某些布局支持 AltGr(右 Alt 键)的特殊功能,用于输入更多字符
- 但是远程连接的话就没这个说法了,用的是我本地的电脑自己的键盘映射,传给linux的就是实际的字符信息了;
- 最佳选择:
美式键盘(US Layout):标准 QWERTY 布局,符号按键位置国际通用
; - 中国市场的键盘以美式 QWERTY 布局为主,硬件上没有区别,中文输入完全依赖系统输入法
- 默认
tty界面(非远程连接、非图形化界面的系统自己的操作界面,那个黑窗口)
无论怎么配置,通常也是不支持中文的,除非安装fbterm
这个第三方的tty
Copied!
e、安装 sudo
|
|
Copied!
f、前置软件安装
|
|
Copied!
f、允许root直接登录
默认情况下,是不允许 root直接登录的即: ssh -p 22 root@172.16.106.12
会失败
Copied!
g 、虚拟机克隆的情况
|
|
Copied!
三、以下配置可以用脚本执行
1、安装shell插件
|
|
Copied!
2、环境搭建
|
|
Copied!
3、安装必备工具
- debian等linux系统,若是arm架构的,则不推荐装 homebrew(linuxbrew),有很多包没有通用二进制文件,只能在本地编译,很慢又容易出依赖的问题,不友好
|
|
Copied!
4、命令行工具
|
|
Copied!
5、文件上传下载服务
a、dufs
|
|
Copied!
b、filebrowser
|
|
Copied!
c、开启 sftp 服务
|
|
Copied!
d 、开启 ftp 服务
|
|
Copied!
e、minio
Copied!
四、可选
a、pipx
|
|
Copied!
b、clash
|
|
Copied!
c、卸载 apache2
Copied!
五、后续更新
|
|
Copied!