报错
解决办法
具体不知道是哪个操作解决的,可能会有一两个操作不是必须的
关闭Linux 防火墙
关闭防火墙
[root@localhost ftp]# systemctl stop firewalld.service
[root@localhost ftp]#
查看防火墙状态
[root@localhost ftp]# systemctl status firewalld
出现Active: inactive (dead)表示关闭
禁止开机启动防火墙
[root@localhost ftp]# systemctl disable firewalld.service
关闭selinux:
vi /etc/selinux/config
将SELINUX=enforcing
改为SELINUX=disabled
开机自启动
[root@localhost ftp]# systemctl enable vsftpd
[root@localhost ftp]#
查看状态
[root@localhost ftp]# systemctl status vsftpd
重启启动FTP
[root@localhost ftp]# systemctl restart vsftpd
启动FTP
[root@localhost ftp]# systemctl start vsftpd
windows 设置
然后 Windows 防火墙
点击“允许应用……防火墙”
然后在含FTP的前面打勾,然后点击“确认”
网络 桥接模式
* 虚拟机设置:将网络改为桥接
* 重启虚拟机
* 配置IP
1)查看Windows的IP(从Windows终端查询)
可用 ipconfig 查看IPv4、网关和子网掩码
2)修改Linux文件/etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=c79c38ae-dd3d-4b75-a8f8-a5c6fdb04584
DEVICE=ens33
ONBOOT=yes
IPADDR= #输入和Windows相同网段的不同IP。网段相同,IP不同(要输入唯一的IP。Ping 不通的应该是吧)
NETMASK=255.255.255.0
GATEWAY= # 输入和Windows相同的网关
DNS1=114.114.114.114
DNS2=8.8.8.8
3)编辑/etc/sysconfig/network
添加
NETWORKING=yes
4)重启网络
应该是这个
systemctl restart network
权限
这个问题不是很清楚
最后把Linux中 /var/ftp/
ftp目录的权限使用 chmod a-w ftp 更改
最终
[root@localhost var]# ll | grep ftp
dr-xr-xr-x. 4 777 root 30 Dec 21 09:39 ftp
ftp目录下的文件权限好像要更改,不太确定。
我给加成全权限了。
更换IP再次报错
一次补充:
错误:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Login failed.
这个错误是由于vsftpd服务器配置错误造成的。
具体原因是vsftpd服务器无法在chroot ()中运行带有写权限的根目录,导致登录失败。
解决方法是在vsftpd的配置文件中修改根目录的权限或者将用户的根目录设置为非可写权限。
421服务不可用的错误则表示远程服务器已经关闭了连接。
二次补充:
之前一直查到要关闭这个服务。但是我这个打开反而Windows连接上FTP了,……
目录:控制面板>internel服务>高级>浏览
开启ftp
可能和开启关闭防火墙命令是差不多的,所以重启、关闭,应该是把“start”更换成“restart”、“stop”吧。应该吧
[root@localhost var]# systemctl start vsftpd #开启
[root@localhost var]# systemctl status vsftpd #查看状态
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2023-12-26 03:51:42 CST; 3s ago
Process: 2203 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
连接成功
在Windows的文件管理器搜索栏中输入
ftp:/Linux设置的IP/
然后enter
解决时间有点长且不连续,所以好多参考找不到了
Linux 桥接网络配置
CentOS7 图形化界面设置FTP
Linux命令:
# 查看版本
vsftpd --version
# 下载vsftpd
yum install vsftpd
# 查看vsftpd 的配置文件的前十行
head /etc/vsftpd/vsftpd.conf
# 查看本机IP
ip a s ens33
# Linux 登录FTP(用户ftp,密码空)
ftp (上条命令查出来的IP)
# 下载ftp
yum install ftp
ftp (那条命令查出来的IP)
# 查看防火墙状态(active:活动,开着;inactive,dead:关闭)
systemctl status firewalld
# 查看selinux状态(disabled:关闭)
getenforce
# 查看selinux的配置文件
head /etc/selinux/config
systemctl status firewalld
# 永久关闭防火墙
systemctl disable --now firewalld
systemctl status firewalld
ftp (那条命令查出来的IP)
# 查看vsftpd状态
systemctl status vsftpd
# 开启vsftpd
systemctl start vsftpd
systemctl status vsftpd
# 登录
ftp (上条命令查出来的IP)
# 成功会出现 Login successful
Windows现有设置:
控制中心:
【Internet网络】下,【高级】选项内,【浏览】下
【Windows……防火墙】>【允许应用或功能……防火墙】>【更改设置】
连接
在Windows的文件资源管理器的目录框内输入:ftp://(那条命令查出来的IP)