修改linux中的vsftpd服务端口

linux centos7.9中的vsftpd服务器端口根据查询的方法修改,服务无法启动

img


报错提示

img

协助我正确修改,整个服务器能正常启动并能确认对外映射端口

你这是什么的,关于


listen_port=2121

使用文本编辑器打开 vsftpd 的配置文件 /etc/vsftpd/vsftpd.conf:

vi /etc/vsftpd/vsftpd.conf

在配置文件中找到 listen_port 或 listen 配置项。如果没有找到,可以在文件的末尾添加以下行:

listen_port=NEW_PORT

启动 vsftpd 服务

sudo systemctl restart vsftpd

参考gpt:
结合自己分析给你如下建议:
vsftpd服务的配置文件有错误,导致服务无法启动。你可以检查/etc/vsftpd/vsftpd.conf文件是否有语法错误或者不合理的设置,例如listen和listen_ipv6不能同时为YES,否则会报错。你可以使用vsftpd -olisten=NO -olisten_ipv6=YES命令来测试配置文件是否有效。
vsftpd服务的端口被占用或者被防火墙拦截,导致服务无法启动。你可以使用netstat -tunlp | grep 21命令来查看21端口是否被其他进程占用,如果是的话,你需要停止或者杀死占用端口的进程。 你也可以使用firewall-cmd --zone=public --add-port=21/tcp --permanent命令来开放21端口,以及firewall-cmd --permanent --zone=public --add-service=ftp命令来允许ftp服务通过防火墙。最后,你需要使用firewall-cmd --reload命令来重启防火墙让设置生效。
vsftpd服务的用户或者权限设置有问题,导致服务无法启动。你可以检查/etc/passwd文件中是否有vsftpd用户,如果没有的话,你需要使用useradd vsftpd命令来创建用户。 你也可以检查/etc/vsftpd/user_list文件中是否有vsftpd用户,如果没有的话,你需要将vsftpd用户添加到该文件中。你还可以检查/var/ftp目录和/etc/vsftpd目录的权限是否正确,一般来说,它们应该属于root用户和ftp组,并且有755的权限。

问题分析,你这ftp服务启动失败:你试试这样解决

1、修改主动模式数据端口:

connect_from_port_20=YES 主动模式端口为20(该项配置文件默认已经添加)

ftp_data_port=20 指定主动模式的端口

注意:只需要修改"ftp_data_port"的配置,不需要修改"connect_from_port_20=YES"的配置.


2、重启vsftpd
systemctl restart vsftpd.service

ps -ef Igrep vsftpd

参考这里(以前的笔记),希望对你有帮助:

FTP有两种工作模式,建立控制连接时都是由客户端和 FTP 服务器的控制端口(默认值为21)建立控制连接,然后传输操作指令的。

区别在于使用数据传输端口(FTP-DATA)的方式不同,主动模式由FTP服务器指定数据传输所使用的端口,默认值为20。被动模式由FTP客户端决定数据传输的端口。在 /etc/vsftpd/vsftpd.conf配置文件中,也可以针对主动模式和被动模式对vsFTPd服务器进行配置。

主动模式

主动模式的相关配置参数:
####如果要在数据连接时取消主动模式时设此选项为NO,默认值为YES
port_enable=YES/NO

###控制以主动模式进行数据传输时是否使用20端口(FTP-DATA)。YES使用,NO不使用,默认值为NO。RHL自带的vsftpdconf 文件中此参数设为YES
connetc_from_port_20=YES/NO

###设定FTP数据传输端口(FTP-DATA)值,默认值为20。此参数用于主动模式。
ftp_data_port=port number

###默认值为NO。如果为YES,取消主动安全检查,该检查确保外出的数据只能连接到客户端上.打开此选项时要小心
port_promiscuous=YES/NO

被动模式


被动模式的相关配置参数
###YES,表示数据传输时允许使用被动模式;NO,则表示不允许使用。默认值为 YES
pasv_enable=YES/NO

###设定在被动模式下,建立数据传输可以使用 port 范围的下界和上界。0表示任意,默认值为0把端口范围设在数值比较高的一段范围内,比如50000~60000,将有助于安全性的提高
pasy_min_port=port number

###此选项被激活时,将关闭被动模式的安全检查。该检查确保数据连接和控制连接是来自同一个IP地址的。小心打开此选项。此选项唯一合理的用法是,存在于由安全隧道方案构成的组织,默认值为NO
pasv_promiscuous=YES/NO

###此选项为一个数字IP 地址,作为被动命令的响应。默认值为 one,即地址是从呼入的连接套接字中获取的
pasv_address= IP address

log一下看看日志显示为啥不能启动

【以下回答由 GPT 生成】

解决方案

要在CentOS 7.9中修改vsftpd服务器的端口,需要进行以下步骤:

  1. 首先确保你以root用户身份登录到CentOS服务器。

  2. 使用以下命令安装vsftpd(如果尚未安装):

sudo yum install vsftpd

  1. 使用文本编辑器打开vsftpd的配置文件:

sudo vi /etc/vsftpd/vsftpd.conf

  1. 在配置文件中找到listen_port参数,它指定了vsftpd服务器监听的端口。默认情况下,该参数被注释掉,即使用标准的FTP控制连接端口(21)。如果你要修改端口,取消注释,并将端口号更改为你想要的端口。例如,如果要将端口更改为2121,将该行修改为:

listen_port=2121

修改listen_port

  1. 保存并关闭文件。

  2. 确保防火墙允许新的FTP端口通过。使用以下命令打开所需端口:

sudo firewall-cmd --add-port=2121/tcp --permanent

sudo firewall-cmd --reload

这将在防火墙规则中添加FTP新端口,并重新加载防火墙配置。

  1. 重启vsftpd服务以使配置更改生效:

sudo systemctl restart vsftpd

  1. 确认vsftpd服务已经启动:

sudo systemctl status vsftpd

如果服务已经在运行,你将看到类似以下输出:

● vsftpd.service - Vsftpd ftp daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2021-10-18 09:55:08 UTC; 3h 30min ago Main PID: 1000 (vsftpd)

确保服务处于"active (running)"状态。

  1. 确认对外映射端口。你可以使用以下命令查看当前服务器上所有打开的TCP连接及其对应的端口号:

sudo netstat -tulpn | grep LISTEN

在输出中,你应该能够找到vsftpd进程及其监听的端口号。

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:2121 0.0.0.0:* LISTEN 1000/vsftpd

如果你能够看到类似的输出,说明vsftpd已经在指定的端口上监听,并且可以通过该端口访问FTP服务器。

完成这些步骤后,你应该能够成功修改vsftpd服务器的端口,并能通过指定的端口访问FTP服务器。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

需要在 vsftpd.conf 文件中添加一行:connect_from_port_20=YES6。或者可以删除这个变量,只保留 listen_port=8021