Loading

不关闭SELinux情况下使用ftp传输

在做搭建ftp服务器的作业时,整了一个活,在不关闭SELinux的情况下测试ftp服务器

使用的环境,虚拟机*2 (CentOS 7),Hyper-v,网卡已设为静态

需要安装的软件包:

  • 服务器(下称server):

    • vsftpd

    • ftp

    • ip可自定义,此处设为192.168.4.5

  • 客户机(下称client):

    • ftp

    • ip这里设为192.168.4.205

修改vsftpd配置

进入目录/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)

posted @ 2022-01-03 18:19  JaydenChang  阅读(120)  评论(0编辑  收藏  举报