在LInux上架设FTP服务
今天在自己的FC4机器上安装FTP服务器,让他人通过FTP共享资料.
在网上查阅了一翻,比较常用的FTP服务器有:Wu-FTP, ProFTP, VSFTP.
我选中了VSFTP,不为别的,因为它叫Very Secure嘛.它的设计本来就是以安全性来考虑的.
去主站点下了VSFTP的2.04版本,不大,一百多KB. 下载地址是:ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.4.tar.gz
下完了之后make,在make install之前根做N步工作.
1)需要添加nobody用户 #useradd nobody
2)如果make没产生/usr/share/empty目录的话,建立该目录, #mkdir /usr/share/empty
3)如果FTP需要匿名(anonymous)用户的话,需要建立ftp这个用户,并指定其HOME目录为/var/ftp #useradd -d /var/ftp ftp
4)更改/var/ftp文件夹的归属,并更改存取权限 #chown root.root /var/ftp #chmod 755 /var/ftp
5)make install
make install之后,需根手工把vsftpd.conf拷贝到/etc目录下去,其INSTALL文件是这么说的:
"make install" doesn't copy the sample config file. It is recommended youdo this:
cp vsftpd.conf /etc
下面就可以了.但是启动FTP服务可以有两种方式.一种是Smoke test (without an inetd). 另一种是Run from an inetd of some kind
关于inted方式,我一直找不到我的FC4里面有这个服务,也找不到有这个文件.难道我没装这个包?虽然通过inted方式有更多的功能,但只好用smoke test功能.
修改/etc/vsftpd.conf 然后在最后一行加入 listen=YES
然后,启动/usr/local/sbin/vsftpd & ,当然,必须要保证没有任何程序占用21端口.
输入ftp 172.0.0.1
会出现:
Connected to localhost (127.0.0.1).
220 (vsFTPd 1.1.1)
Name (localhost:chris): ftp
331 Please specify the password.
Password:
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
.....
问题:
1.查看有没有程序占用某个端口,并关闭其端口:
netstat -anp | more
其中会显示出某个进程的PID,端口号,等等信息,根关闭其端口.一种方法是用Sercive 程序名 stop 关闭,另一种是用kill -9 PID 关闭.
2.Linux有默认的防火墙,别的主机登录不上,报NO route to host
桌面->系统设置->安全级别有相应设置,也可以使用iptables命令,如:
[root@t81a143 ~]# iptables -F
[root@t81a143 ~]# iptables -X
[root@t81a143 ~]# iptables -t nat -F
[root@t81a143 ~]# iptables -t nat -X
[root@t81a143 ~]# iptables -t mangle -F
[root@t81a143 ~]# iptables -t mangle -X
在网上查阅了一翻,比较常用的FTP服务器有:Wu-FTP, ProFTP, VSFTP.
我选中了VSFTP,不为别的,因为它叫Very Secure嘛.它的设计本来就是以安全性来考虑的.
去主站点下了VSFTP的2.04版本,不大,一百多KB. 下载地址是:ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.4.tar.gz
下完了之后make,在make install之前根做N步工作.
1)需要添加nobody用户 #useradd nobody
2)如果make没产生/usr/share/empty目录的话,建立该目录, #mkdir /usr/share/empty
3)如果FTP需要匿名(anonymous)用户的话,需要建立ftp这个用户,并指定其HOME目录为/var/ftp #useradd -d /var/ftp ftp
4)更改/var/ftp文件夹的归属,并更改存取权限 #chown root.root /var/ftp #chmod 755 /var/ftp
5)make install
make install之后,需根手工把vsftpd.conf拷贝到/etc目录下去,其INSTALL文件是这么说的:
"make install" doesn't copy the sample config file. It is recommended youdo this:
cp vsftpd.conf /etc
下面就可以了.但是启动FTP服务可以有两种方式.一种是Smoke test (without an inetd). 另一种是Run from an inetd of some kind
关于inted方式,我一直找不到我的FC4里面有这个服务,也找不到有这个文件.难道我没装这个包?虽然通过inted方式有更多的功能,但只好用smoke test功能.
修改/etc/vsftpd.conf 然后在最后一行加入 listen=YES
然后,启动/usr/local/sbin/vsftpd & ,当然,必须要保证没有任何程序占用21端口.
输入ftp 172.0.0.1
会出现:
Connected to localhost (127.0.0.1).
220 (vsFTPd 1.1.1)
Name (localhost:chris): ftp
331 Please specify the password.
Password:
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
.....
问题:
1.查看有没有程序占用某个端口,并关闭其端口:
netstat -anp | more
其中会显示出某个进程的PID,端口号,等等信息,根关闭其端口.一种方法是用Sercive 程序名 stop 关闭,另一种是用kill -9 PID 关闭.
2.Linux有默认的防火墙,别的主机登录不上,报NO route to host
桌面->系统设置->安全级别有相应设置,也可以使用iptables命令,如:
[root@t81a143 ~]# iptables -F
[root@t81a143 ~]# iptables -X
[root@t81a143 ~]# iptables -t nat -F
[root@t81a143 ~]# iptables -t nat -X
[root@t81a143 ~]# iptables -t mangle -F
[root@t81a143 ~]# iptables -t mangle -X