如何在linux下开启FTP服务 如何在linux下开启FTP服务
\u5982\u4f55\u5728linux\u4e0b\u5f00\u542fFTP\u670d\u52a11. \u9996\u5148\u670d\u52a1\u5668\u8981\u5b89\u88c5ftp\u8f6f\u4ef6,\u67e5\u770b\u662f\u5426\u5df2\u7ecf\u5b89\u88c5ftp\u8f6f\u4ef6\u4e0b\uff1a
#which vsftpd
\u5982\u679c\u770b\u5230\u6709vsftpd\u7684\u76ee\u5f55\u8bf4\u660e\u670d\u52a1\u5668\u5df2\u7ecf\u5b89\u88c5\u4e86ftp\u8f6f\u4ef6
2. \u67e5\u770bftp \u670d\u52a1\u5668\u72b6\u6001
#service vsftpd status
3. \u542f\u52a8ftp\u670d\u52a1\u5668
#service vsftpd start
4. \u91cd\u542fftp\u670d\u52a1\u5668
#service vsftpd restart
5. \u67e5\u770b\u670d\u52a1\u6709\u6ca1\u6709\u542f\u52a8
#netstat -an | grep 21
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
\u5982\u679c\u770b\u5230\u4ee5\u4e0a\u4fe1\u606f\uff0c\u8bc1\u660eftp\u670d\u52a1\u5df2\u7ecf\u5f00\u542f\u3002
6.\u5982\u679c\u9700\u8981\u5f00\u542froot\u7528\u6237\u7684ftp\u6743\u9650\u8981\u4fee\u6539\u4ee5\u4e0b\u4e24\u4e2a\u6587\u4ef6
#vi /etc/vsftpd.ftpusers\u4e2d\u6ce8\u91ca\u6389root
#vi /etc/vsftpd.user_list\u4e2d\u4e5f\u6ce8\u91ca\u6389root
\u7136\u540e\u91cd\u65b0\u542f\u52a8ftp\u670d\u52a1\u3002
7. vsftpd 500 OOPS: cannot change directory
\u767b\u9646\u62a5\u9519:
C:\>ftp 192.168.0.101
Connected to 192.168.0.101.
220 (vsFTPd 2.0.5)
User (192.168.0.101:(none)): frank
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/frank
Login failed.
ftp> ls
500 OOPS: child died
Connection closed by remote host.
\u89e3\u51b3\u65b9\u6cd5:
setsebool ftpd_disable_trans 1
service vsftpd restart
\u5c31OK\u4e86\uff01
\u8fd9\u662fSELinux\u7684\u8bbe\u7f6e\u547d\u4ee4,\u5728\u4e0d\u719f\u6089SELnux\u524d\uff0c\u628aSELinux\u5173\u6389\u4e5f\u53ef\u4ee5\u7684\u3002
8. \u6c38\u4e45\u5f00\u542f\uff0c\u5373os\u91cd\u542f\u540e\u81ea\u52a8\u5f00\u542fftp\u670d\u52a1
\u65b9\u6cd5\u4e00\uff1a
cd /etc/xinetd.d \uff0c\u7f16\u8f91ftp\u670d\u52a1\u7684\u914d\u7f6e\u6587\u4ef6gssftp\u7684\u8bbe\u7f6e\uff1a
vi /etc/xinetd.d/gssftp \uff0c\u5c06 \u4fee\u6539\u4e24\u9879\u5185\u5bb9\uff1a
(a) server_args = -l \u2013a \u53bb\u6389-a \u6539\u4e3aserver_args = -l
(b) disable=yes\u6539\u4e3adisable=no
(c) \u4fdd\u5b58\u9000\u51fa\u3002
\u65b9\u6cd5\u4e8c\uff1a
(a) system-config-services , \u8fdb\u5165\u56fe\u5f62\u754c\u9762\u7684System services\u67e5\u770b\u662f\u5426\u6709 vsftpd\u9879,\u5982\u679c\u6ca1\u6709\u8f6c\u52302.,\u4fdd\u5b58\u540e\u9000\u51fa
\u3000 (b) \u7528redhat\u7b2c\u4e09\u5f20\u76d8 \u5b89\u88c5\u6b64\u670d\u52a1\uff08\u5f00\u59cb--\u5220\u9664/\u589e\u52a0\u7a0b\u5e8f\uff09\uff0c200K\u5de6\u53f3
\u3000 (c) #setup
\u3000\u3000 \u6b64\u65f6\u80fd\u770b\u5230vsftpd\u9879\uff0c\u6b64\u65f6\u9009\u4e2d\u6b64services\u9879,\u4fdd\u5b58\u540e\u9000\u51fa.
1. \u9996\u5148\u670d\u52a1\u5668\u8981\u5b89\u88c5ftp\u8f6f\u4ef6,\u67e5\u770b\u662f\u5426\u5df2\u7ecf\u5b89\u88c5ftp\u8f6f\u4ef6\u4e0b\uff1a
#which vsftpd
\u5982\u679c\u770b\u5230\u6709vsftpd\u7684\u76ee\u5f55\u8bf4\u660e\u670d\u52a1\u5668\u5df2\u7ecf\u5b89\u88c5\u4e86ftp\u8f6f\u4ef6
2. \u67e5\u770bftp \u670d\u52a1\u5668\u72b6\u6001
#service vsftpd status
3. \u542f\u52a8ftp\u670d\u52a1\u5668
#service vsftpd start
4. \u91cd\u542fftp\u670d\u52a1\u5668
#service vsftpd restart
5. \u67e5\u770b\u670d\u52a1\u6709\u6ca1\u6709\u542f\u52a8
#netstat -an | grep 21
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
\u5982\u679c\u770b\u5230\u4ee5\u4e0a\u4fe1\u606f\uff0c\u8bc1\u660eftp\u670d\u52a1\u5df2\u7ecf\u5f00\u542f\u3002
6.\u5982\u679c\u9700\u8981\u5f00\u542froot\u7528\u6237\u7684ftp\u6743\u9650\u8981\u4fee\u6539\u4ee5\u4e0b\u4e24\u4e2a\u6587\u4ef6
#vi /etc/vsftpd.ftpusers\u4e2d\u6ce8\u91ca\u6389root
#vi /etc/vsftpd.user_list\u4e2d\u4e5f\u6ce8\u91ca\u6389root
\u7136\u540e\u91cd\u65b0\u542f\u52a8ftp\u670d\u52a1\u3002
7. vsftpd 500 OOPS: cannot change directory
\u767b\u9646\u62a5\u9519:
C:\>ftp 192.168.0.101
Connected to 192.168.0.101.
220 (vsFTPd 2.0.5)
User (192.168.0.101:(none)): frank
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/frank
Login failed.
ftp> ls
500 OOPS: child died
Connection closed by remote host.
\u89e3\u51b3\u65b9\u6cd5:
setsebool ftpd_disable_trans 1
service vsftpd restart
\u5c31OK\u4e86\uff01
\u8fd9\u662fSELinux\u7684\u8bbe\u7f6e\u547d\u4ee4,\u5728\u4e0d\u719f\u6089SELnux\u524d\uff0c\u628aSELinux\u5173\u6389\u4e5f\u53ef\u4ee5\u7684\u3002
8. \u6c38\u4e45\u5f00\u542f\uff0c\u5373os\u91cd\u542f\u540e\u81ea\u52a8\u5f00\u542fftp\u670d\u52a1
\u65b9\u6cd5\u4e00\uff1a
cd /etc/xinetd.d \uff0c\u7f16\u8f91ftp\u670d\u52a1\u7684\u914d\u7f6e\u6587\u4ef6gssftp\u7684\u8bbe\u7f6e\uff1a
vi /etc/xinetd.d/gssftp \uff0c\u5c06 \u4fee\u6539\u4e24\u9879\u5185\u5bb9\uff1a
(a) server_args = -l \u2013a \u53bb\u6389-a \u6539\u4e3aserver_args = -l
(b) disable=yes\u6539\u4e3adisable=no
(c) \u4fdd\u5b58\u9000\u51fa\u3002
\u65b9\u6cd5\u4e8c\uff1a
(a) system-config-services , \u8fdb\u5165\u56fe\u5f62\u754c\u9762\u7684System services\u67e5\u770b\u662f\u5426\u6709 vsftpd\u9879,\u5982\u679c\u6ca1\u6709\u8f6c\u52302.,\u4fdd\u5b58\u540e\u9000\u51fa
(b) \u7528redhat\u7b2c\u4e09\u5f20\u76d8 \u5b89\u88c5\u6b64\u670d\u52a1\uff08\u5f00\u59cb--\u5220\u9664/\u589e\u52a0\u7a0b\u5e8f\uff09\uff0c200K\u5de6\u53f3
(c) #setup
\u6b64\u65f6\u80fd\u770b\u5230vsftpd\u9879\uff0c\u6b64\u65f6\u9009\u4e2d\u6b64services\u9879,\u4fdd\u5b58\u540e\u9000\u51fa.
Linux下ftp服务可以通过搭建vsftpd服务来实现,以CentOS为例,首先查看系统中是否安装了vsftpd,可以通过执行命令 rpm -qa |grep vsftpd 来查看是否安装相应的包,如果没有安装那么可以执行 yum -y install vsftpd 来安装,安装之后首先创建ftp用户,比如ftp_test,命令如下:
useradd -s /sbin/nologin -d /home/ftp_test ftp_test
目录尽量不要选择根目录下,这里是/home/ftp_test,并且ftp_test这个目录不要手动创建,否则权限会有问题,执行命令的时候会自动创建,
可以看到权限现在是对于ftp_test用户是可读可写可执行的,其他用户和组下面的都没有任何权限,现在为ftp_test用户创建密码:
passwd ftp_test
执行之后输入2次密码确认就设置好了密码
然后编辑vsftpd配置文件,位置是:vim /etc/vsftpd/vsftpd.conf
找到anonymous_enable这个配置项,默认是YES,修改成NO,表示不允许匿名用户登录
现在直接保存配置文件,执行 systemctl start vsftpd.service 启动vsftp服务,然后可以通过命令: systemctl status vsftpd.service 查看ftp服务的运行状态,现在就可以用ftp客户端进行连接了,这里用FileZilla测试,连接正常
现在基本的ftp服务就部署完了,客户端可以正常上传,下载,修改文件;但是这样有个问题就是所有的目录都暴露给客户端了,虽然客户端不能随意修改删除其余的文件,但是因为目录可见,所以总会有一些风险,所以接下来还需要配置让ftp用户只在自己的家目录下面活动,而无法查看其它任何目录,同样是打开配置文件/etc/vsftpd/vsftpd.conf,找到chroot_local_user=YES这个配置,默认是注释的,这里去掉注释,表示只让用户在自己的目录里面活动,如果只是保存这一个配置的话,用ftp连接客户端会返回500 OOPS: vsftpd: refusing to run with writable root inside chroot()的错误,即禁止运行在可写的家目录中,因为刚才ftp_test这个目录有w权限,而现在我们使用的vsftpd版本是3.0.2 属于比较新的版本,为了安全性做了一些限制,如果你此时想通过 chmod a-w /home/ftp_test 来去掉目录的写权限,那么连接成功是没问题的,但是无法上传文件了,所以网上很多说修改权限的方法是不可取的,正确的做法是应该在下面添加一行配置allow_writeable_chroot=YES表示允许对家目录的写权限,具体配置如下:
配置完这两项以后保存退出,然后执行 systemctl restart vsftpd.service 重启vsftpd服务,现在重新使用ftp连接就成功了,并且任何操作也是没问题的
现在可以看到上面的路径是一个/,对于ftp用户来说也就是根目录了,只能在这个目录下操作,而无法跳出这个目录
以上就是vsftpd服务的基本搭建过程,实际使用时可以分配多个用户
1. 首先服务器要安装ftp软件,查看是否已经安装ftp软件下:
#which vsftpd
如果看到有vsftpd的目录说明服务器已经安装了ftp软件
2. 查看ftp 服务器状态
#service vsftpd status
3. 启动ftp服务器
#service vsftpd start
4. 重启ftp服务器
#service vsftpd restart
5. 查看服务有没有启动
#netstat -an | grep 21
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
如果看到以上信息,证明ftp服务已经开启。
6.如果需要开启root用户的ftp权限要修改以下两个文件
#vi /etc/vsftpd.ftpusers中注释掉root
#vi /etc/vsftpd.user_list中也注释掉root
然后重新启动ftp服务。
7. vsftpd 500 OOPS: cannot change directory
登陆报错:
C:\>ftp 192.168.0.101
Connected to 192.168.0.101.
220 (vsFTPd 2.0.5)
User (192.168.0.101:(none)): frank
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/frank
Login failed.
ftp> ls
500 OOPS: child died
Connection closed by remote host.
解决方法:
setsebool ftpd_disable_trans 1
service vsftpd restart
就OK了!
这是SELinux的设置命令,在不熟悉SELnux前,把SELinux关掉也可以的。
8. 永久开启,即os重启后自动开启ftp服务
方法一:
cd /etc/xinetd.d ,编辑ftp服务的配置文件gssftp的设置:
vi /etc/xinetd.d/gssftp ,将 修改两项内容:
(a) server_args = -l –a 去掉-a 改为server_args = -l
(b) disable=yes改为disable=no
(c) 保存退出。
方法二:
(a) system-config-services , 进入图形界面的System services查看是否有 vsftpd项,如果没有转到2.,保存后退出
(b) 用redhat第三张盘 安装此服务(开始--删除/增加程序),200K左右
(c) #setup
此时能看到vsftpd项,此时选中此services项,保存后退出.
1. 首先服务器要安装ftp软件,查看是否已经安装ftp软件下:
#which vsftpd
如果看到有vsftpd的目录说明服务器已经安装了ftp软件
2. 查看ftp 服务器状态
#service vsftpd status
3. 启动ftp服务器
#service vsftpd start
4. 重启ftp服务器
#service vsftpd restart
5. 查看服务有没有启动
#netstat -an | grep 21
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
如果看到以上信息,证明ftp服务已经开启。
6.如果需要开启root用户的ftp权限要修改以下两个文件
#vi /etc/vsftpd.ftpusers中注释掉root
#vi /etc/vsftpd.user_list中也注释掉root
然后重新启动ftp服务。
7. vsftpd 500 OOPS: cannot change directory
登陆报错:
C:\>ftp 192.168.0.101
Connected to 192.168.0.101.
220 (vsFTPd 2.0.5)
User (192.168.0.101:(none)): frank
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/frank
Login failed.
ftp> ls
500 OOPS: child died
Connection closed by remote host.
解决方法:
setsebool ftpd_disable_trans 1
service vsftpd restart
就OK了!
这是SELinux的设置命令,在不熟悉SELnux前,把SELinux关掉也可以的。
8. 永久开启,即os重启后自动开启ftp服务
方法一:
cd /etc/xinetd.d ,编辑ftp服务的配置文件gssftp的设置:
vi /etc/xinetd.d/gssftp ,将 修改两项内容:
(a) server_args = -l –a 去掉-a 改为server_args = -l
(b) disable=yes改为disable=no
(c) 保存退出。
方法二:
(a) system-config-services , 进入图形界面的System services查看是否有 vsftpd项,如果没有转到2.,保存后退出
(b) 用redhat第三张盘 安装此服务(开始--删除/增加程序),200K左右
(c) #setup
此时能看到vsftpd项,此时选中此services项,保存后退出.
绛旓細1. 棣栧厛鏈嶅姟鍣ㄨ瀹夎ftp杞欢,鏌ョ湅鏄惁宸茬粡瀹夎ftp杞欢涓嬶細 #which vsftpd 濡傛灉鐪嬪埌鏈塿sftpd鐨勭洰褰曡鏄庢湇鍔″櫒宸茬粡瀹夎浜唂tp杞欢2. 鏌ョ湅ftp 鏈嶅姟鍣ㄧ姸鎬 #service vsftpd status3. 鍚姩ftp鏈嶅姟鍣 #service vsftpd start4. 閲嶅惎ftp鏈嶅姟鍣 #service vsftpd restart5. 鏌ョ湅鏈嶅姟鏈夋病鏈夊惎鍔 #...
绛旓細1銆佽繛鎺ヤ笂鐩稿簲鐨刲inux涓绘満,杩涘叆鍒扮瓑寰呰緭鍏hell鎸囦护鐨刲inux鍛戒护琛岀姸鎬佷笅銆2銆鍦╨inux鍛戒护琛屼笅杈撳叆shell鎸囦护:ps-ef|grepftp銆3銆佹渶鍚,鎸変笅鍥炶溅閿墽琛宻hell鎸囦护,姝ゆ椂浼氱湅鍒癴tp杩涚▼琚垚鍔熸煡璇㈠埌,璇存槑ftp鍔熻兘鏄寮鍚鐘舵併 linux涓嬫庢牱鐧诲綍ftp鏈嶅姟鍣? 1銆侀鍏,杩炴帴鐩稿簲linux涓绘満,杩涘叆鍒發inux鍛戒护琛岀姸鎬佷笅,绛夊緟杈撳叆shell鎸囦护銆
绛旓細1銆侀鍏堬紝杩炴帴鐩稿簲linux涓绘満锛岃繘鍏ュ埌linux鍛戒护琛岀姸鎬佷笅锛岀瓑寰呰緭鍏hell鎸囦护銆2銆佸叾娆★紝鍦╨inux鍛戒护琛屼腑杈撳叆锛歴ervicevsftpdstart銆3銆侀敭鐩樻寜鈥滃洖杞﹂敭鈥濊繍琛宻hell鎸囦护锛屾鏃朵細鐪嬪埌ftp鏈嶅姟琚垚鍔熷惎鍔ㄤ簡銆傛眰鍔﹍inux鎬庝箞鏌ョ湅FTP鐨勭敤鎴峰悕鍜屽瘑鐮侊紵涓銆佸惎鍔╲sftpd鏈嶅姟1銆佸惎鍔╒SFTP鏈嶅姟鍣ˋ:cenos涓嬭繍琛:yuminstallvsftpdB...
绛旓細1銆侀鍏堬紝杩炴帴鐩稿簲linux涓绘満锛岃繘鍏ュ埌linux鍛戒护琛岀姸鎬佷笅锛岀瓑寰呰緭鍏hell鎸囦护銆2銆佸叾娆★紝鍦╨inux鍛戒护琛屼腑杈撳叆锛歴ervicevsftpdstart銆3銆侀敭鐩樻寜鈥滃洖杞﹂敭鈥濊繍琛宻hell鎸囦护锛屾鏃朵細鐪嬪埌ftp鏈嶅姟琚垚鍔熷惎鍔ㄤ簡銆侺inux涓嬪浣曞惎鍔╢tp鏈嶅姟杩涚▼锛烲inux涓嬪紑鍚疐TP鏈嶅姟鏂规硶锛1.妫娴婩TP鏈嶅姟鏄惁寮鍚氳繃鏌ヨ鎻愪緵FTP鏈嶅姟鐨勮繘绋嬫槸鍚﹀瓨...
绛旓細鍏蜂綋姝ラ濡備笅锛1銆佹鏌ュ畨瑁卾sftpd杞欢浣跨敤濡備笅鍛戒护#rpm-qa|grepvsftpd鍙互妫娴嬪嚭鏄惁瀹夎浜唙sftpd杞欢锛屽鏋滄病鏈夊畨瑁咃紝浣跨敤YUM鍛戒护杩涜瀹夎銆2銆佸惎鍔ㄦ湇鍔′娇鐢╲sftpd杞欢锛屼富瑕佸寘鎷涓嬪嚑涓懡浠わ細鍚姩ftp鍛戒护#servicevsftpdstart鍋滄ftp鍛戒护#servicevsftpdstop閲嶅惎ftp鍛戒护#servicevsftpdrestart3銆乿sftpd鐨勯厤缃甪tp鐨勯厤缃...
绛旓細Linux涓媐tp鏈嶅姟鍙互閫氳繃鎼缓vsftpd鏈嶅姟鏉ュ疄鐜帮紝浠entOS涓轰緥锛岄鍏堟煡鐪嬬郴缁熶腑鏄惁瀹夎浜唙sftpd锛屽彲浠ラ氳繃鎵ц鍛戒护 rpm -qa |grep vsftpd 鏉ユ煡鐪嬫槸鍚﹀畨瑁呯浉搴旂殑鍖咃紝濡傛灉娌℃湁瀹夎閭d箞鍙互鎵ц yum -y install vsftpd 鏉ュ畨瑁咃紝瀹夎涔嬪悗棣栧厛鍒涘缓ftp鐢ㄦ埛锛屾瘮濡俧tp_test锛屽懡浠ゅ涓嬶細useradd -s /sbin/nologin -d...
绛旓細1銆佸湪涓涓悎閫傜殑鍦版柟鍒涘缓鏂囦欢澶癸紝杩欎釜鏂囦欢澶逛綔涓虹敤鎴风殑鏍圭洰褰曪紝骞惰缃ソ鏉冮檺銆備緥濡傦細/home/ubuntu/ftp 2銆佹墽琛屽涓嬭鍙ユ坊鍔犵敤鎴凤紙username涓虹敤鎴峰悕锛塻udo useradd -d /home/ubuntu/ftp -s /bin/bash username 3銆佹墽琛屽涓嬭鍙ヨ缃瘑鐮侊紙username涓虹敤鎴峰悕锛塻udo passwd username 鍥涖鍚姩ftp鏈嶅姟 sudo ...
绛旓細1. 棣栧厛鏈嶅姟鍣ㄨ瀹夎ftp杞欢,鏌ョ湅鏄惁宸茬粡瀹夎ftp杞欢涓嬶細which vsftpd 濡傛灉鐪嬪埌鏈塿sftpd鐨勭洰褰曡鏄庢湇鍔″櫒宸茬粡瀹夎浜唂tp杞欢 2. 鏌ョ湅ftp 鏈嶅姟鍣ㄧ姸鎬 service vsftpd status 3. 鍚姩ftp鏈嶅姟鍣 service vsftpd start 4. 閲嶅惎ftp鏈嶅姟鍣 service vsftpd restart 5. 鏌ョ湅鏈嶅姟鏈夋病鏈夊惎鍔 netstat -an | grep ...
绛旓細1.棣栧厛搴寮鍚痩inuxh鐜涓嬬殑FTP service,杩囩▼濡備笅锛歨ttp://www.witech.com.cn/news/Article_Show.asp?ArticleID=48 鎴栬呰緭鍏ュ懡浠わ細 /etc/rc.d/init.d/vsftpd start /etc/rc.d/init.d/ vsftpd restart 鑻ヨ鍏抽棴杩欎釜鏈嶅姟锛/etc/rc.d/init.d/ vsftpd stop 2.閰嶇疆鏂囦欢锛氳繘鍏/etc閰嶇疆vsftpd....
绛旓細1. 棣栧厛纭畾绯荤粺涓宸茬粡瀹夎浜唙sftpd杞欢锛屾煡鐪嬪懡浠わ細rpm -q vsftpd rpm -qa |grep vsftpd 2. 瀹夎vsftpd(浠um瀹夎涓轰緥)yum install -y vsftpd 3.鍏抽棴selinux鍜宨ptables(涔熷彲閰嶇疆闃茬伀澧欑浉鍏宠闂瓥鐣ワ紝鍙嶄箣绯荤粺闃绘柇)锛岃缃畍sftpd寮鏈鸿嚜鍚 姘镐箙鍏抽棴selinux vi /etc/sysconfig/selinux 灏嗛厤缃甋ELinux=...