ADSL路由方式下用Serv-U架设个人ftp
, m) l; x/ ?6 Q0 M% R+ J# J q! S<br>介绍
+ `: B5 H4 \, M! [, I U# R" P
<br>本文的目的是介绍如何在使用路由功能的adsl时, 如何用serv-u架设ftp
服务器。
! T0 @3 l$ r0 k+ D* x8 h' X A, g; d
<br>如果本机已有公网IP,那么本文不适用。
' @$ L1 v' B& N( L- ?
<br>
! ?- n" a! O! [( J$ a8 W
<br>要求:
, M+ j3 q" d' @<br>1 Serv-U已经正确安装并能在本地正常使用。
4 @) f* J2 T7 N3 N5 A+ P<br>2 TCP/IP的基本知识。
[6 A1 K0 a9 i1 g<br>3 MODEM 支持端口映射
' y( G; }. N6 F; M w; X<br>
/ ~2 ]/ m! [6 r9 y3 H' o
<br>FTP简介
4 K' X) A$ m. y9 l: b<br>ftp是基本的TCP服务, 不涉及UDP。FTP通常使用两个端口,数据端口和控制端口。 FTP有两种模式, PORT模式和PASV模式。
$ o. p2 n' V) r' b: D" v ?
<br>
, }7 T8 ^$ M: Y8 T/ F+ [<br>

ORT模式下的FTP服务:
% z2 V5 k# l& |) @! t1 ~. f+ S
<br>缺省情况下PORT模式的数据端口是20, 控制端口是21(控制端口可以设定, 本文假定使用21)。 当进行连接时,客户端使用一个随机的端口N(N大于1024)连接服务器的控制端口21, 然后客户端开始监听端口N+1,并向服务器发送命令 PORT N+1,服务器用自己的数据端口20连回客户的N+1端口。
( p2 C! x4 D; o! m
<br>由于PORT模式仅仅是发送端口给服务器,由服务器连回客户端,如果客户端有防火墙,这样的连接会被认为是外部主机试图连接内部的主机, 通常情况下是不允许的。
! n* V6 i n# |! y, v: v
<br>为了解决这个问题, 引入了PASV模式
! u& h, b; b) q/ P' C/ ]: r<br>
. u/ ` C8 g4 |7 z$ w
<br>

ASV模式下的FTP服务:
" w; s! M, r( S% z( C/ |8 t<br>当进行连接时,客户端使用一个随机的端口N(N大于1024)
0 j" W1 D, u* z# [; W
<br>连接服务器的控制端口21, 并向服务器发送命令 PASV,服务器使用一个随机的数据端口M(M>1024)并发回客户端, 客户端用数据端口N+1连接服务器的端口M。
" ^7 V6 @; D0 x5 A g
<br>由于客户端发起数据连接, 这样就解决了防火墙带来的问题。
6 u+ A6 R* A2 G/ M<br>
& B( q* o. @6 Y9 b/ E t<br>ADSL路由方式的网络结构(这是我的网络结构MODEM自动拨号获取公网地址, FTP服务器建在主机192.168.0.2)
2 x7 T, G( v4 I6 \ O& M
<br>
% B6 H8 _7 H+ w0 c8 [+ v; R+ \3 u<br>端口映射:
# S0 H/ A' s3 N/ p ~: F A- I/ O
<br>ADSL MODEM 分离了内网和外网, 由于内网的IP不能被外网访问, 所以如果想开设FTP,就必须作端口映射。
) K; k; C( C- J4 a8 S% V0 ~! F<br>也就是说,把对ADSL MODEM公网IP如61.68.129.236相应端口的访问映射到内网主机上比如192.168.0.2
5 D q) n) X! F2 g9 H3 L<br>端口映射的设置是:
5 M3 K% l% c& P
<br>TCP/UDP 端口 内网IP
- Q3 Q8 m: q& p' O<br>TCP 20 192.168.0.2
* r6 j% C: f u7 q8 k! ?<br>TCP 21 192.168.0.2
( E' Y1 q; Q7 g, H
<br>TCP 5501-5505 192.168.0.2
# j) q2 q R, q6 V# A
<br>注:端口5501-5505的设置请参阅下面"Serv-U 关于PASV模式的设置"
3 `" k. z$ U( L<br>
% }2 [$ l2 [# C- x<br>具体设置因厂家不同而不同, 请参考手册。
' S9 J% G$ E" |: T# H8 L! L$ w6 t
<br>
; h3 w5 A5 F6 f( Q' c
<br>Serv-U 关于PASV模式的设置
. t# H5 D5 r3 P% c0 a& Z
<br>Serv-U 可以指定在PASV模式下所使用的端口, 一般情况下5-10个就够了, 本例子给出的是5501-5505。
8 Y# j4 s1 @8 F; Y4 q6 A<br>
' h7 u7 m8 _ P0 l/ n, N3 D
<br>因为PASV模式下服务器端需要把数据端口发送给客户端, 也就是说会把内网IP如192.168.0.2和端口发给客户端, 这会导致连接失败, 所以需要制定PASV方式下传送给客户端的公网IP地址如61.68.129.236, 见下图。这在DHCP下手动设置下比较麻烦, 每次更新公网IP都需要更新。
q/ _9 e' V1 ]
<br>
4 k2 U/ O; { C. ^8 J- c9 @) H
<br>测试
0 d7 O1 j7 R2 e- ~& B
<br>找一台公网
电脑,最好没有防火墙,可以测试port模式, ftp 到公网IP 61.68.129.236
- @8 g* a) S3 c5 @$ o# W# U
<br>
$ j e& V, y& ?3 r( Z7 d2 q2 q
<br>如果客户机是公网IP, 并且没有防火墙, 这样设置就可以了, PORT模式下可以工作, 否则必须设置PASV模式。
, q4 Y1 M" V9 H: V* \. r- c
<br>
( n/ r/ y1 V/ {
<br><DIV></DIV>
; `* g" y2 ~) Y: F; {/ ?8 y; ~5 F) L<br>
<font color="#000066">[此贴子已经被CJB于2004-5-19 15:03:33编辑过]</font>