主题
局域网综合服务部署 - 操作指南
📋 环境准备
系统要求
- 操作系统: CentOS 7.x 或 CentOS 8.x
- CPU: 4核心或以上
- 内存: 8GB或以上
- 硬盘: 256GB SSD + 1TB HDD
- 网络: 千兆网卡
初始配置
1. 配置静态IP地址
bash
# 编辑网络配置文件
sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
# 配置内容如下(根据实际网卡名称调整)
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
DNS2=8.8.8.8
# 重启网络服务
sudo systemctl restart network
# 验证IP地址
ip addr show
ping 192.168.1.1
ping 8.8.8.81
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2. 配置主机名
bash
# 设置主机名
sudo hostnamectl set-hostname server.lan.local
# 编辑hosts文件
sudo vim /etc/hosts
# 添加以下内容
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.100 server.lan.local server ns mail www ftp dhcp
# 验证主机名
hostname1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
3. 更新系统
bash
# 更新系统软件包
sudo yum update -y
# 安装基础工具
sudo yum install -y vim wget curl net-tools telnet tree htop
# 关闭SELinux(临时关闭,生产环境建议配置SELinux)
sudo setenforce 0
sudo vim /etc/selinux/config
# 将SELINUX=enforcing改为SELINUX=disabled1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
4. 配置防火墙
bash
# 启动防火墙
sudo systemctl start firewalld
sudo systemctl enable firewalld
# 允许SSH服务
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
# 查看防火墙状态
sudo firewall-cmd --list-all1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
🌐 第一步:部署DNS服务
1.1 安装BIND
bash
# 安装BIND和工具
sudo yum install -y bind bind-utils
# 启动并设置开机自启
sudo systemctl start named
sudo systemctl enable named
# 检查服务状态
sudo systemctl status named1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
1.2 配置主配置文件
bash
# 备份原配置文件
sudo cp /etc/named.conf /etc/named.conf.bak
# 编辑主配置文件
sudo vim /etc/named.conf1
2
3
4
5
2
3
4
5
配置内容:
conf
options {
listen-on port 53 { 192.168.1.100; 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; };
forwarders {
8.8.8.8;
8.8.4.4;
};
recursion yes;
dnssec-enable no;
dnssec-validation no;
};
zone "." IN {
type hint;
file "named.ca";
};
zone "lan.local" IN {
type master;
file "lan.local.zone";
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "1.168.192.rev";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
1.3 创建正向解析区域文件
bash
# 创建区域文件
sudo vim /var/named/lan.local.zone1
2
2
文件内容:
$TTL 86400
@ IN SOA ns.lan.local. admin.lan.local. (
2025010801 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Minimum
IN NS ns.lan.local.
IN MX 10 mail.lan.local.
ns IN A 192.168.1.100
server IN A 192.168.1.100
mail IN A 192.168.1.100
www IN A 192.168.1.100
ftp IN A 192.168.1.100
dhcp IN A 192.168.1.1001
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1.4 创建反向解析区域文件
bash
# 创建反向解析文件
sudo vim /var/named/1.168.192.rev1
2
2
文件内容:
$TTL 86400
@ IN SOA ns.lan.local. admin.lan.local. (
2025010801 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Minimum
IN NS ns.lan.local.
100 IN PTR server.lan.local.
100 IN PTR ns.lan.local.
100 IN PTR mail.lan.local.
100 IN PTR www.lan.local.
100 IN PTR ftp.lan.local.
100 IN PTR dhcp.lan.local.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1.5 设置文件权限
bash
# 设置正确的文件权限
sudo chown named:named /var/named/lan.local.zone
sudo chown named:named /var/named/1.168.192.rev
sudo chmod 640 /var/named/lan.local.zone
sudo chmod 640 /var/named/1.168.192.rev1
2
3
4
5
2
3
4
5
1.6 重启DNS服务
bash
# 检查配置文件语法
sudo named-checkconf /etc/named.conf
sudo named-checkzone lan.local /var/named/lan.local.zone
sudo named-checkzone 1.168.192.in-addr.arpa /var/named/1.168.192.rev
# 重启DNS服务
sudo systemctl restart named
# 查看服务状态
sudo systemctl status named
# 开放DNS端口
sudo firewall-cmd --permanent --add-service=dns
sudo firewall-cmd --reload1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
1.7 测试DNS服务
bash
# 测试正向解析
nslookup www.lan.local
nslookup mail.lan.local
nslookup ftp.lan.local
# 测试反向解析
nslookup 192.168.1.100
# 测试MX记录
nslookup -type=mx lan.local
# 修改本机DNS为本地DNS服务器
sudo vim /etc/resolv.conf
# 添加: nameserver 192.168.1.100
# 再次测试
ping www.lan.local1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
📡 第二步:部署DHCP服务
2.1 安装DHCP
bash
# 安装DHCP服务
sudo yum install -y dhcp
# 检查安装
rpm -qa | grep dhcp1
2
3
4
5
2
3
4
5
2.2 配置DHCP服务
bash
# 复制配置文件模板
sudo cp /usr/share/doc/dhcp-*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
# 编辑配置文件
sudo vim /etc/dhcp/dhcpd.conf1
2
3
4
5
2
3
4
5
配置内容:
conf
# 全局配置
option domain-name "lan.local";
option domain-name-servers ns.lan.local, 192.168.1.100;
default-lease-time 600;
max-lease-time 7200;
authoritative;
# 网络配置
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.150 192.168.1.200;
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.1.100;
# 固定IP分配示例(可选)
host client1 {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.151;
}
}
# 日志配置
log-facility local7;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2.3 配置DHCP日志
bash
# 配置rsyslog记录DHCP日志
sudo vim /etc/rsyslog.conf
# 添加以下行
local7.* /var/log/dhcpd.log
# 创建日志文件并设置权限
sudo touch /var/log/dhcpd.log
sudo chown dhcpd:dhcpd /var/log/dhcpd.log
sudo chmod 644 /var/log/dhcpd.log
# 重启rsyslog
sudo systemctl restart rsyslog1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
2.4 启动DHCP服务
bash
# 启动DHCP服务
sudo systemctl start dhcpd
sudo systemctl enable dhcpd
# 查看服务状态
sudo systemctl status dhcpd
# 查看DHCP租约文件
sudo cat /var/lib/dhcpd/dhcpd.leases1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
2.5 配置防火墙
bash
# 开放DHCP端口(UDP 67/68)
sudo firewall-cmd --permanent --add-service=dhcp
sudo firewall-cmd --reload
# 查看防火墙规则
sudo firewall-cmd --list-all1
2
3
4
5
6
2
3
4
5
6
2.6 测试DHCP服务
bash
# 方法1:使用另一台电脑测试
# 断开网络连接,重新连接,看是否获取到IP地址
# 方法2:查看DHCP日志
sudo tail -f /var/log/dhcpd.log
# 方法3:查看租约文件
sudo cat /var/lib/dhcpd/dhcpd.leases1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
📧 第三步:部署邮件服务
3.1 安装邮件服务组件
bash
# 安装Postfix(SMTP服务器)和Dovecot(IMAP/POP3服务器)
sudo yum install -y postfix dovecot
# 检查安装
rpm -qa | grep postfix
rpm -qa | grep dovecot1
2
3
4
5
6
2
3
4
5
6
3.2 配置Postfix
bash
# 备份原配置
sudo cp /etc/postfix/main.cf /etc/postfix/main.cf.bak
# 编辑Postfix主配置文件
sudo vim /etc/postfix/main.cf1
2
3
4
5
2
3
4
5
需要修改的配置项:
conf
# 基本配置
myhostname = mail.lan.local
mydomain = lan.local
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
# 邮箱配置
home_mailbox = Maildir/
mailbox_command =
# 网络配置
mynetworks = 192.168.1.0/24, 127.0.0.0/8
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# SMTP认证
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous, noplaintext
smtpd_sasl_tls_security_options = noanonymous
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
# TLS加密
smtpd_tls_cert_file = /etc/pki/tls/certs/postfix.pem
smtpd_tls_key_file = /etc/pki/tls/private/postfix.pem
smtpd_use_tls = yes1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
3.3 生成SSL证书
bash
# 创建证书目录
sudo mkdir -p /etc/pki/tls/certs
sudo mkdir -p /etc/pki/tls/private
# 生成自签名证书
sudo openssl req -new -x509 -days 365 -nodes \
-out /etc/pki/tls/certs/postfix.pem \
-keyout /etc/pki/tls/private/postfix.pem
# 设置权限
sudo chmod 600 /etc/pki/tls/private/postfix.pem
sudo chmod 644 /etc/pki/tls/certs/postfix.pem1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
3.4 配置master.cf
bash
# 编辑master.cf文件
sudo vim /etc/postfix/master.cf
# 取消以下行的注释(去掉行首的#)
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_tls_auth_only=yes
-o smtpd_reject_unlisted_recipient=no
smtps inet n - y - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
3.5 配置Dovecot
bash
# 编辑Dovecot主配置文件
sudo vim /etc/dovecot/dovecot.conf1
2
2
配置内容:
conf
protocols = imap pop3
listen = *
base_dir = /var/run/dovecot/
instance_name = dovecot
# 启用认证
auth_mechanisms = plain login
# 日志
log_path = /var/log/dovecot.log
info_log_path = /var/log/dovecot-info.log1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
3.6 配置Dovecot邮件存储
bash
# 编辑mail配置
sudo vim /etc/dovecot/conf.d/10-mail.conf
# 修改以下配置
mail_location = maildir:~/Maildir
mail_privileged_group = mail1
2
3
4
5
6
2
3
4
5
6
3.7 配置Dovecot认证
bash
# 编辑认证配置
sudo vim /etc/dovecot/conf.d/10-auth.conf
# 确保以下配置
disable_plaintext_auth = no
auth_mechanisms = plain login1
2
3
4
5
6
2
3
4
5
6
3.8 配置Dovecot SSL
bash
# 编辑SSL配置
sudo vim /etc/dovecot/conf.d/10-ssl.conf
# 修改SSL配置
ssl = yes
ssl_cert = </etc/pki/tls/certs/postfix.pem
ssl_key = </etc/pki/tls/private/postfix.pem1
2
3
4
5
6
7
2
3
4
5
6
7
3.9 配置Dovecot Master认证
bash
# 编辑master认证配置
sudo vim /etc/dovecot/conf.d/10-master.conf
# 找到service auth部分,修改为:
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
}
unix_listener auth-userdb {
mode = 0600
user = postfix
group = postfix
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
3.10 启动邮件服务
bash
# 设置邮件别名
sudo vim /etc/aliases
# 添加或修改:
root: root@lan.local
# 生成别名数据库
sudo newaliases
# 启动服务
sudo systemctl start postfix
sudo systemctl enable postfix
sudo systemctl start dovecot
sudo systemctl enable dovecot
# 查看服务状态
sudo systemctl status postfix
sudo systemctl status dovecot1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
3.11 配置防火墙
bash
# 开放邮件服务端口
sudo firewall-cmd --permanent --add-service=smtp
sudo firewall-cmd --permanent --add-service=smtps
sudo firewall-cmd --permanent --add-service=imap
sudo firewall-cmd --permanent --add-service=imaps
sudo firewall-cmd --permanent --add-port=587/tcp
sudo firewall-cmd --reload
# 查看防火墙规则
sudo firewall-cmd --list-all1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
3.12 创建测试用户
bash
# 创建测试用户
sudo useradd -m -s /bin/bash user1
sudo useradd -m -s //bin/bash user2
# 设置密码
sudo passwd user1
sudo passwd user2
# 验证用户
id user1
id user21
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
3.13 测试邮件服务
bash
# 安装邮件客户端
sudo yum install -y mailx
# 测试发送邮件(使用本地用户)
echo "This is a test email" | mail -s "Test Subject" user1@lan.local
# 查看邮件
mail -u user1
# 测试SMTP连接
telnet localhost 25
# 输入以下命令:
# ehlo localhost
# mail from: user1@lan.local
# rcpt to: user2@lan.local
# data
# Subject: Test
#
# This is a test email.
# .
# quit
# 测试IMAP连接
telnet localhost 143
# 输入以下命令:
# a1 login user1 password
# a2 list "" *
# a3 select INBOX
# a4 logout1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
🌐 第四步:部署网页服务
4.1 安装Apache
bash
# 安装Apache
sudo yum install -y httpd
# 检查安装
rpm -qa | grep httpd1
2
3
4
5
2
3
4
5
4.2 配置Apache
bash
# 备份原配置
sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
# 编辑配置文件
sudo vim /etc/httpd/conf/httpd.conf1
2
3
4
5
2
3
4
5
需要修改的配置项:
conf
# 服务器名称
ServerName www.lan.local:80
# 监听地址
Listen 192.168.1.100:80
# 网站根目录
DocumentRoot "/var/www/html"
# 目录权限
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
# 服务器管理邮箱
ServerAdmin root@lan.local
# 默认首页
DirectoryIndex index.html index.php1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
4.3 创建测试网页
bash
# 创建网站根目录
sudo mkdir -p /var/www/html
# 创建测试页面
sudo vim /var/www/html/index.html1
2
3
4
5
2
3
4
5
页面内容:
html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>局域网综合服务平台</title>
<style>
body {
font-family: Arial, sans-serif;
max-width: 1200px;
margin: 0 auto;
padding: 20px;
background-color: #f5f5f5;
}
.container {
background: white;
padding: 30px;
border-radius: 10px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
h1 {
color: #333;
text-align: center;
}
.services {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 20px;
margin-top: 30px;
}
.service {
background: #f8f9fa;
padding: 20px;
border-radius: 8px;
border-left: 4px solid #007bff;
}
.service h3 {
color: #007bff;
margin-top: 0;
}
.status {
display: inline-block;
padding: 5px 10px;
background: #28a745;
color: white;
border-radius: 20px;
font-size: 12px;
}
</style>
</head>
<body>
<div class="container">
<h1>🌐 局域网综合服务平台</h1>
<p>欢迎访问局域网综合服务系统!本服务器提供以下服务:</p>
<div class="services">
<div class="service">
<h3>📧 邮件服务</h3>
<p>地址: mail.lan.local</p>
<p>SMTP: 25, 587</p>
<p>IMAP: 143, 993</p>
<span class="status">运行中</span>
</div>
<div class="service">
<h3>🌐 网页服务</h3>
<p>地址: www.lan.local</p>
<p>HTTP: 80</p>
<p>HTTPS: 443</p>
<span class="status">运行中</span>
</div>
<div class="service">
<h3>📁 FTP服务</h3>
<p>地址: ftp.lan.local</p>
<p>端口: 21</p>
<p>被动: 30000-30009</p>
<span class="status">运行中</span>
</div>
<div class="service">
<h3>🌍 DNS服务</h3>
<p>地址: ns.lan.local</p>
<p>端口: 53</p>
<p>域名解析</p>
<span class="status">运行中</span>
</div>
<div class="service">
<h3>📡 DHCP服务</h3>
<p>地址: dhcp.lan.local</p>
<p>IP分配: 192.168.1.150-200</p>
<p>动态配置</p>
<span class="status">运行中</span>
</div>
</div>
<div style="margin-top: 30px; text-align: center; color: #666;">
<p>服务器信息: 192.168.1.100 | CentOS Linux</p>
</div>
</div>
</body>
</html>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
4.4 设置权限
bash
# 设置网站目录权限
sudo chown -R apache:apache /var/www/html
sudo chmod -R 755 /var/www/html1
2
3
2
3
4.5 启动Apache服务
bash
# 启动Apache
sudo systemctl start httpd
sudo systemctl enable httpd
# 查看服务状态
sudo systemctl status httpd1
2
3
4
5
6
2
3
4
5
6
4.6 配置防火墙
bash
# 开放HTTP和HTTPS端口
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
# 查看防火墙规则
sudo firewall-cmd --list-all1
2
3
4
5
6
7
2
3
4
5
6
7
4.7 测试网页服务
bash
# 方法1:本地测试
curl http://localhost
curl http://192.168.1.100
curl http://www.lan.local
# 方法2:客户端测试
# 在客户端浏览器访问:http://www.lan.local
# 方法3:检查服务
netstat -tlnp | grep httpd
sudo systemctl status httpd1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
📁 第五步:部署FTP服务
5.1 安装vsftpd
bash
# 安装vsftpd
sudo yum install -y vsftpd
# 检查安装
rpm -qa | grep vsftpd1
2
3
4
5
2
3
4
5
5.2 配置vsftpd
bash
# 备份原配置
sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
# 编辑配置文件
sudo vim /etc/vsftpd/vsftpd.conf1
2
3
4
5
2
3
4
5
完整配置内容:
conf
# 禁止匿名用户
anonymous_enable=NO
# 允许本地用户
local_enable=YES
# 允许写入
write_enable=YES
# 本地用户umask
local_umask=022
# 开启目录消息
dirmessage_enable=YES
# 开启上传下载日志
xferlog_enable=YES
# 标准日志格式
xferlog_std_format=YES
# 数据端口20
connect_from_port_20=YES
# 监听IPv4
listen=NO
listen_ipv6=YES
# PAM认证
pam_service_name=vsftpd
# 用户列表
userlist_enable=YES
tcp_wrappers=YES
# 被动模式配置
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30009
pasv_address=192.168.1.100
# 限制用户在主目录
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
# 允许写操作
allow_writeable_chroot=YES
# 本地用户时区
use_localtime=YES
# 端口
listen_port=211
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
5.3 创建用户列表文件
bash
# 创建chroot列表(允许访问上级目录的用户)
sudo touch /etc/vsftpd/chroot_list
sudo chmod 600 /etc/vsftpd/chroot_list
sudo vim /etc/vsftpd/chroot_list
# 可以添加需要访问上级目录的用户名(留空表示所有用户限制在主目录)1
2
3
4
5
6
2
3
4
5
6
5.4 创建FTP用户
bash
# 创建FTP用户目录
sudo mkdir -p /home/ftpuser
sudo mkdir -p /home/ftpuser/upload
sudo mkdir -p /home/ftpuser/download
# 创建FTP用户
sudo useradd -d /home/ftpuser -s /sbin/nologin ftpuser
sudo passwd ftpuser
# 设置目录权限
sudo chown -R ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser
sudo chmod 777 /home/ftpuser/upload
# 创建测试文件
echo "FTP测试文件" | sudo tee /home/ftpuser/download/test.txt1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
5.5 创建欢迎信息
bash
# 创建欢迎信息文件
sudo vim /etc/vsftpd/ftpwelcome.txt
# 添加以下内容
欢迎访问FTP服务器!
================================
服务器地址: ftp.lan.local
端口: 21
当前时间: %T
================================
如有问题请联系管理员1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
5.6 配置用户访问控制
bash
# 编辑用户列表文件
sudo vim /etc/vsftpd/user_list
# 允许访问的用户列表(添加需要允许的用户)
ftpuser
# 配置vsftpd.conf
sudo vim /etc/vsftpd/vsftpd.conf
# 添加或修改以下配置
userlist_deny=NO
banner_file=/etc/vsftpd/ftpwelcome.txt1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
5.7 启动vsftpd服务
bash
# 启动vsftpd
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
# 查看服务状态
sudo systemctl status vsftpd1
2
3
4
5
6
2
3
4
5
6
5.8 配置防火墙
bash
# 开放FTP端口和被动模式端口
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=20/tcp
sudo firewall-cmd --permanent --add-port=30000-30009/tcp
sudo firewall-cmd --reload
# 查看防火墙规则
sudo firewall-cmd --list-all1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
5.9 配置SELinux(如果启用)
bash
# 如果SELinux启用,需要设置SELinux上下文
sudo setsebool -P ftp_home_dir 1
sudo setsebool -P allow_ftpd_full_access 1
# 或者设置SELinux为permissive模式
sudo setenforce 01
2
3
4
5
6
2
3
4
5
6
5.10 测试FTP服务
bash
# 方法1:使用命令行测试
ftp localhost
# 输入用户名: ftpuser
# 输入密码
# 测试命令:
# ls - 查看文件
# cd upload - 进入目录
# put test.txt - 上传文件
# get test.txt - 下载文件
# bye - 退出
# 方法2:使用lftp
sudo yum install -y lftp
lftp -u ftpuser ftp.lan.local
# 方法3:使用客户端FTP工具
# 在客户端使用FileZilla等工具连接:ftp.lan.local
# 方法4:检查服务
netstat -tlnp | grep vsftpd
sudo systemctl status vsftpd1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
🔍 第六步:综合测试
6.1 检查所有服务状态
bash
# 创建服务检查脚本
sudo vim /usr/local/bin/check_services.sh1
2
2
脚本内容:
bash
#!/bin/bash
echo "========================================="
echo " 局域网综合服务状态检查"
echo "========================================="
echo ""
# 检查DNS服务
echo "1. DNS服务 (named):"
if systemctl is-active --quiet named; then
echo " ✓ 运行中"
systemctl status named --no-pager | head -3
else
echo " ✗ 未运行"
fi
echo ""
# 检查DHCP服务
echo "2. DHCP服务 (dhcpd):"
if systemctl is-active --quiet dhcpd; then
echo " ✓ 运行中"
systemctl status dhcpd --no-pager | head -3
else
echo " ✗ 未运行"
fi
echo ""
# 检查邮件服务
echo "3. 邮件服务 (postfix):"
if systemctl is-active --quiet postfix; then
echo " ✓ 运行中"
systemctl status postfix --no-pager | head -3
else
echo " ✗ 未运行"
fi
echo ""
echo "4. 邮件服务 (dovecot):"
if systemctl is-active --quiet dovecot; then
echo " ✓ 运行中"
systemctl status dovecot --no-pager | head -3
else
echo " ✗ 未运行"
fi
echo ""
# 检查网页服务
echo "5. 网页服务 (httpd):"
if systemctl is-active --quiet httpd; then
echo " ✓ 运行中"
systemctl status httpd --no-pager | head -3
else
echo " ✗ 未运行"
fi
echo ""
# 检查FTP服务
echo "6. FTP服务 (vsftpd):"
if systemctl is-active --quiet vsftpd; then
echo " ✓ 运行中"
systemctl status vsftpd --no-pager | head -3
else
echo " ✗ 未运行"
fi
echo ""
# 检查防火墙
echo "7. 防火墙 (firewalld):"
if systemctl is-active --quiet firewalld; then
echo " ✓ 运行中"
firewall-cmd --list-all | grep services
else
echo " ✗ 未运行"
fi
echo ""
# 检查网络连接
echo "8. 网络连接:"
echo " IP地址: $(ip addr show | grep 192.168.1.100 | awk '{print $2}')"
echo " 网关: $(ip route | grep default | awk '{print $3}')"
echo ""
# 检查DNS解析
echo "9. DNS解析测试:"
nslookup www.lan.local | grep -A 1 "Name:"
echo ""
echo "========================================="
echo " 检查完成"
echo "========================================="1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
设置执行权限:
bash
sudo chmod +x /usr/local/bin/check_services.sh
# 运行检查
sudo /usr/local/bin/check_services.sh1
2
3
4
2
3
4
6.2 端口测试
bash
# 检查所有服务端口
netstat -tlnp | grep -E '53|67|25|143|80|21'1
2
2
6.3 域名解析测试
bash
# 测试所有域名
for domain in www.lan.local mail.lan.local ftp.lan.local ns.lan.local; do
echo "测试: $domain"
nslookup $domain
echo ""
done1
2
3
4
5
6
2
3
4
5
6
6.4 服务功能测试
bash
# 测试DNS
dig www.lan.local
# 测试邮件
echo "测试邮件" | mail -s "测试" user1@lan.local
# 测试网页
curl -I http://www.lan.local
# 测试FTP
lftp -u ftpuser -e "ls; bye" ftp.lan.local1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
📊 第七步:监控与日志
7.1 查看服务日志
bash
# DNS日志
sudo tail -f /var/log/messages | grep named
# DHCP日志
sudo tail -f /var/log/dhcpd.log
# 邮件日志
sudo tail -f /var/log/maillog
# 网页日志
sudo tail -f /var/log/httpd/access_log
sudo tail -f /var/log/httpd/error_log
# FTP日志
sudo tail -f /var/log/vsftpd.log1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
7.2 创建日志监控脚本
bash
# 创建日志汇总脚本
sudo vim /usr/local/bin/view_logs.sh1
2
2
脚本内容:
bash
#!/bin/bash
echo "========================================="
echo " 服务日志监控"
echo "========================================="
echo ""
echo "选择要查看的日志:"
echo "1. DNS日志"
echo "2. DHCP日志"
echo "3. 邮件日志"
echo "4. 网页访问日志"
echo "5. 网页错误日志"
echo "6. FTP日志"
echo "7. 系统消息日志"
echo "0. 退出"
echo ""
read -p "请输入选项: " choice
case $choice in
1)
echo "查看DNS日志(最后20行)..."
sudo tail -20 /var/log/messages | grep named
;;
2)
echo "查看DHCP日志(最后20行)..."
sudo tail -20 /var/log/dhcpd.log
;;
3)
echo "查看邮件日志(最后20行)..."
sudo tail -20 /var/log/maillog
;;
4)
echo "查看网页访问日志(最后20行)..."
sudo tail -20 /var/log/httpd/access_log
;;
5)
echo "查看网页错误日志(最后20行)..."
sudo tail -20 /var/log/httpd/error_log
;;
6)
echo "查看FTP日志(最后20行)..."
sudo tail -20 /var/log/vsftpd.log
;;
7)
echo "查看系统消息日志(最后20行)..."
sudo tail -20 /var/log/messages
;;
0)
echo "退出"
exit 0
;;
*)
echo "无效选项"
;;
esac1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
设置执行权限:
bash
sudo chmod +x /usr/local/bin/view_logs.sh1
🛠️ 第八步:维护与管理
8.1 服务管理命令
bash
# 启动服务
sudo systemctl start named
sudo systemctl start dhcpd
sudo systemctl start postfix
sudo systemctl start dovecot
sudo systemctl start httpd
sudo systemctl start vsftpd
# 停止服务
sudo systemctl stop named
sudo systemctl stop dhcpd
sudo systemctl stop postfix
sudo systemctl stop dovecot
sudo systemctl stop httpd
sudo systemctl stop vsftpd
# 重启服务
sudo systemctl restart named
sudo systemctl restart dhcpd
sudo systemctl restart postfix
sudo systemctl restart dovecot
sudo systemctl restart httpd
sudo systemctl restart vsftpd
# 查看服务状态
sudo systemctl status named
sudo systemctl status dhcpd
sudo systemctl status postfix
sudo systemctl status dovecot
sudo systemctl status httpd
sudo systemctl status vsftpd
# 设置开机自启
sudo systemctl enable named
sudo systemctl enable dhcpd
sudo systemctl enable postfix
sudo systemctl enable dovecot
sudo systemctl enable httpd
sudo systemctl enable vsftpd1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
8.2 备份配置文件
bash
# 创建备份目录
sudo mkdir -p /backup/configs
# 备份所有配置文件
sudo cp /etc/named.conf /backup/configs/
sudo cp /var/named/lan.local.zone /backup/configs/
sudo cp /var/named/1.168.192.rev /backup/configs/
sudo cp /etc/dhcp/dhcpd.conf /backup/configs/
sudo cp /etc/postfix/main.cf /backup/configs/
sudo cp /etc/dovecot/dovecot.conf /backup/configs/
sudo cp /etc/httpd/conf/httpd.conf /backup/configs/
sudo cp /etc/vsftpd/vsftpd.conf /backup/configs/
# 创建备份脚本
sudo vim /usr/local/bin/backup_configs.sh1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
备份脚本内容:
bash
#!/bin/bash
BACKUP_DIR="/backup/configs"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="/backup/configs_backup_${DATE}.tar.gz"
echo "开始备份配置文件..."
tar -czf $BACKUP_FILE -C / backup/configs
echo "备份完成: $BACKUP_FILE"
# 保留最近7天的备份
find /backup -name "configs_backup_*.tar.gz" -mtime +7 -delete
echo "已清理7天前的备份"1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
设置执行权限:
bash
sudo chmod +x /usr/local/bin/backup_configs.sh
# 手动执行备份
sudo /usr/local/bin/backup_configs.sh1
2
3
4
2
3
4
8.3 添加定时备份任务
bash
# 编辑crontab
sudo crontab -e
# 添加每天凌晨2点执行备份
0 2 * * * /usr/local/bin/backup_configs.sh >> /var/log/backup.log 2>&11
2
3
4
5
2
3
4
5
8.4 用户管理
bash
# 添加邮件用户
sudo useradd -m -s /bin/bash newuser
sudo passwd newuser
# 添加FTP用户
sudo useradd -d /home/newftp -s /sbin/nologin newftp
sudo passwd newftp
sudo mkdir -p /home/newftp/{upload,download}
sudo chown -R newftp:newftp /home/newftp
# 删除用户
sudo userdel -r olduser1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
❓ 常见问题排查
问题1: DNS无法解析
bash
# 检查DNS服务状态
sudo systemctl status named
# 检查配置文件语法
sudo named-checkconf /etc/named.conf
sudo named-checkzone lan.local /var/named/lan.local.zone
# 检查防火墙
sudo firewall-cmd --list-ports
# 测试DNS
nslookup www.lan.local
dig www.lan.local1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
问题2: DHCP无法分配IP
bash
# 检查DHCP服务状态
sudo systemctl status dhcpd
# 检查DHCP日志
sudo tail -f /var/log/dhcpd.log
# 检查网络接口
ip addr show
# 检查租约文件
sudo cat /var/lib/dhcpd/dhcpd.leases1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
问题3: 邮件无法发送
bash
# 检查邮件服务状态
sudo systemctl status postfix
sudo systemctl status dovecot
# 检查邮件日志
sudo tail -f /var/log/maillog
# 测试SMTP连接
telnet localhost 25
# 检查用户邮箱
ls -la /home/user1/Maildir/1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
问题4: 网页无法访问
bash
# 检查Apache状态
sudo systemctl status httpd
# 检查网页错误日志
sudo tail -f /var/log/httpd/error_log
# 检查文件权限
ls -la /var/www/html/
# 测试本地访问
curl http://localhost1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
问题5: FTP无法连接
bash
# 检查vsftpd状态
sudo systemctl status vsftpd
# 检查FTP日志
sudo tail -f /var/log/vsftpd.log
# 测试FTP连接
ftp localhost
# 检查用户权限
id ftpuser
ls -la /home/ftpuser/1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
📚 学习总结
完成本项目后,您已掌握:
网络服务架构
- DNS域名解析原理
- DHCP动态IP分配
- 邮件系统架构
- Web服务原理
- FTP文件传输
Linux服务管理
- 服务安装与配置
- 防火墙配置
- 日志管理
- 用户管理
综合运维能力
- 服务部署
- 故障排查
- 系统监控
- 备份恢复
扩展学习方向
- 容器化部署(Docker)
- 高可用架构
- 负载均衡
- 安全加固
- 监控告警
🎉 项目完成
恭喜您!您已成功在单台服务器上部署了完整的局域网综合服务系统。
现在您的局域网已经具备了:
- ✅ 域名解析服务(DNS)
- ✅ IP地址自动分配(DHCP)
- ✅ 邮件收发服务
- ✅ 网站访问服务
- ✅ 文件传输服务
所有服务协同工作,为局域网内的客户端提供完整的网络服务!