在做搭建ftp服务器的作业时,整了一个活,在不关闭SELinux的情况下测试ftp服务器
使用的环境,虚拟机*2 (CentOS 7),Hyper-v,网卡已设为静态
需要安装的软件包:
服务器(下称server):
vsftpd
ftp
ip可自定义,此处设为192.168.4.5
客户机(下称client):
ftp
ip这里设为192.168.4.205
进入目录/etc/vsftpd
,编辑vsftpd.conf
,在最后一行添加
listen_port=21
然后在防火墙里允许特定ip访问特定端口(作业里要访问的ip是192.168.4.205
)
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.4.205" port protocol="tcp" port="21" accept"
向客户机开放21端口
firewall-cmd --reload
重新载入防火墙
firewall-cmd --zone=public --list-rich-rules
查看开放的端口
如果显示防火墙未启动,可以运行命令启动防火墙
systemctl start firewalld
连接服务器
ftp 192.168.4.5
当显示ftp>
时,输入ls
或者pwd
查看当前位置时,又出现了一个bug,显示no route to host
,
这时候再回到服务器,修改/etc/sysconfig/
下的iptables-config
,更改其中IPTABLES_MODULES=""
项为
IPTABLES_MODULES="ip_nat_ftp ip_conntrack_ftp"
然后重启防火墙相关服务
systemctl restart iptables.service
如果服务器重启后,客户机ftp连接服务器还出现no route to host
的情况,以此输入以下命令开启相关防火墙服务
systemctl start firewalld systemctl start iptables.service
如果仅是临时使用,可以运行以下两条命令
modprobe ip_nat_ftp modprobe ip_conntrack_ftp
ftp connect: No route to host 解决方案_hello world!-CSDN博客
Linux防火墙firewall只允许特定ip访问 - 简书 (jianshu.com)