1000分!我想搞网站(下载类网站),请问怎样搭建服务器?

1000分!我想搞网站(下载类网站),请问怎样搭建服务器?,第1张

Squid是Linux下最为流行的代理服务器软件,它功能强大,支持对HTTP、FTP、Gopher、SSL、WAIS等协议的代理; 设置简单,只需对配置文件稍稍改动就可使代理服务器运转起来。此外,Squid具有页面缓存功能,它接受用户的下载申请,并自动处理所下载的数据。

前期准备

Squid对硬件的要求是: 内存不应小于128M,硬盘转速越快越好,最好使用服务器专用SCSI硬盘,对CPU的要求不高,400MHz以上即可。笔者所管理的代理服务器是Inter2150,安装了Red Hat Linux 72,安装时就带有Squid。有两块网卡,一块eth0配外部地址(比如211889966),一块eth1配内网地址(比如19216851)。如果安装了Gnome或其他图形界面,就可以在netconfig中给两块网卡配置IP地址,不然的话,可在/etc/sysconfig/network-script路径下更改文件ifcfg-eth0和ifcfg-eth1。

首先编辑ifcfg-eht0,有以下几项:

DEVICE=eth0 (表示用哪块网卡)

IPADDR=211889966 (设置该网卡的IP地址)

NETMASK=255255255252 (设置子网掩码)

同样编辑ifcfg-eth1,然后运行命令network restart就可以使配置生效了。对eth0、eth1进行配置后,可以用ifconfig命令来查看是不是配置成功。

如果服务器只有一张网卡,也不用担心,Linux可以在一块网卡上绑定多个IP地址。在图形界面下配置很简单,不赘述。如果在文本状态下配置,可以将ifcfg-eth0复制并命名为ifcfg-eth0:1,把它完全当成两块网卡来配就可以了。

Squid的安装

1 安装Linux

安装Linux在硬盘分区时要注意,最好不要让系统自己分区,而是手动分区。通常,在Linux系统中有且仅有一个交换分区(在文件系统形式中选择Linux swap),它用做虚拟内存,建议将交换分区的大小设置为内存的两倍。当硬盘的大小超过了8G,要再建立一个128M(稍稍大一点,不会出错)的boot分区,这是为了避免将系统内核文件放到1024磁道以外,如果将boot作为root分区的一个子目录,内核文件就会安装在root分区的任何地方。因为要用做代理服务器,建议再分一个分区“var”,作为Squid的缓冲区,所以根据磁盘大小尽量分配大一点,最后将硬盘的剩余空间全部分给root分区。

2 安装Squid

新手安装Squid,建议在安装Linux时就选中Squid,它并不是默认选中项,而且也不在选择的大类中,要在详细列表中查找。如果没有安装,又不想重装系统,可以从wwwsquid-cacheorg下载Squid软件。

Squid代理服务器的设置

安装好Squid后几乎就可以用了,用编辑器打开/etc/squid/squidconf文件(以root登录),Squid的配置文件共有125个配置项,但是一般来说,只要修改几个配置项即可。找到“http_access deny all”并改为“http_access allow all”令所有的电脑都能通过代理服务访问互联网资源。其实只要修改该项,Squid服务就可以启动了。

为了更好地控制代理服务器的行为,还有几个可配置项需要考虑:

1 cache_mem: 设置代理服务使用的内存大小,一般推荐为物理内存的三分之一。

2 cache_dir:设定缓存的位置、大小。一般格式如下:

cache_dir /var/spool/squid/cache 100 16 256

cache_dir指定cache目录的路径,默认为/var/spool/squid/cache。

/var/spool/squid/cache代表缓存的位置,使用squid -z指令会在这个目录下建立存储交换文件(swap files)的目录。100表示缓存最大为100M,16和256代表一级和二级目录数。实际使用时,100M是不够的,如果硬盘够大,可以增加存储空间,比如:cache_dir /var/spool/squid/cache 2000 16 256。

3 http_port:代理服务使用的端口号,默认为3128,可以使用其他的端口,注意将前面的注释符号“#”去掉。另外,使用端口不能和其他的服务重复,如果使用1024以下的端口,Squid必须以root身份运行。

4 maximum_object_size: 指定Squid可以接收的最大对象的大小。Squid缺省值为4M,可以根据自己的需要进行设定。

启动Squid

Squid可以设置为自动启动。运行命令setup,在System services选项中选中Squid。设置后每次重新开机,都会自动执行Squid。

如果是第一次启动,要建立/var/spool/squid下的暂存资料目录,先输入squid -z,再启动Squid(直接运行Squid即可)。

启动Squid后,在另一台Windows电脑上(以Internet Explorer 50为例)运行IE,单击“工具”,接着单击“Internet选项”,再单击“连接”选项卡,选择“局域网设置”。在“局域网设置”窗口中的“地址”处填上Squid服务器的IP地址,在“端口”处填上“3218”(Squid软件默认代理的端口号),确定后退出。接下来,随意浏览一些网站检查Squid的运行情况,也可以查看logs下的accesslog和cachelog,看看代理是否运行正常。

代理服务器的安全

代理服务器是一个单位对外的门户,安全至关重要。因此,应该采取必要的防护手段。

1 防火墙的配置

为了保证代理服务器的安全,最好加上防火墙,可以用IPchains或IPtable。

要使用ftp代理,还必须载入相关模块。可以使用以下命令:

modprobe ip_comtrack_ftp

modprobe命令会自动载入指定模块及其相关模块。iptables_filter模块会在运行时自动载入。

下面用IPtables一步一步地来建立包过滤防火墙,需要说明的是,在这个例子中,主要是对内部的各种服务器提供保护。

给IPtables规则设置一个存储路径: iptables -restroe /etc/sysconfig/iptables。

现在开始考虑规则。在这里需要注意的是,服务器/客户机交互是双向的,所以不仅仅要设置数据包出去的规则,还要设置数据包返回的规则,下面先建立针对来自Internet数据包的过滤规则。

1 首先禁止转发任何包,然后再一步步设置允许通过的包。

2 先允许源为内网的所有端口的TCP包。

3 再允许目的为内部网(19216850/24)的FTP数据包。

4 允许目的为内网的来自Internet的非连接请求TCP包。

5 最后一条接收所有UDP包,主要是针对oicq等使用UDP的服务。

6 icmp包通常用于网络测试等,故允许所有的icmp包通过。但是黑客常常采用icmp进行攻击,如“ping of death”等,所以我们采用limit匹配扩展加以限制。对不管来自哪里的icmp包都进行限制,允许每秒通过一个包,该限制触发的条件是10个包。

不需要允许WWW服务的包,所有WWW服务由Squid代理。

iptables -P FORWARD DROP

iptables -A FORWARD -p tcp -s 19816852 -i eth0 -j ACCEPT

iptables -A FORWARD -p tcp -s 0/0 --sport ftp-data -d 19816850/24 -i eth0 -j ACCEPT

iptables -A FORWARD -p tcp -d 198168800/24 ! -syn -i eth0 -j ACCEPT

iptables -A FORWARD -p udp -d 198168800/24 -i eth0 -j ACCEPT

iptables -A INPUT -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT

说明:

-A加入(append) 一个新规则到一个链 (-A)的最后。(用-I可以插入一条规则,插入位置序号写在Forward后,-D在链内某个位置删除(delete) 一条规则,-R在链内某个位置替换(replace) 一条规则 )。

Forward链、Input链和Output链的区别如下:

1 如果数据包的目的地址是本机,则系统将数据包送往Input链。如果通过规则检查,则该包被发给相应的本地进程处理;如果没有通过规则检查,系统就会将这个包丢掉。

2 如果数据包的目的地址不是本机,也就是说,这个包将被转发,则系统将数据包送往Forward链。如果通过规则检查,则该包被发给相应的本地进程处理; 如果没有通过规则检查,系统就会将这个包丢掉。

3 如果数据包是由本地系统进程产生的,则系统将其送往Output链。如果通过规则检查,则该包被发给相应的本地进程处理;如果没有通过规则检查,系统就会将这个包丢掉。

-s指定源地址,-d指定目的地址。

-p 指定协议,比如-p tcp。

-i或-o指定网络接口。需要注意的是,对于Input链来说,只可能有-i,也即只会有进入的包;同理,对于Output链来说,只可能有-o,也即只会有出去的包。只有Forward链既可以有-i的网络接口,也可以有-o的网络接口。

Drop表示符合规则就丢弃包,Accept相反。

然后,执行命令IPtables -L,可以查看已经建立的规则,并用命令IPtables -save将规则写入文件。

通过以上步骤,我们建立了一个相对完整的防火墙,只对外开放了有限的几个端口,同时提供了客户对Internet的无缝访问。

2 其他建议

为了安全,最好不要在一台机器上运行太多服务。为了方便调试,一般都会提供telnet和ftp服务,但这往往是安全隐患,可以在/etc/hostallow和/etc/hostdeny中进行限制。比如:局域网的内网网段为: 19216800,可以在hostsallow文件中加入一行: telnet:19216800/25525500。在hostsdeny中加入一行:all:all。因为是先执行hostallow,再执行hostdeny。所以上面就只打开了内网网段的telnet服务,而对外关闭。如果想打开其他服务,可以再加。如果还想加上机器名,可以在IP后加上“@abc”(abc代表某机器名)。想关闭所有服务、所有IP、所有机器名,可以在hostdeny中写上“all:all@all”。配置好了运行命令xinetdd,配置就生效了。如果想远程访问代理服务器,最好用SSH(因为telnet是明码传送,所以很不安全,SSH可以理解为加密的telnet),它的配置和应用比较简单,不赘述

平台上。

好了,让我们来实际操作一番:

假设我是一个局域网用户,我的内部IP地址是10101010,我是通过指定网关1010101上网的,我在自己的计算机上安装了“动态IP解析”软件和WEB服务器还有FTP服务器准备开一个网站和FTP服务器。以下是我的设置过程:

1 到我的网关(代理)服务器1010101 上安装“PortTunnel”软件(拷贝即可)

2 针对我需要的WEB服务进行配置,点击“Add”按钮,然后配置如下:

注意:

Port In填的端口号是80,这样填的前提是网关(代理服务器)上没有WEB服务器在运行,否则请更换其它端口,例如“8080”(在这种情况下,用户必须通过名:8080来访问你的网站。)

3 针对我需要的FTP服务进行配置,点击“Add”按钮,然后配置如下:

注意:

Port In填的端口号是21,这样填的前提是网关(代理服务器)上没有FTP服务器在运行,否则请更换其它端口,例如“2100”(在这种情况下,用户必须通过ftp://名:2100来访问你的FTP服务器。)

4 设置成功后的正常运行界面(平时这个界面可以关掉,不会影响使用)

注意:

正常运行时,你设置的通道的状态应当是“Active”,如果是“Failed”那很可能你设置

的“Port In”端口号和网关(代理服务器)上的现有端口冲突。

5 测试一下:

如果通过能访问你的网站或FTP://能访问你的FTP服务器,

那就成功了。

重要提示:

如果局域网内有多个用户想架设网站,那么注意在设置的时候,一个“Port In”端口只能为一个用户服务,例如,usera使用了“80”作“Port In“,那么他的网站就可以通过“”来访问,而userb就只能使用牡览硪彩且谎�/a>

附: PortTunnel的下载地址:

(中文)

(English)

这里,Port In是要监听的端口,port out是要映射的端口。比如你想监听服务器的88端口,映射到你的机器的80端口,这里的port in便是88,port out便是80。默认的FTP端口是21,如果想开FTP服务器,这里可以是21。添加后,点"start",服务器开始。程序自动加入系统服务,每次开机便会自动启动。

以上两步完成,一切OK!

首先你必须具备的条件:

1:你必须具有网管权限

2:主服务器操作系统是WIN2K。

下载一个FTP服务端软件,FTP serv-u(本机上如果装了IIS也可以),完成安装。

下面是在服务器(也就是局域网代理服务器)上要做的工作,以保证你的FTP可以对外服务。

一,建产DNS记录

1、打开DNS控制台:选“开始菜单→程序→管理工具→DNS”。

2,建立域名“ftpdashacom”映射IP地址“192168050”(这个IP就是客户端的真

正IP)的主机记录。

①建立“com”区域:选“DNS→WY(你的服务器名)→正向搜索区域→右键→新建区域”,然后根据提示选“标准主要区域”、在“名称”处输入“com“

②建立“dasha”域:选“com→右键→新建域”,在“键入新域名”处输入“dasha”

③建立“ftp”主机。选“dasha→右键→新建主机”,“名称”处为“ftp”,“IP地址”处输入“192168050”,再按“添加主机”。

现在测试一下,“运行”输入"ping ftpdashacom"

二、“ftpabccom”的设置

1、打开“默认FTP站点”属性窗口:选“默认FTP站点→右键→属性”即可。

2、设置“FTP站点”:在“IP地址”处选“192168050”,端口号保持默认值“21”不变。

3、设置“消息”:在“欢迎”框中输入登录成功后的欢迎信息,“退出”中为退出信息。

4、设置“主目录”:在“客户机”中按“浏览”按钮选择目标目录“E:\myweb”。

5、设置“安全帐号”:默认的,匿名用户(Anonymous)被允许登录,如果有必要,此处可选拒绝其登录以增加安全性;或增加其他用于管理此FTP服务器的用户名(默认的为“Administator”)。

6、设置“目录安全性”:此处可以设置只被允许或只被拒绝登录此FTP服务器的的计算机的IP地址。

7、如需要,也可在“默认FTP站点”处单击右键选“新建”来新建FTP的虚拟目录。

三、“ftpdashacom”的测试

1、在浏览器中登录:格式为“ftp://ftpdashacom”或“ftp://用户@ftpabccom”。如果匿名用户被允许登录,则第一种格式就会使用匿名登录的方式;如果匿名不被允许,则会弹出选项窗口,供输入用户名和密码。第二种格式可以直接指定用某个用户名进行登录。

2、在DOS下登录:格式为“ftp ftpabccom”。

3、用FTP客户端软件登录

4、如果“主目录”下有与用户同名的“虚拟目录”或“实际目录”,则该用户会直接登录到其同名目录中。

注意第二部的工作,你还可以填加另一个FTP站点,不过之前,你还得进行第一步的工作。

三,开始客户端的FTP服务器软件设置。

下边的工作便是serve-u的设置了,再转一个:

Serv-U 30017 使用详解 (转贴)

主要新功能:

以 WindowsNT/2000/XP 的 Service 形式运行, 可以随开机而启动服务

把服务器和管理工具分离, 而管理工具可以远程配置 Serv-U 3 的服务器

虚拟路径映射 (Virtual path mappings), 可以很方便地把不同分区, 甚至

不同机器上的路径都映射到你想它出现的位置, 对于登录用户来说, 他根本

看不出虚拟映射和实际有什么分别

似乎对 DoS (Deny Of Service) 攻击有点对策, 实际应用情况不清楚

主要特性:

看来内存比 2x 占用得多不了多少 (当管理工具没打开时)

至少不会比 2x 慢

注册码有点难度, 竟然出了几天都没注册机

更有cracker说它用了 ECC (Elliptic Curves) , 很可能永远都出不了注册机

现在有的是破解版, 可能有人感觉不太舒服吧

综上所述, 对于 2x 的用户来说, 如果没用到主要的新功能, 不换也没什么不好,

但如果想换又不知如何配置, 请看下回分解~~~

原文再续书接上一回, 话说上次说到对于想升级又怕不会用的人, 你可以放心了,

你只要保留你原本 2x, 升级安装上去, Serv-U 3 就会自动按原设定配置服务器,

根本不用你动手, 所以, 这篇基本上是废话

欲知重头安装该怎样做, 或想知各种功能的用法, 请看下回分解!

Step #1 安装

点击安装程序, 直点 Next 就完成了 没什么好说的

Step #2 第一次运行

安装完成后, 服务器的Service会启动, 管理工具会自动运行, 你看到的, 是要你

配置好它的 Setup Wizard 唔 基本上 Next 下去就是了, 下面几个可能你

会有兴趣:

Domain name: 域的名字

Allow anonymous access: 要让匿名登录吗 (选 No 可以跳过这部分)

Annoymous home directory: 匿名登录后, 用户会看到的目录

Lock annoymous users into their home directory: 选Yes, 不要让他们乱跑

Create named account: 要建立有非匿名用户吗

输入用户名, 密码

(大约和上面过程一样)

Account admin priviledge: 这个用户有远程管理 Serv-U 3 的权限吗

呵呵 通常选 No priviledge 吧

嘿! 基本上搞好了!

Step #3 认识 Serv-U 3 管理工具的的界面

左边的树状结构是 Serv-U 3 的结构层次:

1 Serv-U Server 下面是管理工具在管理的 FTP,

其中<<Local Server>>就是你机上那个服务器了

2 在每个服务器中

License: 给你填注册码

Settings: 服务器总配置

Activity: 给你监测本服务器的运作情况

Domains: 下面的各个 Domain, 是以你的机器拥有的不同IP开的服务器,

按刚才"第一次运行"来做, 你现在会有一个 Domain 了

Step #4: 整体配置

在<<Local Server>>的Settings:

General: 总体限制, 参数设置

Max Speed- 总体限速,

不设的话, 极速可达约 1MBytes/S

Max no of users - 同时的连接数目

不要太多, 很伤硬盘的, 建议不超过20

Check Anonymous password - 匿名登陆密码检查,

不要选, 否则 IE 不能进入

Block Anti Time-out schemes

Block "FTP_bounce"

主要是把些无聊人赶掉, 都选吧, 细节看 Help

Block users who connect

随意, 用于"罚"一下用多线程下载的用户

其馀选项看 Help 吧

Dir Cache: 目录缓存

用户较多时, 可以明显加快用户浏览的速度,

把它打开, 用默认的 MaxSize 25, Time-out 600 sec 差不多了

Auto-Refresh 选取后你会看到在缓存中有哪些目录

Advanced:

Server:

Enable security - 安全设置生效

一定要选上! 否则你会死得很难看 KAKAKA

Sockets:

Inline out-of-band data

选取后听说可以防止 DoS 攻击, 但默认没选, 你自己决定吧

至于如何配置用户, 就请看下回分解!

原文再续书接上一回, 话说上次说到我们有了个服务器,

但没设好域里的用户, 也是没用的, 所以

Step #1: 域 (Domain) 配置

在 Domains 下选取你的域吧!

Name: 域的名字

Domain IP address: 为简单起见, "Use any available IP address" 算了吧

Domain type:

Store in INI file 比较好,

它把你的服务器的设置都放到 ServUDaemonini ,

重装系统后把这文件放上去就行了

FTP port number:

通常是 21

Settings:

General:

Max no of users - 同时的连接数目

和上一个差不多, 不过是在域里限制

Virtual path mapping - 请看 VPM 篇

Links - 同上

Messages:

很好玩的, 可以把别人登录看到的信息都改掉

Logging:

就是 log 啊 不懂 看 help!

Step #2: 用户帐号

在 Domains 下

Users 右击出现新增/移除用户选单

点选任一用户后, 各项用户参数意义:

Account:

Disable account: 暂时令它失效

Automatically remove account on date: 到了某日期就删掉该用户! (爽!)

User name: 不用多说吧

Password: 留空不填代表不用密码

Home directory: 这用户登录时看到的第 1 个目录

Lock user in home directory:

最如想在用这帐号登陆后, 看到的根目录是所设的 Home Directory,

就选吧 (建议选取, 否则地址会比较难看)

Priviledge: 这用户远程管理 Serv-U 服务器的权限, 具体看 HELP

General:

Allow only N login(s) from same IP address

限制同一 IP 用这帐号的连接数, 选了它吧!

如果考虑到用 IE 的用户, 最好设两个连接,

否则对方可能不能下载, 如果狠心点, 设 1 个也没关系!

Max upload Speed

用这帐号, 每一个连接上传文件的极速

Max download Speed

用这帐号, 每一个连接下载的极速

Idle time-out

发呆多久才 kick 他出去, 个人认为 5 分钟都够了

Sesson time-out

无论他有没有发呆, 上来一段时间后就把他 KICK 走, 即使他在下载

什么东东也照踢不误, 并且在 1 分钟内不让他再上来 这样在很忙下载

站点中可能有用, 可以让多点人有机会访问, 不过确是有点讨厌 呵呵

Max no of users

这帐号同时允许的总连接数目

其馀的比较少用, 看 HELP 吧

Dir Access:

这里设置这用户对你硬盘中, 实际路径的读写权限, 关键哦!

无论是 HOME 目录好, 映射目录也罢 要让用户用得到, 也要在这里加

具体意义在界面上也很明确吧 不多说了, 但别忘了

(记得把 HOME 目录在这里加多一次, files-[read], directories-[list]

这样人家看能看到, 下载到你的东东)

Step #3: 群组帐号

在 Domains 下

Groups 右击出现新增/移除用户选单

看上去很简单是不是 对了 把一个 Group 设置了一点参数,

在任一用户 - Account - Group(s) 中把他加进去, 他就拥有那个参数的权限

有什么用 你自己想想吧

哈哈 基本上我们都搞好了, 但是重头戏 Virtual path mappings 还没出场,

到底这东东有什么用处, 又是什么设置的呢 请看下回分解!

原文再续书接上一回, 话说上次说到 Virtal path mappings 就打住不说,

究竟是什么原因呢 这是因为很多老鸟都对上面几篇一屑不顾, 但却往往

死在 VPM 手上, 但是死在 VPM 的石榴裙下也甘心了 呵呵

在 Domains 下

Settings:

General:

Virtual path mappings:

Step #1: 虚拟路径映射的概念:

1 Physical path: 目录的实际路径

可以是任何Windows分区上任何东东, 甚至网络邻居里的也可以

2 Mapped to: 映射到 (这个目录必须实际存在)

你想把它"变到"你硬盘里的那个目录呢

你可以用到两个变量:

%HOME% : 即"Home directory"

%USER% : 用户名

3 mapped path name:

这个虚拟目录在显示出来的名字

4 记得要在各用户的 Dir access 中设置它对实际路径的权限哦!!!!

Step #2: 举例:

1 你想把 f:\movie\ 映射到匿名登录后看到的 \MyMovie 目录:

Physical path: f:\movie\

Mapped to: %HOME%

mapped path name: MyMovie

在 anonymous 帐号对 f:\movie\ 设 file - read, dir - list 权限

2 你想把 g:\mp3\ 映射到 alex 登录后看到的 \Audio\MySongs 目录:

Physical path: g:\mp3\

Mapped to: %HOME%\Audio

mapped path name: MySongs

在 alex 帐号对 g:\mp3\ 设 file - read, dir - list 权限

哈哈 还有封人的方法没说吧 欲知后事如何, 请看下回分解!

关于多级目录映射的补充。。 来自fiend-smth

有点混乱。。嘿嘿

原文再续书接上一回, 封人对于很多人来说都是很过瘾的事,

所以就有这篇东东了

Step #1 按 IP 封

在 Serv-U 中, IP Access 很多地方都有出现, 这就是限制 IP 访问的地方了

Domain- Settings 里有; 各用户- Settings 里有; 各群组- Settings 里也有

IP access:

如果要限制 IP, 就在这里设置 限制是由上到下执行检查的

这里给出一些例子: (!注意次序!)

1 只对某几个 IP 开放帐号:

----------------

A: 202382418

A: 202382492

A: 202382483

D:

----------------

意思是, 对 202382418 , 202382492 , 202382483

开放, 其馀都不准进入

2 只对一个网段开放:

----------------

A: 20238241

D:

-----------------

意思是, 只对 20238241 开放, 其馀拒绝

3 只拒绝部分IP

--------------

D: 123166

D: 2023823456

A:

--------------

拒绝 123166 的B类网段, 及 2023823456 访问,

其馀都欢迎

看了三个例子, 大家都志该知道 IP 限制如何设置吧,

要注意的一点是, 最后一个限制项目, 最好要设成

A: (其馀都允许进入) 或

D: (其馀都不准进入)

否则, 可能会得不到预期中的限制的效果

Step #2 看不爽封

如果有个人连了上来, 你看他不爽想封掉他

在 <<Local Server>> - Activity 或

你的Domain - Activity 会看到他,

右击, KILL USER

他在你FTP的命运就在你手中了

FTP基础知识

您是否正准备搭建自己的FTP网站?您知道FTP协议的工作机制吗?您知道什么是PORT方式?什么是PASV方式吗?如果您不知道,或没有完全掌握,请您坐下来,花一点点时间,细心读完这篇文章。所谓磨刀不误砍柴功,掌握这些基础知识,会令您事半功倍。否则,很可能折腾几天,最后一事无成。

FTP基础知识

FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。

FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。

PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。

当需要传送数据时,客户端在命令链路上用 PORT命令告诉服务器:“我打开了端口,你过来连接我”。于是服务器从20端口向客户端的端口发送连接请求,建立一条数据链路来传送数据。

PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。

当需要传送数据时,服务器在命令链路上用 PASV命令告诉客户端:“我打开了端口,你过来连接我”。于是客户端向服务器的端口发送连接请求,建立一条数据链路来传送数据。

从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。而FTP的复杂性就在于此。

FTP服务器端的注意事项

一、FTP服务器是公网IP,用公网动态域名;或是内网IP,用内网专业版TrueHost

1、服务器如果安装了防火墙,请记住要在防火墙上打开FTP端口(默认是21)。

2、所有FTP服务器软件都支持PORT方式。至于PASV方式,大部分FTP服务器软件都支持。支持PASV方式的FTP服务器软件,也可以设置为只工作在PORT方式上。

3、为了PASV方式能正常工作,需要在FTP服务器软件上为PASV方式指定可用的端口范围(设置方法)。此外,还要在服务器的防火墙上打开这些端口。当客户端以PASV方式连接服务器的时候,服务器就会在这个端口范围里挑选一个端口出来,给客户端连接。

二、FTP服务器是内网IP,用内网动态域名标准版cmnatproy

这种情况下,FTP服务器不需要做特殊设置,只要支持PASV方式就可以了。大部分FTP服务器软件都支持PASV方式。

FTP客户端的注意事项

请注意:选择用PASV方式还是PORT方式登录FTP服务器,选择权在FTP客户端,而不是在FTP服务器。

一、客户端只有内网IP,没有公网IP

从上面的FTP基础知识可知,如果用PORT方式,因为客户端没有公网IP,FTP将无法连接客户端建立数据链路。因此,在这种情况下,客户端必须要用PASV方式,才能连接FTP服务器。大部分FTP站长发现自己的服务器有人能登录上,有人登录不上,典型的错误原因就是因为客户端没有公网IP,但用了IE作为FTP客户端来登录(IE默认使用PORT方式)。

作为FTP站长,有必要掌握FTP的基础知识,然后指导您的朋友如何正确登录您的FTP。

二、客户端有公网IP,但安装了防火墙

如果用PASV方式登录FTP服务器,因为建立数据链路的时候,是由客户端向服务器发送连接请求,没有问题。反过来,如果用PORT方式登录FTP服务器,因为建立数据链路的时候,是由服务器向客户端发送连接请求,此时连接请求会被防火墙拦截。如果要用PORT方式登录FTP服务器,请在防火墙上打开 1024以上的高端端口。

三、连接用内网标准版cmnatproy搭建的FTP服务,必须要用PASV方式。连接任何公网FTP服务器、或用内网专业版TrueHost搭建的FTP服务器,PORT方式和PASV方式都可以使用。

当然,使用PORT方式的时候,还要满足上面的两个条件。

四、常见的FTP客户端软件PORT方式与PASV方式的切换方法。

大部分FTP客户端默认使用PASV方式。IE默认使用PORT方式。

在大部分FTP客户端的设置里,常见到的字眼都是“PASV”或“被动模式”,极少见到“PORT”或“主动模式”等字眼。因为FTP的登录方式只有两种:PORT和PASV,取消PASV方式,就意味着使用PORT方式。

IE:

工具 -> Internet选项 -> 高级 -> “使用被动FTP”(需要IE60以上才支持)。

CuteFTP:

Edit -> Setting -> Connection -> Firewall -> “PASV Mode”

File -> Site Manager,在左边选中站点 -> Edit -> “Use PASV mode”

FlashGet:

工具 -> 选项 -> 代理服务器 -> 直接连接 -> 编辑 -> “PASV模式”

FlashFTP:

选项 -> 参数选择 -> 代理/防火墙/标识 -> “使用被动模式”

站点管理 -> 对应站点 -> 选项 -> “使用被动模式”

快速连接 -> 切换 -> “使用被动模式”

LeechFTP:

Option -> Firewall -> Do not Use

五、请尽量不要用IE作为FTP客户端

IE只是个很粗糙的FTP客户端工具。首先,IE60以下的版本不支持PASV方式;其次,IE在登录FTP的时候,看不到登录信息。在登录出错的时候,无法找到错误的原因。在测试自己的FTP网站的时候,强烈建议不要使用IE。

FTP建站的详细配置过程

请参考这个网页的说明来配置:

使用Serv-U建立FTP网站

高级话题

一、为什么没有公网IP,也能使用PORT方式登录FTP?

NAT 网关的工作方式是在TCP/IP数据包的包头里找局域网的源地址和源端口,替换成网关的地址和端口。对数据包里的内容,是不会改变的。而使用PORT方式登录FTP的时候,IP地址与端口信息是在数据包里面的,而不是在包头。因此,没有公网IP,使用PORT方式是无法从internet上的ftp服务器下载数据的。

但是,极少数的NAT网关也支持PORT方式。这些NAT网关连数据包里面的内容都扫描,扫描到 PORT指令后会替换PORT方式的IP和端口。在这种NAT网关下面,用PORT方式就没问题了。不过,这些网关也只扫描21端口的数据包,如果FTP 服务器不是用默认的21端口,也无法使用PORT方式。

二、内网可以用PORT访问其他FTP,为什么不能用PORT访问自己的TrueHost FTP?

下面要讨论的问题,只是为了说明一些原理,是不影响实际使用的。如果您没有兴趣深究这些原理,不必花时间看。

内网用户通过支持PORT方式的NAT网关,访问自己本机利用TrueHost建立的FTP服务器,FTP命令链路的建立过程如下:

FTP客户端

101001

端口 <==> ISP NAT网关

6114412

端口 <==> TH服务器

端口21 <==> TH客户端 <==> 用户FTP服务器

101001

端口21

FTP客户端通过ISP的NAT网关、科迈TrueHost服务器、TrueHost客户端,连接用户本机的FTP服务器的21端口。

当需要下载数据的时候,FTP客户端通过这条命令链路,向FTP服务器发送PORT命令。假设命令为:

PORT 10,10,0,1,30,4 (即IP=101001 端口=30256+4=7684)

当命令通过ISP的NAT网关的时候,NAT网关判断目的端口是21,并且是PORT命令,于是,修改命令里的IP和端口,替换为自己的IP和端口,比如:

PORT 61,144,1,2,50,6 (即IP=6114412 端口=50256+6=12806)

用户的FTP服务器最终收到的是上面这个PORT命令。于是,FTP服务器向这个IP和端口发送连接请求,建立数据链路。

用户FTP服务器

101001

端口20 <==> ISP NAT网关

6114412

端口12806 <==> FTP客户端

101001

端口7684

但是,因为NAT网关的公网IP只能接收外来的连接请求。就是说,6114412:12806只能接收其他公网IP的连接请求,对于从NAT内部(101001:20)发起的连接请求,是无法建立连接的。为什么?原因很简单,因为内网IP要访问外网,必须要通过NAT建立映射。于是FTP数据链路无法建立。于是,用户无法在自己的机器上通过21端口访问自己的TrueHost FTP。

我们再来看看,如果FTP端口不是21,比如是22,会发生什么情况呢?在FTP客户端发送PORT命令的时候,NAT网关检测到目标端口是22,因为支持PORT的 NAT网关只监视目的端口是21的数据包,发现目的端口是22的数据包,不做任何处理,完全放行。于是FTP服务器收到的PORT命令依然是PORT 10,10,0,1,30,4。于是FTP服务器向这个IP和端口发送连接请求。

用户FTP服务器

101001

端口20 <==> FTP客户端

101001

端口7684

这种情况下命令链路就可以建立起来了。而且是等于本机连接本机,速度飞快。

综上所述,内网用户无法用PORT方式通过21端口访问自己的TrueHost FTP服务器。如果FTP端口不是21,则可以访问,而且实际上是本机连接本机。

上面的文字,仅仅是为了说明一些原理,不影响实际使用。如果本机访问本机,还要通过FTP的话,就有画蛇添足之嫌了。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 1000分!我想搞网站(下载类网站),请问怎样搭建服务器?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情