一:vsftp
1.什么是FTP?
File Transfer Protocol 基于C/S结构的文件传输协议
2.使用什么协议?什么端口?
TCP 21 建立命令链路
TCP 20 在主动传输模式下服务器使用20端口向客户端建立数据链路
3.FTP工作原理
--------- Client Server--------------
1031 21
1032 20
①客户端向服务器发出连接请求,同时客户端系统动态地打开一个大于1024的端口等候服务器连接(比如1031端口)
②若FTP服务器在端口21侦听到该请求,则会在客户端1031端口和服务器的21端口之间建立一个FTP会话连接
③当需要传输数据时,FTP客户端动态地打开一个大于1024的端口(比如1032端口)连接到服务器的20端口,并在这两个端口之间进行数据的传输。当数据传输完毕后,这两个端口会自动关闭
④当FTP客户端断开与FTP服务器的连接时,客户端上动态分配的端口将自动释放
4.FTP工作模式
主动传输模式(Active FTP):默认
在主动传输模式下,FTP客户端随机开启一个大于1024的端口N(1025)向服务器的21号端口发起连接,然后开放N+1号端口(1026)进行监听,并向服务器发送PORT1026命令。服务器接收到命令后,会用其本地的FTP数据端口(通常20)来连接客户端指定的端口1026,进行数据传输。
被动传输模式(Passive FTP):
在被动传输模式下,FTP客户端随机开启一个大于1024的端口N(1025)向服务器的21号端口发起连接,同时会开启N+1号端口(1026),然后向服务器发送PASV 命令。通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024端口(1521)进行监听,然后用PORT 命令通知客户端,自己的数据端口是1521.客户端收到命令后会通过1026号端口连接服务器的1521,然后在两个端口之间进行数据传输。
5.FTP传输模式
文本模式:CGI脚本和普通HTML文件
二进制模式:图片和执行文件压缩文件
目前服务器上面和FTP客户端软件能够自动识别文件类型并选择相应的传输方式
6.FTP账户类型
匿名用户:ftp 或 anonymous
本地用户:Linux服务器本机的系统用户账号
虚拟用户:账号信息存放在独立的文件或数据库内
7.默认安装vsftpd特点
匿名用户与本地用户都可以登录
匿名用户登录到/var/ftp,只能下载不能上传
本地用户登录到本地用户的家目录,可以上传和下载
8.访问ftp服务器方法
常见的网页浏览器(Firefox、IE等)
常见的下载工具(wget、curl等)
专用的FTP管理工具(Filezilla、CuteFTP、WinSCP等)
ftp和lftp命令
get 下载
put 上传
mget 下载多个,支持通配符
mput 上传多个,支持通配符
!cmd 执行外面命令
lcd 切换外面路径
9.访问FTP地址表示方法
匿名访问
ftp://192.168.4.5
ftp://192.168.4.5/path/to/file
用户验证访问
ftp://user:pass@192.168.4.5
ftp://user:pass@192.168.4.5/path/to/file
10.RHEL6自带的ftp软件包?主配置文件是?服务启动脚本?
vsftpd
/etc/vsftpd/vsftpd.conf
/etc/init.d/vsftpd
11.以下这2个文件的作用?
/etc/vsftpd/user_list
userlist_deny=NO
/etc/vsftpd/ftpusers
12.以下这些选项的作用?
listen_port
download_enable
anonymous_enable
chroot_local_user
anon_max_rate
local_max_rate
二、Apache及Lamp
Apache状态代码:
1xx:纯信息
2xx:成功类信息
3xx:重定向类信息
4xx:客户端错误类信息
5xx:服务器端错误类信息
Apache常见错误代码:
当服务器响应时,其状态行的信息为HTTP的版本号,状态码,及解释状态码的简单说明。现将5类状态码详细列出:
APACHE错误代码
① 客户方错误
100继续
101交换协议
APACHE错误代码
② 成功
200 OK
201 已创建
202接收
203非认证信息
204无内容
205 重置内容
206部分内容
APACHE错误代码
③ 重定向
300 多路选择
301永久转移
302暂时转移
303参见其它
304 未修改(Not Modified)
305使用代理
APACHE错误代码
④ 客户方错误
400错误请求(Bad Request)
401 未认证
402 需要付费
403 禁止(Forbidden)
404未找到(Not Found)
405方法不允许
406不接受
407需要代理认证
408请求超时
409冲突
410 失败
411 需要长度
412条件失败
413 请求实体太大
414 请求URI太长
415 不支持媒体类型
APACHE错误代码
⑤ 服务器错误
500服务器内部错误
501未实现(Not Implemented)
502网关失败
503 过载或服务器暂时不可用
504 连接超时
实验:
实验拓扑:
rh6_node1
-----CentOS6.5(private1)----------(private1)
rh6_node2
实验一:查看默认HTTP配置
安装httpd、httpd-manual软件包
启动httpd服务
从浏览器访问默认首页、手册页
找到默认红帽欢迎页面
(/etc/httpd/conf/httpd.conf ---->Include ---->/etc/httpd/conf.d ----> welcome.conf ----> /var/www/error/noindex.html)
部署并测试网页
文档首页文件:/var/www/html/index.html
网站子目录:/var/www/html/muban1/
1.安装软件包
[root@svr5 ~]# rpm -q httpd
[root@svr5 ~]# yum -y install httpd
2.启动服务
[root@svr5 ~]# service httpdrestart
[root@svr5 ~]# chkconfig httpd on
[root@svr5 ~]# netstat -tulnp |grep httpd
3.测试
在真实机直接访问
http://192.168.4.5
4.新建测试主页
[root@svr5 ~]# cat/var/www/html/index.html
<h1>TestPage!!!</h1>
5.测试
在真实机直接访问
http://192.168.4.5
6.上传模版网站
//把FTP服务器上的test_web.zip上传到192.168.4.5:/root上,方法随便
[root@svr5 ~]# yum -y install unzip
[root@svr5 ~]# unzip -d/var/www/html/ /root/test_web.zip
[root@svr5 ~]# ls /var/www/html/
在真实机直接访问
http://192.168.4.5/muban1
http://192.168.4.5/muban2
常见的几个问题:
1. 网页的获取
手工创建(vim)
由他人提供(ftp://172.40.3.38/two-month/tools/)
2. 如何释放 .zip 包
unzip /路径/包文件 -d 目标文件夹
3. scp上传文件失败
# scp 本地文件路径 用户名@远程主机地址:/远程文件夹
验证密码之后报错:... scp command not found
4. 运行 firefox 的时候提示 no display
可能的原因:
1)本机运行的时候,可能不支持图形桌面
2)SSH远程的时候,可能没添加 -X 转发选项
3)可能是远程主机不支持 -X 转发(xauth)
5. 访问网页的时候提示 无法连接
httpd服务没有运行
试验二:基本HTTP服务器的配置
Web服务器域名:svr5.tarena.com
默认首页包括:index.php、index.html
迁移网站根目录到/var/ftp
1.修改主配置文件
[root@svr5 ~]# cd /etc/httpd/conf
[root@svr5 conf]# cp httpd.confhttpd.conf.bak
[root@svr5 conf]# vim httpd.conf
276 ServerName svr5.tarena.com:80
292 #DocumentRoot "/var/www/html"
293 DocumentRoot"/var/ftp"
318 #<Directory"/var/www/html">
319 <Directory"/var/ftp">
402 DirectoryIndex index.htmlindex.php
[root@svr5 ~]# mv /var/www/html/* /var/ftp/
2.启动服务
[root@svr5 ~]# service httpd restart
3.测试
在真实机直接访问
http://192.168.4.5/
http://192.168.4.5/muban1
http://192.168.4.5/muban2
实验三:基于域名的虚拟主机
www.google.com 192.168.4.5 google网站
www.baidu.com 192.168.4.5 baidu网站
1.创建虚拟站点准备网页
[root@svr5 ~]# cd /var/www/html/
[root@svr5 html]# mkdir google baidu
[root@svr5 html]# catgoogle/index.html
<h1>GOOGLE!!!</h1>
[root@svr5 html]# catbaidu/index.html
<h1>BAIDU!!!</h1>
2.修改主配置文件
[root@svr5 html]# cat/etc/httpd/conf.d/vhosts.conf
NameVirtualHost 192.168.4.5
<VirtualHost 192.168.4.5>
DocumentRoot /var/www/html/google
ServerName www.google.com
</VirtualHost>
<VirtualHost 192.168.4.5>
DocumentRoot /var/www/html/baidu
ServerName www.baidu.com
</VirtualHost>
[root@svr5 html]# grep ^Include/etc/httpd/conf/httpd.conf
Include conf.d/*.conf
3.启动服务
[root@svr5 ~]# service httpd restart
4.配置hosts文件,支持域名访问
[root@pc205 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4localhost4.localdomain4
::1 localhost localhost.localdomainlocalhost6 localhost6.localdomain6
192.168.4.5 www.google.com
192.168.4.5 www.baidu.com
5.测试
在真实机直接访问
http://www.baidu.com/
http://www.google.com/
http://192.168.4.5/
实验四:构建LAMP网站平台
1.安装软件包
[root@svr5 ~]# rpm -q httpdmysql-server mysql php php-mysql
[root@svr5 ~]# yum -y installmysql-server mysql php php-mysql
2.配置MySQL
[root@svr5 ~]# service mysqld restart
[root@svr5 ~]# chkconfig mysqld on
[root@svr5 ~]# mysqladmin -u rootpassword 'Taren1'
3.配置PHP
[root@svr5 ~]# vim /etc/php.ini
773 ;default_charset ="iso-8859-1"
774 default_charset ="utf-8"
4.配置Httpd
[root@svr5 ~]# mv /etc/httpd/conf.d/vhosts.conf{,.bak}
[root@svr5 ~]# ls/etc/httpd/conf.d/vhosts.conf*
[root@svr5 ~]# vim/etc/httpd/conf/httpd.conf
...
292 DocumentRoot"/var/www/html"
293 #DocumentRoot"/var/ftp"
...
318 <Directory"/var/www/html">
319 #<Directory"/var/ftp">
...
[root@svr5 ~]# cat/var/www/html/test1.php
<?php
phpinfo();
?>
[root@svr5 ~]# cat /var/www/html/test2.php
<?php
$link=mysql_connect('localhost','root','Taren1');
if($link)
echo "Success!!!";
else
echo "Failure!!!";
mysql_close();
?>
5.启动服务
[root@svr5 ~]# service httpd restart
6.测试
[root@pc205 ~]# firefoxhttp://192.168.4.5/test1.php
[root@pc205 ~]# firefoxhttp://192.168.4.5/test2.php
实验五:PHP应用部署(Discuz!论坛系统)
1.建论坛库
[root@svr5 ~]# mysql -uroot -p
Enter password: //验证管理密码
mysql> create database bbsdb; //创建bbsdb数据库
mysql> show databases; //查看数据库
mysql> grant all on bbsdb.* torunbbs@localhost identified by 'pwd123'; //授权数据库
mysql> quit
2.部署论坛网页代码
[root@svr5 ~]# unzipDiscuz_X3.2_SC_UTF8.zip -d tdir
[root@svr5 ~]# ls -F tdir/
[root@svr5 ~]# cp -rf tdir/upload//var/www/html/bbs
[root@svr5 ~]# cd /var/www/html/bbs/
[root@svr5 bbs]# chown -R apachetemplate/ config/ data/ uc_client/ uc_server/
3.安装论坛系统
[root@pc205 ~]# firefoxhttp://192.168.4.5/bbs/install
4.访问论坛前台首页 http://192.168.4.5/bbs/
测试用户注册、发帖、回帖等论坛操作
5.访问论坛管理后台 http://192.168.4.5/bbs/admin.php
管理全局设置、版块、用户、群组……
三.DNS应用
正向解析:根据主机名称查找对应的IP地址
反向解析:根据IP地址查找其对应的主机名称
IANA(Internet Assigned Numbers Authority),整个域名系统的最高权威机构
CNNIC(China Internet Network Information Center),主管国家顶级域
NS重要文件和目录?
/etc/named.conf
/etc/named.rfc1912.zones
/var/named
/var/named/chroot
listen-on port 53 { 192.168.4.5;}; //监听地址和端口
allow-query { any; }; //允许任何客户机查询
zone "tarena.com" IN { //定义正向区域
type master; //区域类型为主DNS
file "tarena.com.zone"; //区域数据文件
};
区域文件内容解释
$TTL 86400 //有效记录的生存周期
@ IN SOA dns1.tarena.com. root.tarena.com. (
2013090901 //更新序号
3H //刷新时间
15M //重试间隔
1W //失效时间
1D //无效记录的生存周期
当客户机从浏览器访问 www.qq.com 时候 ——
1)查找 www.qq.com 的IP地址
缓存 --> /etc/hosts --> 首选DNS服务器(由/etc/resolv.conf文件指定)
2)向获得的IP地址发送一个HTTP访问请求
3)目标网站回应一个网页文件
检查HTTP请求包中的URL地址,
根据URL地址找到对应的网页文件
4)浏览器显示这个网页
CDN,Content Delivery Network,内容分发服务
实验拓扑:
rh6_node1
-----CentOS6.5(private1)----------(private1)
rh6_node2
实验一:搭建主DNS服务器
tedu.cn
svr5.tedu.cn 192.168.4.5
pc205.tedu.cn 192.168.4.205
win7pc.tedu.cn 192.168.4.234
1.安装软件包
[root@srv5 ~]# rpm -q bindbind-chroot
[root@srv5 ~]# yum list bindbind-chroot
[root@srv5 ~]# yum -y install bindbind-chroot
2.修改主配置文件
[root@srv5 ~]# cp -p /etc/named.conf/etc/named.conf.bak
[root@srv5 ~]# vim /etc/named.conf
11 listen-on port 53 { any; };
12 // listen-on-v6 port 53 { ::1; };
17 allow-query { any; };
[root@srv5 ~]# vim/etc/named.rfc1912.zones
43 zone "tedu.cn" IN {
44 type master;
45 file "tedu.cn.zone";
46 };
[root@srv5 ~]# named-checkconf/etc/named.conf
3.修改数据库文件
[root@srv5 ~]# cd /var/named/
[root@srv5 named]# cp -p named.emptytedu.cn.zone
[root@srv5 named]# cat tedu.cn.zone
$TTL 3H
@ IN SOA @ root.tedu.cn. (
、 2015011201 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS dns1.tedu.cn.
dns1 IN A 192.168.4.5
svr5 IN A 192.168.4.5
pc205 IN A 192.168.4.205
win7pc IN A 192.168.4.234
[root@srv5 named]# named-checkzonetedu.cn tedu.cn.zone
4.启动服务
[root@srv5 ~]# rndc-confgen -r/dev/urandom -a
[root@srv5 ~]# service named restart
[root@srv5 ~]# chkconfig named on
5.测试
[root@pc205 ~]# yum -y installbind-utils
[root@pc205 ~]# cat /etc/resolv.conf
search tedu.cn
nameserver 192.168.4.5
[root@pc205 ~]# host svr5.tedu.cn
svr5.tedu.cn has address 192.168.4.5
[root@pc205 ~]# host pc205.tedu.cn
pc205.tedu.cn has address192.168.4.205
[root@pc205 ~]# host win7pc.tedu.cn
win7pc.tedu.cn has address192.168.4.234
实验二:搭建多区域的DNS
新增DNS区域 baidu.com
www.baidu.com --> 1.2.3.4
music.baidu.com --> 5.6.7.8
baidu.com --> 1.2.3.4
1.修改主配置文 # vim/etc/named.rfc1912.zones
48 zone "baidu.com" IN {
49 type master;
50 file "baidu.com.zone";
51 };
2.修改数据库文件
[root@srv5 ~]# cd /var/named/
[root@srv5 named]# cp -ptedu.cn.zone baidu.com.zone
[root@srv5 named]# catbaidu.com.zone
$TTL 3H
@ IN SOA @ root.baidu.com. (
2015011201 ; serial 1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS dns1.tedu.cn.
dns1 IN A 192.168.4.5
www IN A 1.2.3.4
@ IN A 1.2.3.4
music IN A 5.6.7.8
3.启动服务
[root@srv5 named]# service namedrestart
4.测试
[root@pc205 ~]# host www.baidu.com
www.baidu.com has address 1.2.3.4
[root@pc205 ~]# host baidu.com
baidu.com has address 1.2.3.4
[root@pc205 ~]# host music.baidu.com
music.baidu.com has address 5.6.7.8
实验三:添加反向解析
192.168.4.5 ---> svr5.tedu.cn
192.168.4.100 ---> www.tedu.cn
192.168.4.205 ---> pc205.tedu.cn
192.168.4.234 --->win7pc.tedu.cn
1.修改主配置文件
[root@srv5 ~]# vim/etc/named.rfc1912.zones
53 zone "4.168.192.arpa"IN {
54 type master;
55 file"192.168.4.in-addr.arpa";
56 };
2.修改数据库文件
[root@srv5 ~]# cd /var/named/
[root@srv5 named]# cp -ptedu.cn.zone 192.168.4.arpa
[root@srv5 named]# vim192.168.4.arpa
$TTL 3H
@ IN SOA tedu.cn root.tedu.cn. (
2015011201 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H) ; minimum
IN NS dns1.tedu.cn.
5 IN PTR dns1.tedu.cn.
100 IN PTR www.tedu.cn.
205 IN PTR pc205.tedu.cn.
234 IN PTR win7pc.tedu.cn.
3.启动服务
[root@srv5 named]# service namedrestart
4.测试
[root@pc205 ~]# host 192.168.4.5
5.4.168.192.in-addr.arpa domainname pointer svr5.tedu.cn.
[root@pc205 ~]# host 192.168.4.100
100.4.168.192.in-addr.arpa domainname pointer www.tedu.cn.
[root@pc205 ~]# host 192.168.4.205
205.4.168.192.in-addr.arpa domainname pointer pc205.tedu.cn.
[root@pc205 ~]# host 192.168.4.234
234.4.168.192.in-addr.arpa domainname pointer win7pc.tedu.cn.
实验四:基于DNS的站点轮询(负载均衡)
当用户访问www.tedu.cn的时候,2/3用户访问4.100,1/3用户访问4.110
1.修改数据库文件
[root@srv5 ~]# cd /var/named/
[root@srv5 named]# vim tedu.cn.zone
13 www IN A 192.168.4.100
14 www IN A 192.168.4.100
15 www IN A 192.168.4.110
2.启动服务
[root@srv5 named]# service namedrestart
3.测试:目前没有找到好方法,之前在Windows主机可以ping测试的
实验五:泛域名解析
1)简化以下记录:
station1.baidu.com --> 192.168.7.1
.. ..
station200.baidu.com --> 192.168.7.200
2)识别未知域名:
bj.baidu.com --> 119.75.217.56
sh.baidu.com --> 119.75.217.56
.. baidu.com --> 119.75.217.56
1.修改数据库文件
[root@srv5 ~]# cd /var/named/
[root@srv5 named]# vim baidu.com.zone
13 $GENERATE 1-200 station$ IN A 192.168.7.$
14 * IN A 119.75.217.56
2.启动服务
[root@srv5 named]# service namedrestart
3.测试
[root@pc205 ~]# hoststation1.baidu.com
station1.baidu.com has address192.168.7.1
[root@pc205 ~]# host station10.baidu.com
station10.baidu.com has address192.168.7.10
[root@pc205 ~]# hoststation200.baidu.com
station200.baidu.com has address192.168.7.200
[root@pc205 ~]# hoststation201.baidu.com
station201.baidu.com has address192.168.7.201
[root@pc205 ~]# host bj.baidu.com
bj.baidu.com has address119.75.217.56
[root@pc205 ~]# host sh.baidu.com
sh.baidu.com has address119.75.217.56
(把从dns就用pc205来做,避免修改ip和主机名)
实验六:构建主/从DNS服务器
1.准备2台虚拟机,实现DNS主/从结构
1)主DNS:svr5.tedu.cn192.168.4.5
2)从DNS:pc205.tedu.cn192.168.4.205
3)提供 tts7.tedu.cn ---> 118.45.29.31
2. 测试域名解析及主从同步
修改为 tts7.tedu.cn ---> 4.4.4.4
主DNS调整
1.修改主配置文件
[root@srv5 ~]# vim /etc/named.conf
19 allow-transfer { 192.168.4.205; };
2.修改数据库文件
[root@srv5 ~]# cd /var/named/
[root@srv5 named]# vim tedu.cn.zone
$TTL 3H
@ INSOA tedu.cn root.tedu.cn. (
2015011201 ; serial 1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS dns1.tedu.cn.
IN NS dns2.tedu.cn.
dns1 IN A 192.168.4.5
dns2 IN A 192.168.4.205
tts7 IN A 118.45.29.31
3.重启服务
[root@srv5 named]# service namedrestart
从DNS配置
1.安装软件包
[root@pc205 ~]# rpm -q bindbind-chroot
[root@pc205 ~]# yum list bindbind-chroot
[root@pc205 ~]# yum -y install bindbind-chroot
2.修改主配置文件
[root@pc205 ~]# cp /etc/named.conf/etc/named.conf.bak
[root@pc205 ~]# vim /etc/named.conf
11 listen-on port 53 { any; };
12 // listen-on-v6 port 53 { ::1; };
17 allow-query { any; };
[root@pc205 ~]# vim /etc/named.rfc1912.zones
43 zone "tedu.cn" IN {
44 type slave;
45 file "slaves/tedu.cn.zone";
46 masters { 192.168.4.5; };
47 };
[root@pc205 ~]# named-checkconf/etc/named.conf
3.启动服务
[root@pc205 ~]# rndc-confgen -r/dev/urandom -a
[root@pc205 ~]# service named start
[root@pc205 ~]# chkconfig named on
4.测试
[root@pc205 ~]# ls /var/named/slaves/
tedu.cn.zone
[root@pc205 ~]# nslookup tts7.tedu.cn192.168.4.5
Server: 192.168.4.5
Address: 192.168.4.5#53
Name: tts7.tedu.cn
Address: 118.45.29.31
[root@pc205 ~]# nslookup tts7.tedu.cn192.168.4.205
Server: 192.168.4.205
Address: 192.168.4.205#53
Name: tts7.tedu.cn
Address: 118.45.29.31
5.主从更新测试
1)修改主DNS的区域记录
tts7.tedu.cn ---> 4.4.4.4
将序列号+1
2) 重启主DNS的named服务
3) 向从DNS查询域名 tts7.tedu.cn
[root@pc205 ~]# nslookup tts7.tedu.cn 192.168.4.205
Name: tts7.tedu.cn
Address: 4.4.4.4
构建缓存DNS服务器(首选DNS)
企业局域网的内部DNS(全局转发)
# vim /etc/named.conf
options { forwarders { 202.106.0.20; }; };
ISP服务商的公共的DNS(根域迭代)
# vim /etc/named.con
options { directory "/var/named"; };
zone "." {
type hint;
file "named.ca";
};
转载于:https://blog.51cto.com/310987274/1874672