您现在的位置是:网站首页> 编程资料编程资料
FreeBSD6.2架设FTP服务器详解_Unix/BSD_操作系统_
2024-03-28
292人已围观
简介 FreeBSD6.2架设FTP服务器详解_Unix/BSD_操作系统_
FTP联机的两种模式 FTP采用 Client/Server 架构,FTP 协议比较特别的地方在于它在使用时必须建立二个联机:一个用来传输指令、一个用来传输档案。当我们使用 FTP 软件连到 FTP 服务器时,客户端会先连到服务器的连接端口21,并建立一条「控制联机」。接下来,您会输入账号、密码等指令,这些指令及 FTP 的响应都是使用都是使用「控制联机」。当您要下载档案时,或者是执行 ls 以列出目录中的档案时,档案或目录列表的下载是经另一个联机「数据联机」。「数据联机」和「控制联机」不同的是数据联机所传输的数据比较大,而控制联机只是用来传输指令及简单的响应。
基本上,一个完整的 FTP 联机建立过程为:客户端打开自已机器大于 1024 的连接端口,并连到服务器的连接端口21,建立「控制联机」。 客户端开始对服务器下指令,告诉服务器客户端用来传输档案的连接端口为何。 服务器从连接端口20 连到客户端所开放的端口号 (大于 1024),以建立「数据联机」。 上述这种联机建立的方式是由服务器主动建立「数据联机」,我们称之为「主动模式」(Active Mode)。基本上主动模式的运作在没有防火墙或 NAT 的情形下没有什么问题,但若客户端有防火墙,则可能会无法建立联机。基本上,如果客户端使用的是 FreeBSD 的 NAT 不会有这种问题,FreeBSD 会自动做转换,但若是使用其它的防火墙就不一定可以支持 FTP 的 Active Mode。
要解决 FTP Active Mode 的问题,可以在联机时改用「被动模式」(Passive Mode)。所谓的被动模式就是由服务器打开一个连接端口,被动地等客户端连过来建立「数据联机」。被动模式的联机建立过程为:客户端打开自已机器大于 1024 的连接端口,并连到服务器的连接端口21,建立「控制联机」。 客户端开始对服务器下指令,告诉服务器进入「被动模式」。 服务器打开一个大于 1024 的连接端口,等待客户端的联机。 客伺端打开自已机器大于 1024 的连接端口,并连到服务器以建立「数据联机」。 由于控制联机及数据联机都是由客户端主动连过去服务器,如此即可避开防火墙及 NAT 的问题。
使用 inetd,首先编辑 /etc/inetd.conf,将 ftp 设定开头的 # 移除: ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l
ftp stream tcp6 nowait root /usr/libexec/ftpd ftpd -l 接下来,我们必须使用下列指令重跑 inetd: #kill -1 `cat /var/run/inetd.pid` 现在您就可以开始使用 FreeBSD 的 FTP 服务了。
如果您要以独立的 daemon 方式启动 FTP,请先确定在 inetd.conf 中没有启动 FTP 服务。接下来,请在新增一个档案 /usr/local/etc/rc.d/ftpd.sh 内容如下: #!/bin/sh
ftpd_program="/usr/libexec/ftpd"
ftpd_flags="-D -l"
case $1 in
start)
echo "Starting FTPD"
$ftpd_program $ftpd_flags
;;
stop)
echo "Stopping FTPD"
killall ftpd
;;
restart)
$0 stop
sleep 1
$0 start
;;
esac
编辑完后,我们必须将该档案变成可执行: #chmod 755 /usr/local/etc/rc.d/ftpd.sh 接下来,您就可以使用下列指令启动 FTPD 了: #/usr/local/etc/rc.d/ftpd.sh tart 如果您要停止 FTPD 服务,则使用下列指令: #/usr/local/etc/rc.d/ftpd.sh stop
2 编辑欢迎信息 当我们联机到一个 FTP 站点时,我们可以看到二个欢迎讯息,一个是登入前的讯息,另一个是登入后的讯息。开头为 220- 的就是登入前的讯息,我们称它为欢迎讯息。以 230- 为开头的是登入后的讯息,我们称它为本日讯息 (Message of the day)。这二种讯息我们都可以自行设定。
如果您要设定的是登入前的讯息,请新增一个档案 /etc/ftpwelcome,并将您的讯息写入该文件中。您不需要写 220- 等数据,FTP 服务器会自动帮您加上这种代码。而登入后的讯息是存放在 /etc/ftpmotd,您可以编辑该档以进行设定。
3 FTP服务器管理 在启动 FTP 服务器时,我们可以加入一些参数以调整服务器的行为。例如,修改预设的连接端口、记录使用者上传、下载的档案等等。有些参数必须要在使用独立的 daemon 方式启动时才有用,而有的参数在 inetd 模式下也可以使用。下表为我们常用的参数:
另外,还有很多用来控制使用者权限的参数,将在后面说明。
如果您要修改 ftpd 启动的参数,在 inetd 模式下,您可以修改 /etc/inetd.conf,并在 ftp 设定的最后面加入参数,如下列粗体字所示: ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l -l -dftp stream tcp6 nowait root /usr/libexec/ftpd ftpd -l -l -d 上面的范例中,我们多加入了参数 -l -d,以记录更多 ftpd 的讯息。
如果您是以独立的 Daemon 方式启动 ftpd,则请修改 /usr/local/etc/rc.d/ftpd.sh: #!/bin/sh
ftpd_program="/usr/libexec/ftpd"
ftpd_flags="-D -l -l -d"
... 我们只要修改 ftpd_flags 的部份,加入您所要的参数即可。
提示:
本文由神整理自网络,如有侵权请联系本站删除!
本站声明:
1、本站所有资源均来源于互联网,不保证100%完整、不提供任何技术支持;
2、本站所发布的文章以及附件仅限用于学习和研究目的;不得将用于商业或者非法用途;否则由此产生的法律后果,本站概不负责!
基本上,一个完整的 FTP 联机建立过程为:
要解决 FTP Active Mode 的问题,可以在联机时改用「被动模式」(Passive Mode)。所谓的被动模式就是由服务器打开一个连接端口,被动地等客户端连过来建立「数据联机」。被动模式的联机建立过程为:
当您登入一台 FTP 服务器后,如果您输入 ls,却等了很久都没有响应,您可以输入
使用 inetd,首先编辑 /etc/inetd.conf,将 ftp 设定开头的 # 移除: ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l
ftp stream tcp6 nowait root /usr/libexec/ftpd ftpd -l 接下来,我们必须使用下列指令重跑 inetd: #kill -1 `cat /var/run/inetd.pid` 现在您就可以开始使用 FreeBSD 的 FTP 服务了。
如果您要以独立的 daemon 方式启动 FTP,请先确定在 inetd.conf 中没有启动 FTP 服务。接下来,请在新增一个档案 /usr/local/etc/rc.d/ftpd.sh 内容如下: #!/bin/sh
ftpd_program="/usr/libexec/ftpd"
ftpd_flags="-D -l"
case $1 in
start)
echo "Starting FTPD"
$ftpd_program $ftpd_flags
;;
stop)
echo "Stopping FTPD"
killall ftpd
;;
restart)
$0 stop
sleep 1
$0 start
;;
esac
编辑完后,我们必须将该档案变成可执行: #chmod 755 /usr/local/etc/rc.d/ftpd.sh 接下来,您就可以使用下列指令启动 FTPD 了: #/usr/local/etc/rc.d/ftpd.sh tart 如果您要停止 FTPD 服务,则使用下列指令: #/usr/local/etc/rc.d/ftpd.sh stop
2 编辑欢迎信息 当我们联机到一个 FTP 站点时,我们可以看到二个欢迎讯息,一个是登入前的讯息,另一个是登入后的讯息。开头为 220- 的就是登入前的讯息,我们称它为欢迎讯息。以 230- 为开头的是登入后的讯息,我们称它为本日讯息 (Message of the day)。这二种讯息我们都可以自行设定。
如果您要设定的是登入前的讯息,请新增一个档案 /etc/ftpwelcome,并将您的讯息写入该文件中。您不需要写 220- 等数据,FTP 服务器会自动帮您加上这种代码。而登入后的讯息是存放在 /etc/ftpmotd,您可以编辑该档以进行设定。
3 FTP服务器管理 在启动 FTP 服务器时,我们可以加入一些参数以调整服务器的行为。例如,修改预设的连接端口、记录使用者上传、下载的档案等等。有些参数必须要在使用独立的 daemon 方式启动时才有用,而有的参数在 inetd 模式下也可以使用。下表为我们常用的参数:
| 参数 | 是否只能在 Daemon 模式下使用 | 意义 |
| -a | 是 | 当您有二张网络卡或是二个 IP 时,我们可以设定只接受联机到某一个 IP 的联机要求。例如: ftpd -D -a 192.168.0.1 此范例表示只接受使用者联机到 192.168.0.1 这个 IP。 |
| -d | 否 | 记录 FTP 的除错讯息。除了加入这个参数外,您必须修改 /etc/syslog.conf,并加入下列内容以记录 FTP 的讯息。 !ftpd*.* /var/log/ftpd.log |
| -h | 否 | 不要显示 FTP 服务器的主机名称、软件信息、版本等。 |
| -l | 否 | 记录 FTP 登入成功及失败的讯息。如果您使用二次 -l,则使用者上传、下载、删除、建立目录时都会留下记录。预设的记录会留在 /var/log/xferlog 中。 |
| -P | 是 | 我们知道 FTP 预设会****连接埠 21,以接受客户端的联机要求。不过如果您是以独立的 daemon 方式启动 FTP,则 可以使用 -P 加上连接埠号以改变预设连接埠。 |
如果您要修改 ftpd 启动的参数,在 inetd 模式下,您可以修改 /etc/inetd.conf,并在 ftp 设定的最后面加入参数,如下列粗体字所示: ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l -l -dftp stream tcp6 nowait root /usr/libexec/ftpd ftpd -l -l -d 上面的范例中,我们多加入了参数 -l -d,以记录更多 ftpd 的讯息。
如果您是以独立的 Daemon 方式启动 ftpd,则请修改 /usr/local/etc/rc.d/ftpd.sh: #!/bin/sh
ftpd_program="/usr/libexec/ftpd"
ftpd_flags="-D -l -l -d"
... 我们只要修改 ftpd_flags 的部份,加入您所要的参数即可。
本站声明:
1、本站所有资源均来源于互联网,不保证100%完整、不提供任何技术支持;
2、本站所发布的文章以及附件仅限用于学习和研究目的;不得将用于商业或者非法用途;否则由此产生的法律后果,本站概不负责!
相关内容
- FreeBsd 更新ports 的简单方法_Unix/BSD_操作系统_
- FreeBSD 7.0 正式版官方下载地址_Unix/BSD_操作系统_
- FreeBSD下安装J2EE开发环境_Unix/BSD_操作系统_
- FreeBSD防止ARP攻击_Unix/BSD_操作系统_
- NetBSD 4.0 正式版官方下载地址_Unix/BSD_操作系统_
- freebsd系统下安装mpd_Unix/BSD_操作系统_
- 洛克王国极大天使技能表_种族值_进化图一览_网络游戏_游戏攻略_
- 魔兽世界6.2魔血小戈隆怎么得 wow6.1魔血小戈隆坐骑获取攻略_网络游戏_游戏攻略_
- qq炫舞4月签到暴击加强版活动地址_4月签到暴击加强版活动详情_网络游戏_游戏攻略_
- QQ炫舞助阵FIFAonline3公测抽奖活动_QQ炫舞助阵FIFAonline3公测_网络游戏_游戏攻略_
