HTTP和FTP服务器的简单配置与实现

常见网络服务器的配置与实现(http和ftp)

环境准备:

  • VMware(能够支持centos7运行的版本就行)
  • 配置一个Linux环境,我用的是centos7(因为不同版本之间的有些命令、配置文件命名不一样,建议和我一样,至于如何去配置Linux环境,网上随便搜一下centos7的安装教程,照做就没问题)

实验目的(亲测可以实现):

(1.)Apache服务器:分别实现Linux和Windows两种系统中利用浏览器,对Apache服务器中个人主页的访问
(2.)FTP服务器:实现在Linux系统中利用命令,以匿名方式,分别实现对FTP服务器中文件的下载与上传;在Windows系统中利用浏览器方式实现对FTP服务器的访问

知识储备(下面需要用到的):

(1.)Apache服务器:

  • 后台进程:httpd
  • 使用端口:80
  • 主配置文件:/etc/httpd/conf/httpd.conf
  • 服务器启动:service httpd start 或者systemctl start httpd.service
    (2.)FTP服务器:
  • 后台进程:vsftpd
  • 使用端口:控制端口21,数据传输端口20(不一定是20端口,根据使用的的模式(PORT模式和PASV模式)不同数据传输端口也可能不一样)
  • 主配置文件:/etc/vsftpd/vsftpd.conf
  • 服务器启动:systemctl start vsftpd

实验步骤及结果:

(1.)Apache服务器配置与实现
Apache服务器搭建:

1.检查系统中有没有安装Apache服务器,当没有信息弹出时表示本机没有Apache服务器需要安装
[root@localhost ~]# rpm -qa|grep httpd
2.使用yum进行安装,安装过程中出现选择的选择y即可,直到安装成功
[root@localhost ~]# yum install httpd
3.开启服务器
[root@localhost ~]# service httpd start
Redirecting to /bin/systemctl start httpd.service
4.测试80端口是否处于监听状态
[root@localhost ~]# netstat -ntlp |grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      38246/httpd  
5.查看本机ip地址
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.112.134  netmask 255.255.255.0  broadcast 192.168.112.255
        inet6 fe80::1ee1:2211:8459:4c66  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:b9:90:00  txqueuelen 1000  (Ethernet)
        RX packets 6710  bytes 5271692 (5.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1628  bytes 161670 (157.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
6.在Linux本机浏览器中访问http://192.168.112.134出现如下界面表示Apache服务器搭建成功

在这里插入图片描述
Apache服务器的实现:
在欢迎界面中可以看到:You should add your website content to the directory /var/www/html/.(意思是如果要部署网站你需要将网页内容放在/var/www/html/这个目录中)
注意:本该在/var/www/html/这个目录下存放个人主页内容,但为了方便起见我就创建一个文件来进行展示,如果要替换成自己的个人主页内容请注意(首页名称为index.html,如果有图片或者其他文件,请创建一个目录存放在/var/www/html/下)

1.查看/var/www/html里面有没有文件
[root@localhost ~]# ls /var/www/html/
2.创建一个文件,用来展示
[root@localhost ~]# vim /var/www/html/index.html
[root@localhost ~]# cat /var/www/html/index.html
Hello,Linux。
此处省略个人主页
3.重启服务器,注意上面说过service httpd start 或者systemctl start httpd.service两种都可以实现对服务器的操作
[root@localhost ~]# systemctl restart httpd.service 
4.在Linux本机浏览器中访问http://192.168.112.134出现如下界面表示个人主页信息部署成功
虽然在Linux浏览器中可以访问成功,但是要想在Windows下访问,还必须关闭防火墙
5.查看防火墙状态,active(running)表示防火墙正在运行中
[root@localhost ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since 二 2020-11-03 18:07:56 CST; 2h 58min ago
     Docs: man:firewalld(1)
 Main PID: 844 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─844 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
6.关闭防火墙,关闭后可进行上一条命令查看防火墙状态,如果为active(dead)表示防火墙关闭成功
[root@localhost ~]# systemctl stop firewalld.service
在Windows下访问http://192.168.112.134/即可出现在Linux浏览器中界面,表示Apache服务器配置完成

在这里插入图片描述
(2.)FTP服务器配置与实现
FTP服务器搭建:

1.和Apache服务器搭建一样,检查本机有没有安装FTP服务器,没有信息表示没有安装
[root@localhost ~]# rpm -qa|grep vsftpd
2.使用yum进行安装,如果出现选择选y即可,等待安装成功
[root@localhost ~]# yum install vsftpd
3.开启vsftp服务
[root@localhost ~]# service vsftpd start
Redirecting to /bin/systemctl start vsftpd.service
4.测试ftp命令能不能使用,可以看到没有这个命令
[root@localhost ~]# ftp
bash: ftp: 未找到命令...
5.使用yum进行安装,还是一样,遇到选择输入y即可
[root@localhost ~]# yum install ftp
6.在进行测试,出现下面情况表示ftp命令成功,quit表示退出ftp服务
[root@localhost ~]# ftp
ftp> quit
7.查看本地IP地址
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.112.134  netmask 255.255.255.0  broadcast 192.168.112.255
        inet6 fe80::1ee1:2211:8459:4c66  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:b9:90:00  txqueuelen 1000  (Ethernet)
        RX packets 13225  bytes 10216200 (9.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5182  bytes 525007 (512.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
8.在Linux本机浏览器中输入ftp://192.168.112.134回车即可访问到FTP界面
一样,要在Windows浏览器中访问到也需要关闭防火墙,和之前命令一样就不赘述了

在这里插入图片描述
FTP服务器文件匿名用户下载:
要想实现匿名用户的文件下载,配置文件/etc/vsftpd/vsftpd.conf里面的anonymous_enable=YES
必须为yes才行,centos中默认是yes,但最好查看一下;
要想实现文件的下载就必须有一个文件,默认情况下,将服务器文件存储在/var/ftp/pub目录下,所以就需要在/var/ftp/pub目录下创建一个下载的文件

1.查看ftp配置文件中的anonymous_enable=YES是否为yes
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 
2.重启服务器
[root@localhost ~]# service vsftpd restart
Redirecting to /bin/systemctl restart vsftpd.service
3.关闭防火墙
[root@localhost ~]# systemctl stop firewalld.service
4.关闭selinux
[root@localhost ~]# setenforce 0
5.在/var/ftp/pub目录下创建一个下载的文件
[root@localhost ~]# ls /var/ftp/pub
[root@localhost ~]# cd /var/ftp/pub/
[root@localhost pub]# vim test.txt
[root@localhost pub]# cat test.txt
我是需要下载的文件
[root@localhost pub]# ls
test.txt
[root@localhost pub]# cd /root
[root@localhost ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg
6.登录ftp服务器,使用匿名用户进行登录,匿名用户有可以使用ftp或者anonymous,密码为空
[root@localhost ~]# ftp 192.168.112.134
Connected to 192.168.112.134 (192.168.112.134).
220 (vsFTPd 3.0.2)
Name (192.168.112.134:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
显示远程目录
ftp> ls
227 Entering Passive Mode (192,168,112,134,139,19).
150 Here comes the directory listing.
drwxr-xr-x    2 0        0              22 Nov 03 13:46 pub
226 Directory send OK.
进入pub目录
ftp> cd pub
250 Directory successfully changed.
查看本地文件
ftp> ! ls
anaconda-ks.cfg  initial-setup-ks.cfg
查看pub目录下的文件
ftp> ls
227 Entering Passive Mode (192,168,112,134,212,113).
150 Here comes the directory listing.
-rw-r--r--    1 0        0              28 Nov 03 13:46 test.txt
226 Directory send OK.
通过get命令下载test.txt文件
ftp> get test.txt
local: test.txt remote: test.txt
227 Entering Passive Mode (192,168,112,134,128,25).
150 Opening BINARY mode data connection for test.txt (28 bytes).
226 Transfer complete.
28 bytes received in 7.2e-05 secs (388.89 Kbytes/sec)
查看本地文件
ftp> !ls
anaconda-ks.cfg  initial-setup-ks.cfg  test.txt
ftp> quit
221 Goodbye.
7.验证文件有没有下载下来
[root@localhost ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  test.txt
[root@localhost ~]# 

FTP服务器文件匿名用户上传:
要想实现匿名用户的上传,保证配置文件/etc/vsftpd/vsftpd.conf里面的anonymous_enable=YES外还需要在配置文件中保证anon_upload_enable=YES(注意=前后不能有空格)

1.修改配置文件,查看anonymous_enable=YES是否为yes,添加anon_upload_enable=YES
root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 
2.创建上传目录,并修改其权限
[root@localhost ~]# cd /var/ftp/
[root@localhost ftp]# ls
pub
[root@localhost ftp]# mkdir upload
[root@localhost ftp]# ls
pub  upload
[root@localhost ftp]# chmod 777 upload
[root@localhost ftp]# ls -l
总用量 0
drwxr-xr-x. 2 root root 22 11月  3 21:46 pub
drwxrwxrwx. 2 root root  6 11月  3 22:02 upload
[root@localhost ftp]# cd /root
3.创建一个上传文件,并修改其权限,因为需要可执行操作
[root@localhost ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  test.txt
[root@localhost ~]# vim aaa.text
[root@localhost ~]# cat aaa.text 
我是上传的文件
[root@localhost ~]# chmod 777 aaa.text 
[root@localhost ~]# ls -l
总用量 16
-rwxrwxrwx. 1 root root   22 11月  3 22:03 aaa.text
-rw-------. 1 root root 1680 11月  2 12:55 anaconda-ks.cfg
-rw-r--r--. 1 root root 1728 11月  2 13:24 initial-setup-ks.cfg
-rw-r--r--. 1 root root   28 11月  3 21:48 test.txt
4.关闭防火墙,关闭selinux
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
5.重启服务器
[root@localhost ~]# service vsftpd restart
Redirecting to /bin/systemctl restart vsftpd.service
6.查看upload上传目录中有没有文件
[root@localhost ~]# ls /var/ftp/upload/
7.使用匿名用户登录,上传文件
[root@localhost ~]# ftp 192.168.112.134
Connected to 192.168.112.134 (192.168.112.134).
220 (vsFTPd 3.0.2)
Name (192.168.112.134:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
查看远程目录
ftp> ls
227 Entering Passive Mode (192,168,112,134,36,45).
150 Here comes the directory listing.
drwxr-xr-x    2 0        0              22 Nov 03 13:46 pub
drwxrwxrwx    2 0        0               6 Nov 03 14:02 upload
226 Directory send OK.
进入upload目录
ftp> cd upload
250 Directory successfully changed.
查看upload目录下的文件
ftp> ls
227 Entering Passive Mode (192,168,112,134,85,211).
150 Here comes the directory listing.
226 Directory send OK.
查看本地文件
ftp> !ls
aaa.text  anaconda-ks.cfg  initial-setup-ks.cfg  test.txt
上传aaa.test文件
ftp> put aaa.text 
local: aaa.text remote: aaa.text
227 Entering Passive Mode (192,168,112,134,188,25).
150 Ok to send data.
226 Transfer complete.
22 bytes sent in 3.4e-05 secs (647.06 Kbytes/sec)
查看upload目录下的文件
ftp> ls
227 Entering Passive Mode (192,168,112,134,66,220).
150 Here comes the directory listing.
-rw-------    1 14       50             22 Nov 03 14:10 aaa.text
226 Directory send OK.
ftp> quit
221 Goodbye.
8.检查文件有没有上传上去
[root@localhost ~]# ls /var/ftp/upload/
aaa.text
[root@localhost ~]# 

至此,两个服务器的简单配置与实现已经实现。其中有些点容易出错,在此总结下:
1.每次修改配置文件后别忘了重启服务
2.进行哪一个功能之前先查看下相应配置文件中的配置
3.在配置文件的修改中注意=前后不能有空格
4.别忘了给需要操作的文件或者目录赋予相应的权限

总结:

本次服务器的配置与实现,来源于学校的Linux课程实验作业,简单的配置与实现还是很简单,但是要是想实现复杂的功能,就需要了解服务器的运行原理,配置文件一些具体的信息,后期有时间或者有用到的话再进行总结。对于没有学过Linux命令的同学,可以先看看Linux里面的基本命令使用以及Vim编译器的使用在来看这个比较好理解。如有问题,欢迎留言。

这个程序是利用前些日子写的HFS程序写成的。所以,界面看起来差不多。但是,这个程序除了保留对.NET 3.5网站的支持以外还加入了FTP服务的支持,而且在程序中添加了随机启动和自动运行两个选项。这样用户就可以很方便的快速架设起FTP服务器HTTP服务器。不过要注意一点,这个软件虽然可以绕过系统服务独立提供HTTP协议、FTP协议支持,但是,避不开操作系统对于连接数的限制。也就是说如果在类似于WindowsXP这样的个人操作系统上使用这个软件,在使用前最好先修改一下系统对于连接数的限制,一般微软的个人版操作系统对于连接数都有所限制(WindowsXP限制到10个连接左右),如果不修改这些限制,那么同时连接的用户数量很可能会因为,操作系统自身对于连接数的限制而受到影响。(本软件支持HTML网页与.NET 3.5或3.5以下的ASPX网站。另外,本程序需要.NET 3.5环境支持) 更新(2013-12-02) 1、修改了软件布局 2、修正了FTP服务程序的字符集,目前提供了“UTF-8”、“GB18030”两种字符集供用户选择,以便适应不同的FTP客户端。(一般情况Windows下的FTP客户端默认支持“GB18030”,Linux、Uinx下的FTP客户端默认支持“UTF-8”。) 注意:如果是以前的用户在升级这个版本时,除了卸载旧有程序以外,还需要删除原有配置文件(配置文件一般在安装目录下,名为“config.xml”)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值