本指南将详细介绍在戴尔电脑上安装 Linux 操作系统的步骤,以及后续的重要配置,包括系统选择、安装流程、MySQL
数据恢复、网络配置、文件共享和远程维护等。步骤清晰且配有命令行示例和配置文件示例,适合初中级用户参考。

1、Linux 系统选择与安装建议

Linux Mint Cinnamon 桌面界面示意:Linux Mint 提供了类似 Windows 风格的开始菜单和桌面,界面友好直观。
推荐发行版: 建议选择 Linux Mint(基于 Ubuntu LTS)作为发行版。Linux Mint 是一款稳定且用户友好的桌面 Linux 系统,基于 Ubuntu 长期支持版并提供长达 5 年的更新支持。它预装了常用的软件和驱动,拥有良好的硬件兼容性,即使老款戴尔电脑也能流畅运行。Mint 的桌面环境(如 Cinnamon)界面直观,类似 Windows,更容易上手。此外,Mint 拥有活跃的社区和丰富的文档支持,新手遇到问题也能方便地找到解决方案。相比最新的 Ubuntu,Linux Mint 更加保守稳定,避免了一些新特性可能带来的不稳定或不习惯之处(例如 Ubuntu 默认的 Snap 软件管理等)。总之,Linux Mint 提供了简单易用、美观稳定的桌面环境,深受广大用户青睐。

图形界面 vs. 命令行界面: 在安装 Linux 时,可以选择安装图形化桌面环境,或者仅安装纯命令行的服务器环境。两者各有优缺点:

  • 图形化界面环境
    优点是操作直观,使用鼠标键盘即可完成大部分操作,更加易于使用,适合日常办公、上网浏览、文档处理等普通用途[4]。例如,在桌面环境下可以方便地拖放文件、使用文件管理器浏览硬盘、打开浏览器、编辑文档等,这对不熟悉命令行的用户非常友好。缺点是图形界面占用一定的系统资源(CPU、内存、硬盘空间),对硬件要求更高一些,相对于命令行模式效率稍低[4]。另外,遇到系统故障时,图形界面可能无法启动,还需切换到命令行解决问题。
  • 纯命令行环境
    优点是系统资源占用极少,非常精简,高效稳定,特别适合服务器环境或硬件性能较弱的旧电脑使用。通过命令行可以快速执行复杂任务,支持脚本和批处理,提高自动化程度,对于系统管理和配置而言效率更高。同时,没有图形界面意味着减少了潜在漏洞,更安全。缺点是学习曲线较陡,对于不熟悉命令的用户来说上手难度较大,需要记忆命令和参数。纯命令行模式下日常操作(如浏览网页、看视频)不方便,需要额外安装基于文本的工具或从其他机器远程管理。

如何选择: 如果计划将戴尔电脑作为日常使用的电脑或者需要方便地进行本地操作(如文件管理、浏览器访问等),推荐安装带图形界面的发行版(如 Linux Mint 默认桌面版)。它能提供良好的用户体验,配置网络、安装软件也可以通过图形界面完成。但如果打算将其作为一台服务器使用,并希望最大化利用资源、提高稳定性,而且本人对Linux命令行较为熟悉,那么可以选择不安装图形界面,使用纯命令行模式的系统(例如安装Mint的“no GUI”选项或使用 Ubuntu Server 等)。对于大多数初中级用户,安装图形界面会更友好一些,毕竟可以随时打开终端使用命令行,不需要时仍可享受桌面带来的便利。

2、安装 Linux 系统过程

在决定好发行版后,接下来就是在戴尔电脑上安装 Linux 系统的具体步骤。这里以推荐的 Linux Mint 为例,其他发行版(如 Ubuntu/Debian 等)安装过程类似。

2.1 制作启动安装介质:

首先,从官网下载所选发行版的 ISO 镜像文件,并使用工具将其写入 U 盘(推荐使用 Rufus、balenaEtcher 等软件)。确保戴尔电脑的 BIOS 已设置为从 U 盘启动。将启动盘插入戴尔电脑并重启,按下 F12(有些戴尔型号是 F12 进入引导菜单),选择从 USB 设备启动。

2.2 启动安装程序:

成功从 U 盘引导后,会进入 Linux Mint 的安装界面。一般首先会看到一个“试用或安装”的选项,可以选择直接Start Linux Mint进入实时桌面环境。接着点击桌面上的“Install Linux Mint”图标开始安装向导。

2.3 语言与键盘:

在安装向导的第一步,选择安装过程使用的语言(此处可选“简体中文”),方便阅读安装提示。接着选择键盘布局(默认美式键盘即可,若有特殊需要可选中文输入)。

2.4 分区和格式化硬盘:

这是安装中最关键的步骤。可以选择自动分区或者手动分区:

  • 自动分区(清除磁盘并安装):

安装程序通常提供“一键安装”选项,例如“清除整个磁盘并安装 Linux Mint”。选择此项会格式化整块硬盘并自动创建所需分区,非常适合无重要数据的新硬盘或准备抹掉磁盘重装的情况。Mint 的自动分区一般会建立根分区/(ext4文件系统)和交换分区(swap),以及引导分区(EFI)等必要分区。只需确认选择正确的硬盘(如果有多块硬盘,一定要选中SSD所在盘),然后继续,安装程序将自动完成分区和格式化。

  • 手动分区:

如果有特殊需求(例如需要多分区方案、双系统或保留部分数据分区),可以选择“手动分区”或“其它选项”。进入手动分区界面后,需要根据需求新建分区。推荐分区方案:EFI 引导分区(ESP)大约 100~300MB(FAT32 格式,挂载点/boot/efi,用于 UEFI 引导);根分区/ 50~100GB(ext4 格式,存放系统和应用。普通桌面用户50GB已够,大型软件多可以给到100GB以上[6]);交换分区 SWAP 大小视内存而定(若物理内存较小如4GB,建议交换分区=内存大小甚至2倍;内存充裕如16GB以上也可不设独立swap分区,Linux Mint 默认也支持交换文件代替交换分区);家庭分区/home(ext4,根据剩余空间全部分给/home,用于存储用户个人文件,可选)。其中,EFI 分区在使用 UEFI 引导时必不可少,如果硬盘之前装有 Windows 已有 EFI 分区,可直接重用它。每个分区创建后需要指定挂载点,例如将最大的一块分区挂载到/,交换分区类型选为“swap”,EFI 分区文件系统选 FAT32 并挂载到/boot/efi。完成手动分区后,双击“安装引导器的设备”确保指向SSD本身(如/dev/sda),然后点击继续。

注意: 手动分区时务必小心,确保选择正确的硬盘和分区进行格式化。建议在操作前备份硬盘上重要数据。一旦分区和格式化执行,数据将无法恢复。

2.5 时区和用户

继续安装时,选择时区(例如中国用户选“上海”或相应城市),键盘布局(中文用户一般美国英语即可,之后可在系统中添加中文输入法)。然后设置计算机名称、创建用户账户和密码。请使用强密码并记住,它将用于日常登录和执行管理员操作(sudo)。

2.6 安装系统文件:

安装程序开始将 Linux 系统复制到 SSD期间可以看到一些幻灯片介绍Mint特性。等待进度完成(通常几分钟到十几分钟,视SSD速度)。
2.7 完成安装并重启: 提示安装完成后,拔除 U 盘并点击重启。电脑将从SSD启动进入刚安装的 Linux 系统。如果是双系统,开机时会出现 GRUB 引导菜单供选择启动哪一个系统。
2.8 首次启动配置: 首次进入 Linux Mint 桌面,可能会弹出欢迎屏幕。可以按照提示更新系统、安装多媒体解码器等:

  • 系统更新:

建议在联网后立即更新系统以获取最新的安全补丁和软件更新。可以通过图形界面的“更新管理器”执行更新,或者打开终端输入命令:

sudo apt update && sudo apt upgrade -y

这将刷新软件源并安装所有可用更新。

  • 语言和区域设置:

如果界面未自动切换为中文,可在「系统设置 -> 语言支持」中添加中文语言并应用到整个系统,然后注销重新登录。确保区域设置(Locale)为中文(简体,中国),如需要也可调整数字、日期格式等区域选项。

  • 驱动程序:

戴尔电脑若有专有驱动(如 NVIDIA 显卡),Mint会在「驱动管理」中提示可用的专有驱动。可以选择相应驱动安装以获得更好性能。

  • 开启自动更新(可选):

为免除手动更新的麻烦,可在更新管理器中设置自动更新。另外建议开启时间自动同步(NTP),以确保系统时间准确。
完成以上设置后,Linux 系统就安装妥当并准备就绪了。接下来,进入具体的服务器配置步骤。

3. MySQL 8.0 数据恢复

假设之前在旧系统中使用 MySQL 8.0 数据库,并且有一份数据库文件夹的备份(其中包含 .ibd 和 .frm 文件)。现在在新安装的 Linux 系统上恢复这份数据库。以下步骤将指导如何安装 MySQL 8.0、导入这些数据文件并验证恢复结果:

3.1 安装 MySQL 8.0:

Linux Mint 基于 Ubuntu,默认软件源提供 MySQL。打开终端,执行:

sudo apt update
sudo apt install mysql-server -y

这将安装 MySQL 8.0 服务器(Ubuntu 22.04 默认提供 MySQL 8.0.x)。安装完成后,服务可能会自动启动并设置为开机自启。先不要急于配置,继续下面的步骤。

3.2 停止 MySQL 服务:

在导入数据前,需要停止正在运行的 MySQL 服务以避免冲突:

sudo systemctl stop mysql

(有时服务名可能是 mysql 或 mysqld,可用 sudo systemctl status mysql 查看)。确保服务已停止再继续。

3.3 准备数据文件:

将备份的数据库文件夹拷贝到 MySQL 的数据目录。默认情况下,MySQL 8.0 的数据目录是 /var/lib/mysql。假设备份的数据库名为 mydb,且备份时保存了整个 mydb 文件夹(包含该库下所有表的 .ibd 和 .frm 文件)。执行以下操作:

  • 将备份的 mydb 文件夹复制到 /var/lib/mysql/ 下(可以先将备份U盘挂载后复制,或用 cp 命令)。如果 mydb 目录已存在(例如安装时初始化了同名空数据库),可以先删除那个空目录。
sudo cp -r /path/to/backup/mydb /var/lib/mysql/

确保复制过程中不要漏掉任何 .ibd 或 .frm 文件。特别是 MySQL InnoDB 存储引擎在 5.7 及以前版本会将表结构存于 .frm 中,数据存于 .ibd 中,两者必须配对。

  • 设置权限: 复制完成后,调整新拷贝文件的属主属组为 MySQL:
sudo chown -R mysql:mysql /var/lib/mysql/mydb

这是非常重要的一步!如果文件权限不正确,MySQL 启动时将无法访问数据文件。另外,确保目录权限为750或700(一般继承即可)。

注意: MySQL 8.0 与之前版本略有差异:8.0 移除了独立的 .frm 文件,表定义存储在 InnoDB
内部的数据字典中。如果备份源自 MySQL 5.7 及以下版本,那么直接拷贝 .frm 和 .ibd 到 MySQL 8.0
下可能无法被识别。最好使用相同版本的 MySQL 来恢复。也就是说,如果备份来自 MySQL 5.7,建议在本机先安装 MySQL 5.7
来导入这些文件,运行正常后再升级到 8.0。如果无法方便地安装旧版本,则需要借助 MySQL 8.0 的表空间导入工具(ALTER
TABLE … IMPORT TABLESPACE)进行恢复。在这里假定备份就是来自 MySQL 8.0 环境,因而 .frm
文件可能其实无用,但仍一并放置以防万一。

3.4 启动 MySQL 服务:

现在重新启动 MySQL:

sudo systemctl start mysql

首次启动时,MySQL 会尝试读取数据目录下的数据库文件。如果版本一致且操作正确,服务应能正常启动。如果启动失败,可检查日志(/var/log/mysql/error.log)以确定问题。

3.5 验证数据恢复:

用 MySQL 客户端登录并检查数据。例如:

sudo mysql -u root -p   
# 以root用户登录数据库

进入 MySQL 控制台后,执行:

SHOW DATABASES;
USE mydb;
SHOW TABLES;
SELECT COUNT(*) FROM some_table;

看看是否列出了备份的数据库 mydb 以及其中的表。如果能 SELECT 出预期的数据行数,则说明恢复成功。也可以使用之前备份的数据做对比验证。
如果数据没有如预期出现,可能需要采取额外步骤导入表空间:对于每个表,先在目标数据库中创建同名表(结构需一致),然后执行 ALTER TABLE 表名 DISCARD TABLESPACE;,替换 .ibd 文件,再执行 ALTER TABLE 表名 IMPORT TABLESPACE;。这属于高级操作,在此不展开。一般按照上述简单步骤拷贝整个数据库目录后,在相同MySQL版本下启动服务,多数情况下数据会直接恢复出现。

4. 配置静态 IP

默认情况下,大多数 Linux 发行版安装后会通过 DHCP 自动获取 IP 地址。但在某些场景下(如公司局域网服务器),我们希望使用固定的局域网 IP 地址。假设我们计划将这台电脑配置为 192.168.0.11,子网掩码 255.255.255.0(即 /24),网关 192.168.0.1,DNS 使用公司网关或公共 DNS。
下面介绍两种设置静态 IP 的方法:Netplan(Ubuntu及衍生发行版采用的新配置方式)和 NetworkManager(桌面环境常用的网络管理器)。请选择其中一种方法即可。

前提: 请确认当前系统的网络接口名称(如 enp3s0、eth0、wlan0 等)。可在终端执行 ip addr 或 ifconfig
查看有IP地址的网卡接口名称。下面示例用enp3s0表示有线网卡接口名称,请根据实际名称替换。

  • 方法一:使用 Netplan 配置静态 IP

Ubuntu 18.04+系统(包括 Linux Mint 新版本)普遍使用 Netplan 来管理网络配置。Netplan 通过 YAML 配置文件来描述网络接口设置,然后应用配置到后端(NetworkManager 或 systemd-networkd)。Mint 桌面版通常将有线接口交由 NetworkManager 管理,但我们仍可以使用 Netplan 直接设置网络(将渲染器切换为 networkd)。步骤如下:
1.编辑 Netplan 配置文件: 打开 /etc/netplan/ 目录下的配置文件(Mint/Ubuntu 桌面可能文件名为 01-network-manager-all.yaml01-netcfg.yaml 等)。使用管理员权限编辑它:

 sudo nano /etc/netplan/01-netcfg.yaml

(Nano或vim等文本编辑器均可。)
2.编写静态 IP 配置: 在文件中添加或修改网卡配置,使之包含静态 IP 设置。例如,针对接口 enp3s0,配置内容如下:
network:

version: 2renderer: networkd          # 使用 systemd-networkd 来应用配置ethernets:enp3s0:dhcp4: no               # 关闭 DHCPaddresses: [192.168.0.11/24]   # 静态 IP/子网掩码gateway4: 192.168.0.1   # 默认网关nameservers:addresses: [192.168.0.1, 114.114.114.114]  # DNS服务器,可填写多个

配置说明:其中 enp3s0 是网络接口名称,请根据实际名称替换。addresses 字段指定静态IP和掩码,gateway4 是默认网关(通常是路由器IP),nameservers 下的 addresses 列出 DNS 服务器地址,可使用公司内部DNS或公共DNS。

  1. 应用配置:

保存文件并退出编辑器,然后执行命令使配置生效:

sudo netplan apply

若配置有误,netplan 会给出错误提示,请根据提示修改 YAML 文件格式后重试。

  1. 验证 IP:

ip addr show 确认接口已经获得了新的静态 IP 192.168.0.11。也可以尝试 ping 192.168.0.1 测试与网关的连通性。
Netplan 配置静态 IP 非常简洁,一旦应用成功,配置会持久保存并在重启后生效。

注意:如果 Mint 系统原本使用 NetworkManager 管理网络,直接用 Netplan (renderer: networkd)
可能会接管接口,使 NetworkManager 图形设置失效。这种情况下,建议在 Netplan 中将指定接口交由
networkd,而无线等仍由 NetworkManager 管理,以避免冲突。

  • 方法二:使用 NetworkManager 设置静态 IP

如果安装了桌面环境,NetworkManager 通常负责网络连接,可通过图形界面或命令行工具配置静态 IP:

图形界面操作:

点击系统托盘的网络图标 -> 选择“网络设置”或“编辑连接”。找到当前使用的有线连接(如 Wired Connection 1),点击编辑,将 IPv4 方法从 “自动 (DHCP)” 改为 “手动 (Manual)”。然后输入 IP 地址 192.168.0.11,子网掩码 255.255.255.0,网关 192.168.0.1,以及 DNS 服务器地址。保存设置后,断开再连接网络或重启网络服务,静态 IP 应生效。Windows 用户可以像以前通过DHCP一样访问 \192.168.0.11,但现在这个地址是固定的。

  • 使用 nmcli 命令

NetworkManager 提供 nmcli 命令行工具。例如(假设连接名为 “Wired connection 1”,设备名 enp3s0):

sudo nmcli con modify "Wired connection 1" ipv4.method manual ipv4.addresses 192.168.0.11/24 ipv4.gateway 192.168.0.1 ipv4.dns "192.168.0.1 114.114.114.114"
sudo nmcli con down "Wired connection 1" && sudo nmcli con up "Wired connection 1"

以上命令设置有线连接的 IPv4 手动参数并重新激活连接。用 nmcli con show "Wired connection 1" 可查看修改后的配置确认无误。

  • 使用 nmtui 工具

在终端执行 sudo nmtui 会打开NetworkManager的文本用户界面。选择“编辑连接”,找到网卡连接,设置 IPv4 配置为手动并填写 IP、网关、DNS 等,保存退出后,即可生效。nmtui界面友好,不用记复杂命令。
无论采用哪种方式,完成后可用 ip addr 或 ifconfig 验证新 IP。

提示: 如果网络需要同时设置 IPv6,请相应配置 IPv6 地址或禁用 IPv6,以免影响。同时确保路由器未将 192.168.0.99
分配给其他设备,避免 IP 冲突。

5. 配置 Samba 文件共享

Samba 服务允许我们将 Linux 系统上的目录通过 SMB/CIFS 协议共享出来,方便 Windows 用户访问。下面将指导如何在这台 Linux 系统上配置 Samba,实现如下需求:

  • 创建多个共享目录(例如 /srv/share/group1、/srv/share/group2 等),并通过 Samba 分享。
  • 针对不同的部门/工作组设置访问权限,例如 group1 组只能访问 group1 共享,group2 组访问 group2 共享。 希望局域网内的同事访问共享时不必每次都输入用户名密码(可以设置初次输入后记住凭证,或对某些公共分享启用匿名访问)。 Windows
    用户可以像访问本地文件夹一样,在资源管理器地址栏输入 \192.168.0.11\共享名 来直接访问。

5.1 安装 Samba:

默认大部分发行版未预装 Samba 服务。首先安装 Samba:

sudo apt install samba -y
安装完成后,Samba 的配置文件位于 /etc/samba/smb.conf,服务名通常是 smbd(文件共享服务)和 nmbd(网络邻居发现服务)。安装过程通常已自动启动 Samba 服务,可以用 sudo systemctl status smbd 查看其运行状态。
5.2 创建共享目录及用户组: 在配置 Samba 前,先在系统中创建实际的共享目录及对应的用户/组,并设置权限:
创建共享目录:按照需求建立目录,例如:

sudo mkdir -p /srv/share/group1
sudo mkdir -p /srv/share/group2

为规范起见,我们在 /srv/share/ 下集中存放共享资源。也可以根据需要更改路径。

  • 创建用户组:

为方便权限管理,创建 Linux 用户组 group1 和 group2:

sudo groupadd group1
sudo groupadd group2

然后将相应的本地用户加入这些组(假设现有用户user1属于group1部门,user2属于group2部门):

sudo usermod -aG group1 user1
sudo usermod -aG group2 user2

如果希望为每个部门单独用一个共享账户,也可以直接创建对应的系统用户,如 sudo useradd -M -s /sbin/nologin group1user(创建无主目录、不可交互登录的用户),然后 sudo passwd group1user 设置密码,并将该用户加入 group1 组。

  • 设置目录权限:将共享目录的属组设置为相应组,并给予读写权限。比如:
sudo chown root:group1 /srv/share/group1
sudo chown root:group2 /srv/share/group2
sudo chmod 2770 /srv/share/group1 /srv/share/group2

上述 chmod 2770 设置目录权限为用户和组可读写(770),其他人无权限(0),并启用 SGID 位(2),使新建文件继承目录组。这确保组内成员均有权限访问和创建文件。

5.3 添加 Samba 用户:

Samba 有独立的用户数据库,但它基于系统用户。因此需要将需要访问共享的用户添加到 Samba。这里假设每个实际用户各用各的账户:

sudo smbpasswd -a user1   # 为user1添加Samba密码(会提示输入新密码)
sudo smbpasswd -a user2   # 为user2添加Samba密码

上述命令会将对应系统用户添加到 Samba 并设置访问密码。可以为组内所有用户都执行一遍。提示: Samba 用户名和密码可以与Linux登录相同(方便用户记忆),但两者数据库是分开的。
如果采用“一组一账户”策略,比如只想创建一个账户让所有group1部门员工共用,那在前一步可创建如 group1user 的系统用户,并执行 sudo smbpasswd -a group1user 设置密码,然后将这个账号和密码发放给group1的员工共用。

5.4 编辑 Samba 配置:

用编辑器打开 /etc/samba/smb.conf,找到 [global] 段并确认以下设置(如果不存在则添加):

[global]workgroup = WORKGROUP         # Windows 工作组名称,默认即可security = user               # 使用用户级安全验证map to guest = Bad User       # 将未知用户映射为访客(用于匿名访问)

解释如下:workgroup 默认为 “WORKGROUP”,需要与 Windows 网络的工作组一致(通常都是这个值);security
= user 表示启用账号/密码验证模式;map to guest = Bad User 表示当登录用户非本地账号时,将其当作访客处理(为后面的匿名访问做准备)。

接着,在文件末尾添加我们设计的共享定义,例如:

[group1]comment = Group1部门共享目录path = /srv/share/group1browseable = yesread only = noguest ok = novalid users = @group1[group2]comment = Group2部门共享目录path = /srv/share/group2browseable = yesread only = noguest ok = novalid users = @group2

每个共享段用方括号 […] 指定共享名,这将成为访问时的路径名。上述配置含义:

  • comment 是对共享的描述,可自由填写。
  • path 指定共享目录的实际路径。
  • browseable = yes 表示共享对网络浏览是可见的,这样用户打开网络邻居或访问 \192.168.0.11\ 能看到共享名。
  • read only = no 允许写入(即读写权限,默认为 yes 即只读)。
  • guest ok = no 表示不允许匿名访客访问。我们这里针对部门共享都要求登录,因此设为 no(后面会讲匿名共享的配置)。
  • valid users = @group1 限制只有属于 group1 组的用户才能访问该共享(@group1表示 Unix 用户组)。对于 group2 类似道理。这确保了即使其他人知道共享名也无权访问。

设置完成后保存文件并退出。
如果还希望有一个无需账号即可访问的公共共享,例如公共资料夹,可另外添加一段,例如:

[public]comment = 公共分享path = /srv/share/publicbrowseable = yesread only = noguest ok = yesguest only = yes

同时创建对应目录 /srv/share/public,并设权限为777或特定用户控制。guest ok = yes 允许匿名访问,guest only = yes 则强制所有访问都视为访客,无需密码。这种共享适合放一些无敏感性的公共文件,方便全公司访问。注意: 开启匿名写入共享有安全风险,只应在可信的内网使用[19]。对允许写入的匿名共享,要做好备份并防范误删。

5.5 重启 Samba 服务:

每次修改 smb.conf 后需要重启服务才能使配置生效:

sudo systemctl restart smbd
sudo systemctl restart nmbd

(有时两者是同一服务,通过 sudo systemctl restart samba 重启)。

5.6 Windows 客户端访问:

在 Windows PC 上,打开“文件资源管理器”,在地址栏输入 \192.168.0.11\ 回车。如果网络通信正常,应该看到刚才配置的共享列表(group1、group2等)。
第一次访问受控共享时,会弹出凭据输入窗口。输入刚才在 Samba 添加的用户名和密码(例如 user1,密码)。建议勾选“记住我的凭据”,这样下次访问无需重复输入。之后,点开对应共享文件夹,就如同访问本地硬盘一样了。同事也可以将该共享映射为网络驱动器(在资源管理器“此电脑”上右键 -> 映射网络驱动器,填写路径和凭据)以便日常使用。
若配置了匿名共享 [public],Windows 访问 \\192.168.0.11\public 时应直接进去而不要求密码。如无法匿名访问,检查 Samba 全局设置是否包含 map to guest = Bad User,且确保 guest account 映射的系统用户(通常是 nobody)对该目录有权限。
5.7 权限与测试: 可以在 Linux 上用 smbclient 工具测试访问,例如:

smbclient //localhost/group1 -U user1 -W WORKGROUP

输入密码后应成功登入 Samba 共享并可列出文件。确保不同组的用户无法访问不属于自己的共享(会提示无权限)。另外,建议在 Samba 配置中适当设置 create mask 和 directory mask,以控制通过Samba创建的文件权限,例如添加 create mask = 0660 和 directory mask = 2770,确保文件属主和属组有读写,新建文件属组继承目录属组。
Samba 配置完成后,Windows 用户就可以方便地在网络中访问共享资料了。Samba 使得 “Windows 可以像访问本地文件夹一样访问 Linux 共享”成为可能,提高了异构网络下协作的效率。
安全提示: 尽量根据部门划分权限,避免将整个硬盘共享给所有人。对于匿名共享,只提供只读访问或特定文件夹,重要资料仍应放在受限共享中。可以在 smb.conf 的 [global] 段通过 hosts allow 或 hosts deny 限制访问的 IP 段,提高安全性。

6、系统远程访问与维护

完成以上配置后,我们还需要考虑系统的远程管理和安全维护。以下是几个重要的设置:

  • SSH 远程登录: 方便管理员远程连入维护系统。
  • 基础安全防护: 如启用防火墙(UFW)限制不必要的端口、使用 Fail2Ban 防止暴力破解。
  • 图形化管理工具 (Webmin): 可选安装一个基于网页的管理界面,方便在浏览器中对服务器进行设置监控。

下面逐项说明:

6.1 启用 SSH 及安全配置

SSH 安装与启动: SSH(安全外壳)服务允许通过网络远程登录这台 Linux 主机的命令行。许多发行版默认未启用 SSH,需要自行安装。执行:

sudo apt install openssh-server -y

安装完成后,SSH 服务一般会自动启动并设为开机启动。确认方法:

sudo systemctl enable ssh
sudo systemctl start ssh
sudo systemctl status ssh   # 确认服务Active

现在,可以在局域网内其他电脑通过 SSH 客户端连接。例如,在另一Linux上:ssh 用户名@192.168.0.11,首次连接会提示保存指纹,输入密码即可登录远程终端;在 Windows 上可使用 PuTTY 或 Windows 内置的 ssh 命令连接。
SSH 安全加固: 默认配置下,SSH 使用22端口,用户名密码登录。为提高安全性,建议:

  • 更改 SSH 默认端口(可选):
    /etc/ssh/sshd_config 中的 Port 22 改为其它非标准端口(1024以上),例如2222。这可以减少被扫描的可能。但更改端口后连接时需指定新端口,例如 ssh -p 2222 用户@IP。
  • 禁止 root 远程登录:

确保 sshd_config 中 PermitRootLogin no(默认Ubuntu就是不允许)。这样即使知道 root 密码也无法直接远程登录,必须先以普通用户登录再提权,增加了一道防线。

  • 使用公钥认证,禁用密码登录:

这是最安全的方案。可以为管理员账户配置 SSH 公私钥登陆,将公钥添加到服务器 ~/.ssh/authorized_keys。然后在 sshd_config 将 PasswordAuthentication no 关闭密码认证,只允许密钥登陆。这会完全防止暴力猜密码攻击(设置前请确保公钥能用,否则锁定自己在外!)。
完成修改后重启 SSH 服务 (sudo systemctl restart ssh) 使配置生效。

6.2 Fail2Ban 防暴力破解

Fail2Ban 是一个入侵防护软件,它通过监控日志,在检测到多次失败登录尝试后自动封禁攻击者 IP。一旦配置,Fail2Ban会大幅降低暴力破解 SSH 等服务的风险。安装步骤:

  1. 安装 Fail2Ban:
sudo apt install fail2ban -y

Ubuntu自带了针对SSH的默认规则,无需复杂配置即可生效。

  1. 配置(可选):

打开 /etc/fail2ban/jail.conf 可以看到默认设置,不建议直接修改此文件。若需要自定义,复制一份为 jail.local:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

在 [sshd] 部分确保 enabled = true,可以调整参数:例如 maxretry(最大重试次数,默认5次)、findtime(判定时间窗口,默认10分钟)、bantime(封禁时长,默认10分钟或可以设如1h/24h)。比如改为 maxretry = 4,bantime = 1h 等,然后保存。

  1. 启动服务:
sudo systemctl enable fail2ban --now

启动并设为开机自启。Fail2Ban现在开始监视 /var/log/auth.log 等日志。根据默认配置,在3分钟内若有超过5次 SSH 登录失败尝试,Fail2Ban将自动禁止该IP 1小时(上述数字可根据配置变化)。

  1. 验证:

使用 sudo fail2ban-client status sshd 查看 sshd 监狱状态,fail2ban-client status 可查看所有监控规则及已封禁IP列表。如要测试,可尝试多次用错误密码SSH登录,然后 fail2ban-client status sshd 会显示对应IP已被禁。在封禁时,该IP将无法建立SSH连接(提示连接被拒绝)。解封某IP可用 sudo fail2ban-client set sshd unbanip <IP>
Fail2Ban 默认已覆盖 SSH。也可以针对 Samba 等服务配置过滤规则(不过内网环境通常SSH是主要风险)。启用Fail2Ban后,即使有人不断尝试密码,达到一定次数就会被自动封锁,有效保护服务器免受暴力破解。

6.3 UFW 防火墙设置

防火墙可以控制进出流量,建议配置防火墙只开放必要端口。Ubuntu 系有UFW(Uncomplicated Firewall)工具简化管理:

  1. 安装并启用 UFW:

Mint可能已附带 UFW,没有则安装:sudo apt install ufw -y。然后默认先全部拒绝入站:

sudo ufw default deny incoming
sudo ufw default allow outgoing

这设置防火墙默认策略为拒绝外部进入、允许本机出去。

  1. 允许必要端口:

根据上述配置,需要开放SSH、Samba等端口:

  1. SSH (22或修改的端口):

sudo ufw allow 22/tcp
如果改了端口,替换22为新端口号。

  1. Samba 文件共享:

Samba主要用到 TCP 445 端口(另有139,UDP 137/138用于名字解析)。简便起见,可以使用应用规则:

sudo ufw allow Samba

这会开放 CIFS 所需端口。如果想更严谨,只允许内网访问,可限定来源:

sudo ufw allow from 192.168.0.0/24 to any port 445 proto tcp
sudo ufw allow from 192.168.0.0/24 to any port 139 proto tcp
sudo ufw allow from 192.168.0.0/24 to any port 137 proto udp
sudo ufw allow from 192.168.0.0/24 to any port 138 proto udp

这样仅本网段能访问 Samba 服务。

  1. Webmin (10000端口,若安装了的话):

sudo ufw allow 10000/tcp
同样可限定仅内网IP可访问以增强安全。
根据实际需要,还可以开放HTTP(80)等其他服务端口。尽可能少开端口,未用的服务就不要开放。

  • 启动防火墙: 设置完规则后启用:
sudo ufw enable

防火墙即刻生效并开机自启(在输入y确认前请确保SSH规则已添加,否则如果通过SSH配置会被自己锁在外面)。用sudo ufw status可以查看当前规则列表,确认需要的端口是 ALLOW 状态。
防火墙配置完成后,这台机器将拒绝除允许清单之外的大部分入站连接。在实际部署中,这为服务器增加了一道保护墙。例如,互联网上的扫描者即使知道IP,由于有防火墙,SSH 和 Samba 等端口也不会对陌生IP开放。

6.4 安装 Webmin(可选)

Webmin 是一个流行的基于 Web 的系统管理工具,提供图形化界面来配置和监控 Linux 服务器。通过 Webmin,可以在浏览器中执行诸如用户管理、服务控制、查看日志、配置 Samba/SSH 等操作,非常直观。对于不习惯命令行的用户,Webmin 是很好的辅助。以下是安装步骤:
1.添加 Webmin 官方仓库: Webmin 不在默认APT源中,需要手动添加其仓库和密钥。打开终端,执行:

echo "deb https://download.webmin.com/download/repository sarge contrib" | sudo tee /etc/apt/sources.list.d/webmin.list
wget -qO- https://download.webmin.com/jcameron-key.asc | sudo gpg --dearmor -o /usr/share/keyrings/webmin.gpg
sudo apt update

第一行添加 Webmin 软件源;第二行导入 Webmin 的签名密钥;第三行更新软件列表。
2.安装 Webmin:

sudo apt install -y webmin

软件包大小约几十MB,很快即可安装完成。安装完毕后,Webmin 会自动作为服务启动(端口默认为10000)。可以运行 sudo systemctl status webmin 查看其状态是否为 active。[26]
3.开放防火墙端口: 如果启用了 UFW 防火墙且尚未允许10000端口,请执行:

sudo ufw allow 10000/tcp

这样局域网内其它电脑才能访问 Webmin 界面。
4.访问 Webmin 界面: 在内网另一台电脑的浏览器中,访问: https://192.168.0.11:10000/。注意使用 https 协议,第一次可能会提示证书不被信任,这是因为Webmin使用自签名证书。可以安全地忽略警告并继续访问(选“高级 -> 接受风险继续”)。页面加载后,会出现 Webmin 的登录界面。默认用系统的root 用户或具备sudo权限的用户登录(Mint 默认禁用了root帐号,可以用安装时创建的管理用户账户登录)。输入用户名和密码(就是平时用于 sudo 的凭据),成功的话即可看到 Webmin 的主页。
5.使用 Webmin: Webmin 左侧菜单罗列了各项系统功能模块,比如“网络”、“系统”、“服务器”、“硬件”等。可以通过这些模块进行大部分日常管理。例如:在“Webmin -> Webmin配置 -> 更改语言和主题”中可以将界面语言切换为中文;在“系统 -> 用户和组”中图形化地添加用户;在“服务器 -> Samba Windows 文件共享”中管理 Samba 用户/共享等。Webmin 界面直观,鼠标点选即可完成操作,非常方便。
6.安全加固 Webmin: Webmin本身通过HTTPS提供访问,但为了安全考虑,可以:
7.修改默认端口: 默认10000端口众所周知,可以在 Webmin 配置中更改端口号以降低被扫描风险。例如改为 10100,然后执行 sudo systemctl restart webmin 应用。记得同时修改防火墙允许的新端口。
8.设置双因素认证: Webmin 支持基于 Google Authenticator 的二步验证。可以在“Webmin -> Webmin配置 -> 双重认证”中启用,按照提示使用手机应用扫描二维码绑定,提高登录安全[29]。
9.限制访问来源: 如果只有管理员个人需要用Webmin,可以在防火墙中将10000端口限制为某IP可访问,或者在 Webmin设置中配置允许的主机IP。
此外,生产环境建议搭配 Fail2Ban 针对 Webmin 登陆进行保护,并定期更新 Webmin 至最新版本。
1.启动与管理: Webmin 安装后即随系统自启。如果需要,可以用命令控制:

sudo systemctl restart webmin
sudo systemctl enable webmin
sudo systemctl disable webmin

来启动、开机启用或停用 Webmin 服务。Webmin 的配置文件保存在 /etc/webmin,若进行备份迁移,可打包此目录保存。
通过 Webmin,可以在图形界面下完成许多以前需要命令行的管理工作。例如查看磁盘分区使用情况、安装卸载软件包、监控系统运行资源等,非常适合初学者管理服务器。不过请务必妥善保管好 Webmin 的访问权限,不要对外网开放给未经授权的人。

戴尔电脑已经成功安装了 Linux 系统,并配置了关键的服务和安全措施。从系统选择、安装,到 MySQL
数据恢复,再到网络设置、文件共享以及远程运维,本指南涵盖了一个新服务器上线所需的主要步骤。现在拥有了一台功能完善的 Linux
服务器:可以通过固定 IP 提供稳定服务,通过 Samba 让内网用户方便地共享文件,通过 SSH 和 Webmin
进行远程管理;同时借助防火墙和 Fail2Ban 等确保了基本的安全性。
在日常使用中,别忘了定期更新系统(包括安全补丁)、备份重要数据,以及监控系统运行状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/916369.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/916369.shtml
英文地址,请注明出处:http://en.pswp.cn/news/916369.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

昇思学习营-DeepSeek-R1-Distill-Qwen-1.5B 模型LoRA微调学习心得

LoRA微调&#xff1a;加入参数式微调冻结原始网络参数&#xff0c;对Attention层中QKV等添加旁支&#xff0c;包含两个低维度的矩阵A和矩阵B&#xff0c;微调过程中仅更新A、B 矩阵效果&#xff1a;训练参数被大幅降低&#xff0c;资源消耗较低。对attention的参数加入如下图所…

彩色转灰度的核心逻辑:三种经典方法及原理对比

灰度实验将彩色图像转换为灰度图像的过程称为灰度化&#xff0c;这种做法在图像处理和计算机视觉领域非常常见。灰度图与彩色图最大的不同就是&#xff1a;彩色图是由R、G、B三个通道组成&#xff0c;而灰度图只有一个通道&#xff0c;也称为单通道图像&#xff0c;所以彩色图转…

Spring Boot 项目启动自动执行逻辑的最佳实践:掌握 CommandLineRunner

前言 Spring Boot 启动阶段,总有些操作迫不及待冲在前线:配置要加载,数据要准备,日志要抢首发,仿佛个个争当“启动 MVP”。如果你也想让项目一启动就自动开工,少写点手动触发的“苦力逻辑”,那 CommandLineRunner 就是你的得力助手。它像那个永远第一个打卡的同事,不喝…

高可用集群KEEPALIVED的详细部署

一.高可用集群 1.1 集群类型 LB&#xff1a;Load Balance 负载均衡 LVS/HAProxy/nginx&#xff08;http/upstream, stream/upstream&#xff09; HA&#xff1a;High Availability 高可用集群 数据库、Redis SPoF: Single Point of Failure&#xff0c;解决单点故障 HPC&#x…

[论文阅读] 人工智能 + 软件工程 | NoCode-bench:评估LLM无代码功能添加能力的新基准

NoCode-bench&#xff1a;评估LLM无代码功能添加能力的新基准 论文&#xff1a;NoCode-bench: A Benchmark for Evaluating Natural Language-Driven Feature Addition 研究背景&#xff1a;当AI尝试给软件"加新功能"&#xff0c;我们需要一张靠谱的"考卷"…

【Git知识】Git 常用知识集合之基础--分支系统与 Tag 标签机制

&#x1f9f0; Git 常用知识集合Git 是程序员的“时间机器”。这份手册帮你从入门到精通&#xff0c;把 Git 玩明白。1️⃣ Git 基础操作流程 &#x1f4cc; 三步走流程&#xff1a;添加 → 提交 → 推送 git add . # 把所有修改加入暂存区 git commit -m …

深入解析 Spark:关键问题与答案汇总

在大数据处理领域&#xff0c;Spark 凭借其高效的计算能力和丰富的功能&#xff0c;成为了众多开发者和企业的首选框架。然而&#xff0c;在使用 Spark 的过程中&#xff0c;我们会遇到各种各样的问题&#xff0c;从性能优化到算子使用等。本文将围绕 Spark 的一些核心问题进行…

Python-初学openCV——对openCV的简单使用

一、概述1、简单介绍OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉库&#xff0c;旨在为实时图像处理提供强大的功能。它由Intel开发&#xff0c;现由开源社区维护。OpenCV 提供了跨平台的解决方案&#xff0c;支持 Windows、Linu…

去中心化时代的通信革命:briefing与cpolar技术融合带来的安全范式革新

文章目录前言1.关于briefing2.本地部署briefing3.使用briefing4.cpolar内网穿透工具安装5.创建远程连接公网地址6.固定briefing公网地址前言 数字协作本该是提升效率的过程&#xff0c;却被这些数据管理问题不断困扰&#xff1a;平台条款中的监控声明、跨网络环境的接入障碍、…

GitHub新手生存指南:AI项目版本控制与协作实战

点击 “AladdinEdu&#xff0c;同学们用得起的【H卡】算力平台”&#xff0c;H卡级别算力&#xff0c;按量计费&#xff0c;灵活弹性&#xff0c;顶级配置&#xff0c;学生专属优惠。 代码仓库创建 分支管理 PR提交 开源项目复现 读者收获&#xff1a;掌握团队开发必备技能…

Axios封装以及添加拦截器

在前端开发中&#xff0c;http请求层的封装可以极大提升代码的复用性和可维护性&#xff0c;本文将完整的用axios封装接口请求&#xff0c;配置请求与响应拦截器&#xff0c;封装统一的请求方法全过程。封装的目的和思路在项目直接用axios发送请求当然没问题&#xff0c;但是如…

C语言中奇技淫巧04-仅对指定函数启用编译优化

相信很多人使用GCC编译代码时&#xff0c;都会接触到gcc -O0/1/2/3/s&#xff0c;知道它可以对工程进行全局优化。 事实上&#xff0c;除了全局优化外&#xff0c;使用GCC扩展方式&#xff0c;我们还可以仅对部分关键函数实施差异化编译优化。 在GCC编译器中&#xff0c;attrib…

HTML Style 对象深度解析:从基础到高级应用

一、Style 对象的核心概念定义与作用 Style 对象是 HTML DOM 中用于操作元素内联样式的接口&#xff0c;通过 element.style 访问。它允许动态修改元素的 CSS 属性&#xff0c;但仅能直接影响内联样式&#xff08;即通过 style 属性直接写在标签中的样式&#xff09;。与外部样…

【C++】定义常量

在 C 中&#xff0c;有两种简单的定义常量的方式&#xff1a; 使用 #define 预处理器。使用 const 关键字。 #define 预处理器 #include <iostream> using namespace std;#define LENGTH 10 #define WIDTH 5 #define NEWLINE \nint main() {int area; area LENGTH …

基于遗传算法的多无人车协同侦察与安全保护策略优化

基于遗传算法的多无人车协同侦察与安全保护策略优化 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff0c;觉得好请收藏。点击跳转到网站。 1. 引言 1.1 研究背景与意义 随着无人系统技术的快速发…

python面向对象编程详解

面向对象编程&#xff08;OOP&#xff09;是一种以对象为核心的编程范式。Python全面支持OOP&#xff0c;主要包含以下核心概念&#xff1a;一、类与对象1.类(Class)类是创建对象的模板或蓝图&#xff0c;它定义了对象的属性和方法。class Dog:# 类属性&#xff08;所有实例共享…

快速入门Socket编程——封装一套便捷的Socket编程——导论

快速入门Socket编程——封装一套便捷的Socket编程——导论 前言 ​ 这里是笔者打算做的Socket编程的第二部分&#xff0c;也就是核心的讨论我们Socket编程本身。 导论 ​ 我们知道&#xff0c;一个经典的服务器套接字的处理流程是如下的&#xff1a; 创建一个指定传输层和网络层…

【Mermaid 离线工具】Mermaid 流程图生成器 - 高清PNG输出,一键生成专业级流程图!

文章目录 Mermaid 流程图生成器(离线版本):高效绘图,离线也能玩转专业可视化 一、Mermaid:文本绘图的 “魔法语法” 二、离线版生成器:功能与优势解析 (一)离线可用,场景更灵活 (二)操作流程:简单五步,产出专业图表 (三)界面设计:简洁直观,降低使用门槛 三、应…

haproxy原理及实战部署

一、负载均衡 负载均衡是网络架构和分布式系统中至关重要的技术&#xff0c;其核心作用是将大量的并发请求或数据流量合理分配到多个服务器&#xff08;或其他资源节点&#xff09;上&#xff0c;从而解决单节点压力过大、资源利用率低、系统稳定性差等问题。 作用1. 提高系统吞…

jwt 在net9.0中做身份认证

一、新建net9.0项目WebApplication1&#xff0c;安装包 <ItemGroup><PackageReference Include"Microsoft.AspNetCore.Authentication.JwtBearer" Version"9.0.7" /><PackageReference Include"Swashbuckle.AspNetCore" Version&…