|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1. Slackware Linux简介
Slackware Linux是现存最古老的Linux发行版之一,由Patrick Volkerding于1993年创建并维护。作为最早的Linux发行版,Slackware以其稳定性、简洁性和遵循Unix传统而闻名。它被设计为一个简单、稳定且安全的操作系统,适合那些希望深入了解Linux系统内部工作原理的用户。
1.1 Slackware Linux的特点
• 稳定性:Slackware以其卓越的稳定性而著称,系统更新谨慎且经过充分测试。
• 简洁性:系统尽量保持原始的Unix风格,不添加不必要的修改和抽象层。
• 灵活性:用户可以完全控制系统的各个方面,从内核配置到系统服务。
• 传统性:Slackware坚持使用传统的init系统(虽然现在也支持systemd),保留了Unix的经典设计理念。
• 文档完整:Slackware提供了详尽的文档,帮助用户理解系统的各个方面。
1.2 Slackware Linux的历史
Slackware Linux诞生于1993年,由Patrick Volkerding从SLS Linux(Softlanding Linux System)发展而来。它是第一个获得广泛认可的Linux发行版,为后来的许多发行版提供了灵感和基础。多年来,Slackware一直保持着其核心设计理念,尽管随着技术的发展也进行了一些必要的更新和改进。
2. 免费获取Slackware Linux中文教程PDF
2.1 官方资源
Slackware Linux的官方网站(https://www.slackware.com/)提供了大量的文档和资源,包括安装指南、用户手册和FAQ等。虽然官方文档主要是英文的,但它们是学习Slackware的最权威资源。
要获取Slackware Linux的官方文档,可以访问:
• https://docs.slackware.com/- Slackware文档 Wiki
• https://www.slackware.com/releases/- 各版本的发布说明和安装指南
2.2 中文资源
对于中文用户,以下是一些可以获取Slackware Linux中文教程的途径:
1. Linux中国社区:Linux中国社区(https://linux.cn/)经常翻译和发布有关各种Linux发行版的教程,包括Slackware。
2. Slackware中文论坛:有一些中文论坛专门讨论Slackware,如”LinuxFans”和”ChinaUnix”的Slackware板块,用户可以在这些论坛找到教程和讨论。
3. 电子书和PDF资源:在GitHub上搜索”Slackware中文教程”,可以找到一些由社区成员创建和维护的中文文档。一些在线电子书平台,如GitBook,可能有用户上传的Slackware中文教程。通过搜索引擎搜索”Slackware Linux中文教程 PDF”,可以找到一些可下载的资源。
4. 在GitHub上搜索”Slackware中文教程”,可以找到一些由社区成员创建和维护的中文文档。
5. 一些在线电子书平台,如GitBook,可能有用户上传的Slackware中文教程。
6. 通过搜索引擎搜索”Slackware Linux中文教程 PDF”,可以找到一些可下载的资源。
7. 在线教程网站:菜鸟教程(https://www.runoob.com/)等网站可能提供Slackware的基础教程。CSDN、博客园等中文技术博客平台也有许多关于Slackware的文章和教程。
8. 菜鸟教程(https://www.runoob.com/)等网站可能提供Slackware的基础教程。
9. CSDN、博客园等中文技术博客平台也有许多关于Slackware的文章和教程。
Linux中国社区:Linux中国社区(https://linux.cn/)经常翻译和发布有关各种Linux发行版的教程,包括Slackware。
Slackware中文论坛:有一些中文论坛专门讨论Slackware,如”LinuxFans”和”ChinaUnix”的Slackware板块,用户可以在这些论坛找到教程和讨论。
电子书和PDF资源:
• 在GitHub上搜索”Slackware中文教程”,可以找到一些由社区成员创建和维护的中文文档。
• 一些在线电子书平台,如GitBook,可能有用户上传的Slackware中文教程。
• 通过搜索引擎搜索”Slackware Linux中文教程 PDF”,可以找到一些可下载的资源。
在线教程网站:
• 菜鸟教程(https://www.runoob.com/)等网站可能提供Slackware的基础教程。
• CSDN、博客园等中文技术博客平台也有许多关于Slackware的文章和教程。
2.3 下载和保存教程为PDF
如果你找到了在线的Slackware中文教程但需要PDF版本,可以使用以下方法将其转换为PDF:
1. 浏览器打印功能:在浏览器中打开教程页面按Ctrl+P(Windows/Linux)或Cmd+P(Mac)打开打印对话框选择”保存为PDF”作为打印机点击保存按钮
2. 在浏览器中打开教程页面
3. 按Ctrl+P(Windows/Linux)或Cmd+P(Mac)打开打印对话框
4. 选择”保存为PDF”作为打印机
5. 点击保存按钮
6. 在线转换工具:使用如Web2PDF、PDFCrowd等在线服务将网页转换为PDF只需输入网页URL,工具会生成可下载的PDF文件
7. 使用如Web2PDF、PDFCrowd等在线服务将网页转换为PDF
8. 只需输入网页URL,工具会生成可下载的PDF文件
9. 专业PDF工具:使用Adobe Acrobat等专业软件可以将网页或文档转换为PDF这些工具通常提供更多的自定义选项,如页面布局、书签等
10. 使用Adobe Acrobat等专业软件可以将网页或文档转换为PDF
11. 这些工具通常提供更多的自定义选项,如页面布局、书签等
浏览器打印功能:
• 在浏览器中打开教程页面
• 按Ctrl+P(Windows/Linux)或Cmd+P(Mac)打开打印对话框
• 选择”保存为PDF”作为打印机
• 点击保存按钮
在线转换工具:
• 使用如Web2PDF、PDFCrowd等在线服务将网页转换为PDF
• 只需输入网页URL,工具会生成可下载的PDF文件
专业PDF工具:
• 使用Adobe Acrobat等专业软件可以将网页或文档转换为PDF
• 这些工具通常提供更多的自定义选项,如页面布局、书签等
3. Slackware Linux基础配置
3.1 系统安装
Slackware Linux的安装过程相对简洁,但需要用户对Linux系统有一定的了解。以下是基本的安装步骤:
1. 准备安装介质:从官方网站下载Slackware的ISO镜像创建启动U盘或刻录DVD
2. 从官方网站下载Slackware的ISO镜像
3. 创建启动U盘或刻录DVD
4. 启动安装程序:从安装介质启动计算机在启动提示符下按Enter键启动安装程序
5. 从安装介质启动计算机
6. 在启动提示符下按Enter键启动安装程序
7. 分区设置:使用fdisk或cfdisk工具进行硬盘分区典型的分区方案包括:/boot分区(约100MB)/根分区(至少10GB)/home分区(剩余空间)swap交换分区(通常是内存大小的1-2倍)
8. 使用fdisk或cfdisk工具进行硬盘分区
9. 典型的分区方案包括:/boot分区(约100MB)/根分区(至少10GB)/home分区(剩余空间)swap交换分区(通常是内存大小的1-2倍)
10. /boot分区(约100MB)
11. /根分区(至少10GB)
12. /home分区(剩余空间)
13. swap交换分区(通常是内存大小的1-2倍)
14. 软件包选择:Slackware提供了多个软件包系列,如A(基础系统)、AP(应用程序)、D(开发工具)等初学者可以选择完整安装,有经验的用户可以根据需要选择特定软件包
15. Slackware提供了多个软件包系列,如A(基础系统)、AP(应用程序)、D(开发工具)等
16. 初学者可以选择完整安装,有经验的用户可以根据需要选择特定软件包
17. 配置系统:设置网络配置配置启动加载器(通常是LILO)设置root密码和创建用户账户
18. 设置网络配置
19. 配置启动加载器(通常是LILO)
20. 设置root密码和创建用户账户
21. 完成安装:退出安装程序并重新启动系统
22. 退出安装程序并重新启动系统
准备安装介质:
• 从官方网站下载Slackware的ISO镜像
• 创建启动U盘或刻录DVD
启动安装程序:
• 从安装介质启动计算机
• 在启动提示符下按Enter键启动安装程序
分区设置:
• 使用fdisk或cfdisk工具进行硬盘分区
• 典型的分区方案包括:/boot分区(约100MB)/根分区(至少10GB)/home分区(剩余空间)swap交换分区(通常是内存大小的1-2倍)
• /boot分区(约100MB)
• /根分区(至少10GB)
• /home分区(剩余空间)
• swap交换分区(通常是内存大小的1-2倍)
• /boot分区(约100MB)
• /根分区(至少10GB)
• /home分区(剩余空间)
• swap交换分区(通常是内存大小的1-2倍)
软件包选择:
• Slackware提供了多个软件包系列,如A(基础系统)、AP(应用程序)、D(开发工具)等
• 初学者可以选择完整安装,有经验的用户可以根据需要选择特定软件包
配置系统:
• 设置网络配置
• 配置启动加载器(通常是LILO)
• 设置root密码和创建用户账户
完成安装:
• 退出安装程序并重新启动系统
3.2 基本系统配置
Slackware Linux的网络配置主要通过编辑文本文件完成:
1. - 配置网络接口:
- 编辑/etc/rc.d/rc.inet1.conf文件,设置IP地址、子网掩码、网关等:# Config information for eth0:
- IPADDR[0]="192.168.1.100"
- NETMASK[0]="255.255.255.0"
- USE_DHCP[0]=""
- DHCP_HOSTNAME[0]=""
复制代码 2. 设置DNS:
编辑/etc/resolv.conf文件,添加DNS服务器:nameserver 8.8.8.8
nameserver 8.8.4.4
3. 设置主机名:
编辑/etc/HOSTNAME文件,添加主机名:myslackbox.example.com
4. 启动网络服务:
执行以下命令使网络配置生效:chmod +x /etc/rc.d/rc.inet1
/etc/rc.d/rc.inet1 start
配置网络接口:
编辑/etc/rc.d/rc.inet1.conf文件,设置IP地址、子网掩码、网关等:
- # Config information for eth0:
- IPADDR[0]="192.168.1.100"
- NETMASK[0]="255.255.255.0"
- USE_DHCP[0]=""
- DHCP_HOSTNAME[0]=""
复制代码
设置DNS:
编辑/etc/resolv.conf文件,添加DNS服务器:
- nameserver 8.8.8.8
- nameserver 8.8.4.4
复制代码
设置主机名:
编辑/etc/HOSTNAME文件,添加主机名:
启动网络服务:
执行以下命令使网络配置生效:
- chmod +x /etc/rc.d/rc.inet1
- /etc/rc.d/rc.inet1 start
复制代码
Slackware使用简单的软件包管理系统,主要通过pkgtool、installpkg、removepkg和upgradepkg等工具管理软件包。
1. 安装软件包:installpkg package-name.txz
2. 删除软件包:removepkg package-name
3. 升级软件包:upgradepkg package-new-version.txz
4. 使用pkgtool:pkgtool是一个基于菜单的工具,可以用来安装、删除和查看软件包:pkgtool
安装软件包:
- installpkg package-name.txz
复制代码
删除软件包:
升级软件包:
- upgradepkg package-new-version.txz
复制代码
使用pkgtool:pkgtool是一个基于菜单的工具,可以用来安装、删除和查看软件包:
Slackware使用传统的init系统管理服务,服务脚本位于/etc/rc.d/目录下。
1. 启动服务:chmod +x /etc/rc.d/rc.service_name
/etc/rc.d/rc.service_name start
2. 停止服务:/etc/rc.d/rc.service_name stop
3. 重启服务:/etc/rc.d/rc.service_name restart
4. 设置服务开机启动:chmod +x /etc/rc.d/rc.service_name
5. 禁止服务开机启动:chmod -x /etc/rc.d/rc.service_name
启动服务:
- chmod +x /etc/rc.d/rc.service_name
- /etc/rc.d/rc.service_name start
复制代码
停止服务:
- /etc/rc.d/rc.service_name stop
复制代码
重启服务:
- /etc/rc.d/rc.service_name restart
复制代码
设置服务开机启动:
- chmod +x /etc/rc.d/rc.service_name
复制代码
禁止服务开机启动:
- chmod -x /etc/rc.d/rc.service_name
复制代码
3.3 桌面环境配置
Slackware支持多种桌面环境,包括KDE Plasma、Xfce、LXDE等。以下是配置Xfce桌面环境的步骤:
1. 安装Xfce:
确保已安装X和Xfce软件包系列,可以使用pkgtool检查并安装。
2. 配置显示管理器:
编辑/etc/rc.d/rc.4文件,选择Xfce作为默认桌面环境。
3. 启动X:
使用以下命令启动图形界面:startx
4. 配置自动登录(可选):
编辑/etc/inittab文件,修改运行级别为4,并配置自动登录。
5. 自定义桌面:
使用Xfce的设置管理器自定义桌面主题、面板、背景等。
安装Xfce:
确保已安装X和Xfce软件包系列,可以使用pkgtool检查并安装。
配置显示管理器:
编辑/etc/rc.d/rc.4文件,选择Xfce作为默认桌面环境。
启动X:
使用以下命令启动图形界面:
配置自动登录(可选):
编辑/etc/inittab文件,修改运行级别为4,并配置自动登录。
自定义桌面:
使用Xfce的设置管理器自定义桌面主题、面板、背景等。
4. Slackware Linux高级管理
4.1 内核编译与优化
Slackware允许用户自定义编译内核以优化系统性能和硬件支持。
1. 准备编译环境:# 安装必要的开发工具
slackpkg install kernel-source
slackpkg install gcc make ncurses
2. - 获取内核源码:cd /usr/src
- wget https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.x.x.tar.xz
- tar -xvf linux-5.x.x.tar.xz
- cd linux-5.x.x
复制代码 3. 配置内核:# 使用当前内核配置作为基础
cp /boot/config .config
make menuconfig
4. - 编译和安装内核:make -j$(nproc)
- make modules_install
- cp arch/x86/boot/bzImage /boot/vmlinuz-custom
- cp System.map /boot/System.map-custom
- cp .config /boot/config-custom
复制代码 5. 配置引导加载器:
编辑/etc/lilo.conf,添加新内核的条目:image = /boot/vmlinuz-custom
root = /dev/sda1
label = Slackware-Custom
read-only然后运行lilo更新引导加载器。
准备编译环境:
- # 安装必要的开发工具
- slackpkg install kernel-source
- slackpkg install gcc make ncurses
复制代码
获取内核源码:
- cd /usr/src
- wget https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.x.x.tar.xz
- tar -xvf linux-5.x.x.tar.xz
- cd linux-5.x.x
复制代码
配置内核:
- # 使用当前内核配置作为基础
- cp /boot/config .config
- make menuconfig
复制代码
编译和安装内核:
- make -j$(nproc)
- make modules_install
- cp arch/x86/boot/bzImage /boot/vmlinuz-custom
- cp System.map /boot/System.map-custom
- cp .config /boot/config-custom
复制代码
配置引导加载器:
编辑/etc/lilo.conf,添加新内核的条目:
- image = /boot/vmlinuz-custom
- root = /dev/sda1
- label = Slackware-Custom
- read-only
复制代码
然后运行lilo更新引导加载器。
4.2 系统安全加固
Slackware默认已经相当安全,但可以采取额外措施进一步增强系统安全性。
1. 防火墙配置:
Slackware使用iptables作为防火墙工具。创建/etc/rc.d/rc.firewall文件:
“`bash
#!/bin/sh清除现有规则iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
防火墙配置:
Slackware使用iptables作为防火墙工具。创建/etc/rc.d/rc.firewall文件:
“`bash
#!/bin/sh
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
# 默认策略
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# 允许本地回环
iptables -A INPUT -i lo -j ACCEPT
# 允许已建立的连接
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
# 允许SSH
iptables -A INPUT -p tcp –dport 22 -j ACCEPT
# 允许HTTP和HTTPS
iptables -A INPUT -p tcp –dport 80 -j ACCEPT
iptables -A INPUT -p tcp –dport 443 -j ACCEPT
- 然后使脚本可执行并启动:
- ```bash
- chmod +x /etc/rc.d/rc.firewall
- /etc/rc.d/rc.firewall
复制代码
1. SSH安全配置:
编辑/etc/ssh/sshd_config文件:
“`禁用root登录PermitRootLogin no
SSH安全配置:
编辑/etc/ssh/sshd_config文件:
“`
PermitRootLogin no
# 更改默认端口
Port 2222
# 仅允许特定用户
AllowUsers user1 user2
# 禁用密码认证,使用密钥认证
PasswordAuthentication no
PubkeyAuthentication yes
- 重启SSH服务:
- ```bash
- /etc/rc.d/rc.sshd restart
复制代码
1. 系统更新与补丁:
“`bash更新软件包列表slackpkg update
系统更新与补丁:
“`bash
slackpkg update
# 检查可用更新
slackpkg check-updates
# 安装所有更新
slackpkg upgrade-all
- 4. **文件系统安全**:
- ```bash
- # 查找SUID/SGID文件
- find / -type f \( -perm -4000 -o -perm -2000 \) -ls
-
- # 查找全局可写文件
- find / -type f -perm -2 -ls
-
- # 查找没有所有者的文件
- find / -nouser -o -nogroup
复制代码
4.3 性能监控与优化
1. 系统监控工具:
“`bash安装监控工具slackpkg install htop iotop sysstat
系统监控工具:
“`bash
slackpkg install htop iotop sysstat
# 使用htop监控系统资源
htop
# 使用iotop监控磁盘I/O
iotop
# 使用sar收集系统性能数据
sar -u 1 5 # CPU使用率
sar -r 1 5 # 内存使用率
sar -b 1 5 # I/O传输率
- 2. **系统日志分析**:
- ```bash
- # 查看系统日志
- tail -f /var/log/syslog
- tail -f /var/log/messages
-
- # 查看认证日志
- tail -f /var/log/auth.log
-
- # 使用logwatch分析日志
- slackpkg install logwatch
- logwatch --detail High --mailto your@email.com --range today
复制代码
1. 文件系统优化:
“`bash检查文件系统fsck -t ext4 /dev/sda1
文件系统优化:
“`bash
fsck -t ext4 /dev/sda1
# 调整文件系统参数
tune2fs -o journal_data_writeback /dev/sda1
tune2fs -O ^has_journal /dev/sda1
# 重新创建日志(可选)
tune2fs -j /dev/sda1
- 4. **内存管理**:
- ```bash
- # 查看内存使用情况
- free -m
-
- # 查看详细的内存使用情况
- cat /proc/meminfo
-
- # 调整swappiness参数(0-100)
- echo 10 > /proc/sys/vm/swappiness
-
- # 清理页面缓存
- echo 1 > /proc/sys/vm/drop_caches
复制代码
4.4 网络服务配置
1. Web服务器配置(Apache):
“`bash安装Apacheslackpkg install httpd
Web服务器配置(Apache):
“`bash
slackpkg install httpd
# 启动Apache服务
chmod +x /etc/rc.d/rc.httpd
/etc/rc.d/rc.httpd start
# 配置虚拟主机
编辑/etc/httpd/httpd.conf,添加:
- <VirtualHost *:80>
- ServerName www.example.com
- DocumentRoot /var/www/htdocs/example
- ErrorLog /var/log/httpd/example-error.log
- CustomLog /var/log/httpd/example-access.log combined
- </VirtualHost>
复制代码
# 重启Apache服务
/etc/rc.d/rc.httpd restart
- 2. **数据库服务器配置(MariaDB/MySQL)**:
- ```bash
- # 安装MariaDB
- slackpkg install mariadb
-
- # 初始化数据库
- mysql_install_db --user=mysql
-
- # 启动MariaDB服务
- chmod +x /etc/rc.d/rc.mysqld
- /etc/rc.d/rc.mysqld start
-
- # 安全设置
- mysql_secure_installation
-
- # 创建数据库和用户
- mysql -u root -p
- CREATE DATABASE mydb;
- CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
- GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
- FLUSH PRIVILEGES;
- EXIT;
复制代码
1. FTP服务器配置(vsftpd):
“`bash安装vsftpdslackpkg install vsftpd
FTP服务器配置(vsftpd):
“`bash
slackpkg install vsftpd
# 配置vsftpd
编辑/etc/vsftpd.conf:
- anonymous_enable=NO
- local_enable=YES
- write_enable=YES
- chroot_local_user=YES
- allow_writeable_chroot=YES
- pasv_min_port=40000
- pasv_max_port=50000
复制代码
# 启动vsftpd服务
chmod +x /etc/rc.d/rc.vsftpd
/etc/rc.d/rc.vsftpd start
- 4. **邮件服务器配置(Postfix)**:
- ```bash
- # 安装Postfix
- slackpkg install postfix
-
- # 配置Postfix
- 编辑/etc/postfix/main.cf:
复制代码
myhostname = mail.example.com
mydomain = example.com
myorigin =\(mydomain
inet_interfaces = all
mydestination = \)myhostname, localhost.\(mydomain, localhost, \)mydomain
mynetworks = 192.168.1.0/24, 127.0.0.0/8
home_mailbox = Maildir/
- # 启动Postfix服务
- chmod +x /etc/rc.d/rc.postfix
- /etc/rc.d/rc.postfix start
复制代码
5. 实际案例和操作技巧
5.1 案例一:搭建LAMP服务器
以下是在Slackware Linux上搭建LAMP(Linux + Apache + MariaDB + PHP)服务器的完整步骤:
1. 安装必要的软件包:
“`bash更新软件包列表slackpkg update
安装必要的软件包:
“`bash
slackpkg update
# 安装Apache
slackpkg install httpd
# 安装MariaDB
slackpkg install mariadb mariadb-client
# 安装PHP
slackpkg install php php-mysql
- 2. **配置Apache**:
- ```bash
- # 启动Apache服务
- chmod +x /etc/rc.d/rc.httpd
- /etc/rc.d/rc.httpd start
-
- # 配置Apache支持PHP
- 编辑/etc/httpd/httpd.conf,确保以下行未被注释:
复制代码
LoadModule php7_module /usr/lib/httpd/modules/libphp7.so
AddType application/x-httpd-php .php
DirectoryIndex index.html index.php
- # 重启Apache服务
- /etc/rc.d/rc.httpd restart
复制代码
1. 配置MariaDB:
“`bash初始化数据库mysql_install_db –user=mysql
配置MariaDB:
“`bash
mysql_install_db –user=mysql
# 启动MariaDB服务
chmod +x /etc/rc.d/rc.mysqld
/etc/rc.d/rc.mysqld start
# 安全设置
mysql_secure_installation
- 4. **测试PHP**:
- ```bash
- # 创建测试文件
- echo "<?php phpinfo(); ?>" > /var/www/htdocs/phpinfo.php
-
- # 在浏览器中访问 http://your-server-ip/phpinfo.php
复制代码
1. 创建数据库和用户:
“`bash登录MariaDBmysql -u root -p
创建数据库和用户:
“`bash
mysql -u root -p
# 创建数据库
CREATE DATABASE mywebdb;
# 创建用户并授权
CREATE USER ‘webuser’@‘localhost’ IDENTIFIED BY ‘password’;
GRANT ALL PRIVILEGES ON mywebdb.* TO ‘webuser’@‘localhost’;
FLUSH PRIVILEGES;
EXIT;
- 6. **部署PHP应用**:
- ```bash
- # 下载WordPress作为示例
- cd /tmp
- wget https://wordpress.org/latest.tar.gz
- tar -xvf latest.tar.gz
- cp -r wordpress/* /var/www/htdocs/
-
- # 设置权限
- chown -R nobody:nobody /var/www/htdocs/
- chmod -R 755 /var/www/htdocs/
-
- # 创建wp-config.php
- cd /var/www/htdocs/
- cp wp-config-sample.php wp-config.php
-
- # 编辑wp-config.php,填入数据库信息
复制代码
define(‘DB_NAME’, ‘mywebdb’);
define(‘DB_USER’, ‘webuser’);
define(‘DB_PASSWORD’, ‘password’);
define(‘DB_HOST’, ‘localhost’);
1. 设置服务开机启动:
“`bash设置Apache开机启动chmod +x /etc/rc.d/rc.httpd
设置服务开机启动:
“`bash
chmod +x /etc/rc.d/rc.httpd
# 设置MariaDB开机启动
chmod +x /etc/rc.d/rc.mysqld
- ### 5.2 案例二:配置Slackware作为路由器
- 以下是将Slackware Linux配置为路由器的步骤:
- 1. **启用IP转发**:
- ```bash
- # 编辑/etc/sysctl.conf
- echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
-
- # 立即生效
- sysctl -p
复制代码
1. - 配置网络接口:# 假设eth0连接WAN,eth1连接LAN
- # 配置WAN接口(eth0)
- 编辑/etc/rc.d/rc.inet1.conf:Config information for eth0:IPADDR[0]=””
- NETMASK[0]=“”
- USE_DHCP[0]=“yes”
- DHCP_HOSTNAME[0]=“”
- “`
复制代码
配置网络接口:
- # 假设eth0连接WAN,eth1连接LAN
- # 配置WAN接口(eth0)
- 编辑/etc/rc.d/rc.inet1.conf:
复制代码
IPADDR[0]=””
NETMASK[0]=“”
USE_DHCP[0]=“yes”
DHCP_HOSTNAME[0]=“”
“`
# 配置LAN接口(eth1)
- # Config information for eth1:
- IPADDR[1]="192.168.1.1"
- NETMASK[1]="255.255.255.0"
- USE_DHCP[1]=""
- DHCP_HOSTNAME[1]=""
复制代码
# 重启网络服务
/etc/rc.d/rc.inet1 restart
- 3. **配置iptables(NAT)**:
- ```bash
- # 创建防火墙脚本/etc/rc.d/rc.firewall
- cat > /etc/rc.d/rc.firewall << 'EOF'
- #!/bin/sh
-
- # 清除现有规则
- iptables -F
- iptables -X
- iptables -t nat -F
- iptables -t nat -X
-
- # 默认策略
- iptables -P INPUT DROP
- iptables -P FORWARD DROP
- iptables -P OUTPUT ACCEPT
-
- # 允许本地回环
- iptables -A INPUT -i lo -j ACCEPT
-
- # 允许已建立的连接
- iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
- iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
-
- # 允许LAN访问WAN
- iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
-
- # 启用NAT
- iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
-
- # 允许LAN访问路由器服务
- iptables -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT # SSH
- iptables -A INPUT -i eth1 -p tcp --dport 53 -j ACCEPT # DNS
- iptables -A INPUT -i eth1 -p udp --dport 53 -j ACCEPT # DNS
- iptables -A INPUT -i eth1 -p tcp --dport 67 -j ACCEPT # DHCP
- iptables -A INPUT -i eth1 -p udp --dport 67 -j ACCEPT # DHCP
- EOF
-
- # 使脚本可执行
- chmod +x /etc/rc.d/rc.firewall
-
- # 启动防火墙
- /etc/rc.d/rc.firewall
复制代码
1. 配置DHCP服务器:
“`bash安装DHCP服务器slackpkg install dhcp
配置DHCP服务器:
“`bash
slackpkg install dhcp
# 配置DHCP服务器
编辑/etc/dhcpd.conf:
- option domain-name-servers 8.8.8.8, 8.8.4.4;
- default-lease-time 600;
- max-lease-time 7200;
- authoritative;
-
- subnet 192.168.1.0 netmask 255.255.255.0 {
- range 192.168.1.100 192.168.1.200;
- option routers 192.168.1.1;
- option broadcast-address 192.168.1.255;
- }
复制代码
# 启动DHCP服务器
chmod +x /etc/rc.d/rc.dhcpd
/etc/rc.d/rc.dhcpd start
- 5. **配置DNS缓存**:
- ```bash
- # 安装dnsmasq
- slackpkg install dnsmasq
-
- # 配置dnsmasq
- 编辑/etc/dnsmasq.conf:
复制代码
listen-address=127.0.0.1,192.168.1.1
bind-interfaces
server=8.8.8.8
server=8.8.4.4
- # 启动dnsmasq
- chmod +x /etc/rc.d/rc.dnsmasq
- /etc/rc.d/rc.dnsmasq start
复制代码
1. 设置服务开机启动:
“`bash设置防火墙开机启动chmod +x /etc/rc.d/rc.firewall
设置服务开机启动:
“`bash
chmod +x /etc/rc.d/rc.firewall
# 设置DHCP服务器开机启动
chmod +x /etc/rc.d/rc.dhcpd
# 设置dnsmasq开机启动
chmod +x /etc/rc.d/rc.dnsmasq
- ### 5.3 案例三:创建Slackware软件包
- 以下是如何创建自定义Slackware软件包的步骤:
- 1. **准备开发环境**:
- ```bash
- # 安装必要的工具
- slackpkg install buildtools slackbuild-scripts
复制代码
1. 获取源代码:
“`bash创建工作目录mkdir -p ~/slackbuilds/myapp
cd ~/slackbuilds/myapp
获取源代码:
“`bash
mkdir -p ~/slackbuilds/myapp
cd ~/slackbuilds/myapp
# 下载源代码
wgethttps://example.com/files/myapp-1.0.tar.gz
- 3. **创建SlackBuild脚本**:
- ```bash
- # 创建SlackBuild脚本
- cat > myapp.SlackBuild << 'EOF'
- #!/bin/sh
-
- # 设置变量
- PRGNAM=myapp
- VERSION=${VERSION:-1.0}
- BUILD=${BUILD:-1}
- TAG=${TAG:-_my}
- CWD=$(pwd)
- TMP=${TMP:-/tmp/SBo}
- PKG=$TMP/package-$PRGNAM
- OUTPUT=${OUTPUT:-/tmp}
-
- # 设置架构
- ARCH=$(uname -m)
-
- # 如果TMP目录不存在,则创建
- rm -rf $PKG
- mkdir -p $TMP $PKG $OUTPUT
- cd $TMP
- rm -rf $PRGNAM-$VERSION
- tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
- cd $PRGNAM-$VERSION
-
- # 配置、编译和安装
- chown -R root:root .
- find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-
- # 配置
- CFLAGS="$SLKCFLAGS" \
- CXXFLAGS="$SLKCFLAGS" \
- ./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/man \
- --docdir=/usr/doc/$PRGNAM-$VERSION \
- --build=$ARCH-slackware-linux
-
- # 编译
- make
-
- # 安装到临时目录
- make install DESTDIR=$PKG
-
- # 创建描述文件
- mkdir -p $PKG/install
- cat $CWD/slack-desc > $PKG/install/slack-desc
-
- # 创建软件包
- cd $PKG
- /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
- EOF
-
- # 使脚本可执行
- chmod +x myapp.SlackBuild
复制代码
1. - 创建slack-desc文件:# 创建slack-desc文件
- cat > slack-desc << 'EOF'
- # HOW TO EDIT THIS FILE:
- # The "handy ruler" below makes it easier to edit a package description.
- # Line up the first '|' above the ':' following the base package name, and
- # the '|' on the right side marks the last column you can put a character in.
- # You must make exactly 11 lines for the formatting to be correct. It's also
- # customary to leave one space after the ':' except on otherwise blank lines.
- |-----handy-ruler------------------------------------------------------|
- myapp: myapp (A sample application)
- myapp:
- myapp: This is a description of myapp. It explains what the application does
- myapp: and any important information about it.
- myapp:
- myapp:
- myapp:
- myapp:
- myapp:
- myapp:
- myapp:
- EOF
复制代码 2. 构建软件包:
“`bash运行SlackBuild脚本./myapp.SlackBuild
创建slack-desc文件:
- # 创建slack-desc文件
- cat > slack-desc << 'EOF'
- # HOW TO EDIT THIS FILE:
- # The "handy ruler" below makes it easier to edit a package description.
- # Line up the first '|' above the ':' following the base package name, and
- # the '|' on the right side marks the last column you can put a character in.
- # You must make exactly 11 lines for the formatting to be correct. It's also
- # customary to leave one space after the ':' except on otherwise blank lines.
- |-----handy-ruler------------------------------------------------------|
- myapp: myapp (A sample application)
- myapp:
- myapp: This is a description of myapp. It explains what the application does
- myapp: and any important information about it.
- myapp:
- myapp:
- myapp:
- myapp:
- myapp:
- myapp:
- myapp:
- EOF
复制代码
构建软件包:
“`bash
./myapp.SlackBuild
# 生成的软件包将位于/tmp目录下
ls -l /tmp/myapp-1.0-*.tgz
- 6. **安装和测试软件包**:
- ```bash
- # 安装软件包
- installpkg /tmp/myapp-1.0-*.tgz
-
- # 测试应用程序
- myapp --version
-
- # 查看已安装的文件
- grep -a myapp /var/log/packages/myapp-1.0-*
复制代码
5.4 操作技巧
1. - 系统备份与恢复:
- “`bash创建系统备份rsync -aAXv / –exclude={”/dev/”,“/proc/”,“/sys/”,“/tmp/”,“/run/”,“/mnt/”,“/media/*”,“/lost+found”} /path/to/backup/
复制代码
系统备份与恢复:
“`bash
rsync -aAXv / –exclude={”/dev/”,“/proc/”,“/sys/”,“/tmp/”,“/run/”,“/mnt/”,“/media/*”,“/lost+found”} /path/to/backup/
# 使用tar创建备份
tar -cvpzf backup.tar.gz –exclude=/backup.tar.gz –exclude=/dev –exclude=/mnt –exclude=/proc –exclude=/sys –exclude=/tmp –exclude=/run /
# 恢复系统
rsync -aAXv /path/to/backup/ /
- 2. **查找和删除大文件**:
- ```bash
- # 查找大于100MB的文件
- find / -type f -size +100M -exec ls -lh {} \;
-
- # 按大小排序显示目录中的文件
- du -sh * | sort -h
-
- # 查找最大的文件和目录
- du -a / | sort -n -r | head -n 20
复制代码
1. 系统日志轮转:
“`bash安装logrotateslackpkg install logrotate
系统日志轮转:
“`bash
slackpkg install logrotate
# 配置logrotate
编辑/etc/logrotate.conf,添加:
- /var/log/wtmp {
- monthly
- create 0664 root utmp
- rotate 1
- }
-
- /var/log/btmp {
- missingok
- monthly
- create 0600 root utmp
- rotate 1
- }
-
- /var/log/syslog {
- rotate 7
- daily
- missingok
- notifempty
- delaycompress
- compress
- postrotate
- /etc/rc.d/rc.syslogd reload
- endscript
- }
复制代码
# 测试logrotate
logrotate -d /etc/logrotate.conf
# 手动运行logrotate
logrotate -f /etc/logrotate.conf
- 4. **使用screen进行远程会话管理**:
- ```bash
- # 安装screen
- slackpkg install screen
-
- # 创建新的screen会话
- screen -S mysession
-
- # 从screen会话分离
- Ctrl+A, D
-
- # 列出所有screen会话
- screen -ls
-
- # 重新连接到screen会话
- screen -r mysession
-
- # 在screen会话中创建新窗口
- Ctrl+A, C
-
- # 在screen窗口之间切换
- Ctrl+A, N (下一个窗口)
- Ctrl+A, P (上一个窗口)
- Ctrl+A, 0-9 (按编号切换)
-
- # 垂直分割屏幕
- Ctrl+A, |
-
- # 水平分割屏幕
- Ctrl+A, S
-
- # 在分割区域之间切换
- Ctrl+A, Tab
复制代码
1. 使用alias提高工作效率:
“`bash编辑~/.bashrc,添加常用别名cat >> ~/.bashrc << ‘EOF’系统管理别名alias update=‘slackpkg update && slackpkg upgrade-all’
alias install=‘slackpkg install’
alias remove=‘slackpkg remove’
alias search=‘slackpkg search’
使用alias提高工作效率:
“`bash
cat >> ~/.bashrc << ‘EOF’
alias update=‘slackpkg update && slackpkg upgrade-all’
alias install=‘slackpkg install’
alias remove=‘slackpkg remove’
alias search=‘slackpkg search’
# 文件操作别名
alias ll=‘ls -alF’
alias la=‘ls -A’
alias l=‘ls -CF’
alias ..=‘cd ..’
alias …=‘cd ../..’
alias ….=‘cd ../../..’
# 网络别名
alias myip=‘curl ifconfig.me’
alias netstat=‘netstat -tulnp’
alias ss=‘ss -tulnp’
# 其他有用别名
alias grep=‘grep –color=auto’
alias df=‘df -h’
alias du=‘du -h’
alias free=‘free -m’
alias ps=‘ps auxf’
alias histg=‘history | grep’
EOF
# 使别名生效
source ~/.bashrc
“`
6. 常见问题与解决方案
6.1 安装问题
问题1:安装过程中无法识别硬盘
解决方案:
• 确保在BIOS中已启用SATA模式为AHCI或兼容模式
• 尝试使用不同的内核参数,如nomodeset或libata.force=noncq
• 对于较新的硬件,可能需要使用包含更新驱动的Slackware版本或自定义内核
问题2:安装过程中无法连接到网络
解决方案:
• 检查网络连接是否正常
• 确认网络接口名称(可能不是传统的eth0)
• 尝试手动配置网络参数
• 对于无线网络,可能需要额外的驱动和配置
6.2 引导问题
问题1:系统无法启动,显示”Kernel panic”
解决方案:
• 在启动时按Shift或Esc键显示GRUB/LILO菜单
• 编辑启动选项,添加init=/bin/bash以进入紧急模式
• 检查/etc/fstab中的文件系统配置是否正确
• 使用安装介质启动,然后使用chroot修复系统
问题2:更新内核后系统无法启动
解决方案:
• 在启动时选择旧内核版本
• 使用安装介质启动,检查新内核的配置
• 重新编译和安装内核,确保所有必要的驱动和模块已包含
• 更新引导加载器配置
6.3 软件包管理问题
问题1:安装软件包时出现依赖错误
解决方案:
• 使用slackpkg安装,它会自动处理依赖关系
• 手动安装缺少的依赖包
• 使用sbopkg工具从SlackBuilds.org安装软件包,它会自动处理依赖关系
问题2:卸载软件包后系统出现问题
解决方案:
• 使用installpkg重新安装软件包
• 检查是否有其他软件包依赖于已卸载的软件包
• 使用pkgtool查看已安装的软件包列表
6.4 网络问题
问题1:无法连接到网络
解决方案:
• 检查网络接口是否已启用:ip link show
• 检查IP配置:ip addr show
• 检查路由配置:ip route show
• 检查DNS配置:cat /etc/resolv.conf
• 尝试ping网关和外部地址
问题2:无法连接到特定的网络服务
解决方案:
• 检查服务是否正在运行:/etc/rc.d/rc.servicename status
• 检查防火墙规则:iptables -L
• 检查服务配置:查看服务的配置文件
• 查看服务日志:tail -f /var/log/servicelog
6.5 性能问题
问题1:系统运行缓慢
解决方案:
• 检查系统资源使用情况:htop
• 检查磁盘I/O:iotop
• 检查系统日志:tail -f /var/log/syslog
• 清理不必要的文件和软件包
• 考虑升级硬件或优化系统配置
问题2:磁盘空间不足
解决方案:
• 查找大文件:find / -type f -size +100M
• 清理软件包缓存:slackpkg clean-system
• 清理日志文件:logrotate -f /etc/logrotate.conf
• 删除不必要的软件包:removepkg packagename
• 考虑扩展磁盘空间或添加新磁盘
7. 总结与进阶学习资源
7.1 总结
Slackware Linux作为最古老的Linux发行版之一,以其简洁性、稳定性和遵循Unix传统而著称。通过本教程,我们学习了:
• Slackware Linux的基本概念和特点
• 如何获取Slackware Linux中文教程PDF资源
• Slackware Linux的安装和基础配置
• 软件包管理和系统服务管理
• 桌面环境的配置
• 高级系统管理,包括内核编译、系统安全、性能监控和网络服务配置
• 实际案例,如搭建LAMP服务器、配置路由器和创建软件包
• 常见问题与解决方案
掌握Slackware Linux不仅可以帮助你建立一个稳定可靠的系统,还能让你深入了解Linux系统的内部工作原理。
7.2 进阶学习资源
1. 官方资源:Slackware Linux官方网站:https://www.slackware.com/Slackware文档:https://docs.slackware.com/Slackware邮件列表:https://www.slackware.com/lists/
2. Slackware Linux官方网站:https://www.slackware.com/
3. Slackware文档:https://docs.slackware.com/
4. Slackware邮件列表:https://www.slackware.com/lists/
5. 社区资源:SlackBuilds.org:https://slackbuilds.org/- 提供额外的软件包和构建脚本LinuxQuestions.org Slackware论坛:https://www.linuxquestions.org/questions/slackware-14/Slackware subreddit:https://www.reddit.com/r/slackware/
6. SlackBuilds.org:https://slackbuilds.org/- 提供额外的软件包和构建脚本
7. LinuxQuestions.org Slackware论坛:https://www.linuxquestions.org/questions/slackware-14/
8. Slackware subreddit:https://www.reddit.com/r/slackware/
9. 书籍资源:“Slackware Linux Essentials” - 官方入门指南“Slackware Linux Basics” - 由Alan Hicks, Chris Lumens, and Anne Nielsen编写“Linux System Administration: A User’s Guide” - 由Marcel Gagné编写,包含Slackware相关内容
10. “Slackware Linux Essentials” - 官方入门指南
11. “Slackware Linux Basics” - 由Alan Hicks, Chris Lumens, and Anne Nielsen编写
12. “Linux System Administration: A User’s Guide” - 由Marcel Gagné编写,包含Slackware相关内容
13. 在线教程和博客:Slackware Documentation Project:https://docs.slackware.com/Alien BOB的博客:https://alien.slackbook.org/blog/- 包含大量Slackware教程和技巧Slackware Linux Tutorial:https://www.tutorialspoint.com/slackware_linux/index.htm
14. Slackware Documentation Project:https://docs.slackware.com/
15. Alien BOB的博客:https://alien.slackbook.org/blog/- 包含大量Slackware教程和技巧
16. Slackware Linux Tutorial:https://www.tutorialspoint.com/slackware_linux/index.htm
17. 视频资源:YouTube上的Slackware教程频道LinuxConf和FOSDEM等会议中关于Slackware的演讲
18. YouTube上的Slackware教程频道
19. LinuxConf和FOSDEM等会议中关于Slackware的演讲
官方资源:
• Slackware Linux官方网站:https://www.slackware.com/
• Slackware文档:https://docs.slackware.com/
• Slackware邮件列表:https://www.slackware.com/lists/
社区资源:
• SlackBuilds.org:https://slackbuilds.org/- 提供额外的软件包和构建脚本
• LinuxQuestions.org Slackware论坛:https://www.linuxquestions.org/questions/slackware-14/
• Slackware subreddit:https://www.reddit.com/r/slackware/
书籍资源:
• “Slackware Linux Essentials” - 官方入门指南
• “Slackware Linux Basics” - 由Alan Hicks, Chris Lumens, and Anne Nielsen编写
• “Linux System Administration: A User’s Guide” - 由Marcel Gagné编写,包含Slackware相关内容
在线教程和博客:
• Slackware Documentation Project:https://docs.slackware.com/
• Alien BOB的博客:https://alien.slackbook.org/blog/- 包含大量Slackware教程和技巧
• Slackware Linux Tutorial:https://www.tutorialspoint.com/slackware_linux/index.htm
视频资源:
• YouTube上的Slackware教程频道
• LinuxConf和FOSDEM等会议中关于Slackware的演讲
通过这些资源,你可以继续深入学习Slackware Linux,掌握更多高级技能和技巧,成为一名真正的Slackware专家。记住,Slackware的哲学是”简单就是最好”,通过不断实践和探索,你将能够充分利用这个强大而稳定的Linux发行版。 |
|