centos

vsftp在centos上的端口转发设置

小樊
40
2025-07-30 17:11:19
栏目: 智能运维

在CentOS上设置VSFTPD的端口转发,通常是为了将外部访问的特定端口转发到VSFTPD服务器监听的内部端口。以下是详细的步骤:

1. 安装VSFTPD

首先,确保你已经安装了VSFTPD。如果没有安装,可以使用以下命令进行安装:

sudo yum install vsftpd

2. 配置VSFTPD

编辑VSFTPD的配置文件 /etc/vsftpd/vsftpd.conf,确保以下配置项正确设置:

listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

3. 设置防火墙规则

确保防火墙允许FTP流量通过。你可以使用 firewalldiptables 来配置防火墙规则。

使用 firewalld

sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=990/tcp  # 如果使用FTPS
sudo firewall-cmd --permanent --add-port=40000:50000/tcp  # 自定义端口范围
sudo firewall-cmd --reload

使用 iptables

sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 990 -j ACCEPT  # 如果使用FTPS
sudo iptables -A INPUT -m conntrack --ctstate NEW -m tcp -p tcp --dport 40000:50000 -j ACCEPT
sudo service iptables save

4. 设置端口转发

假设你想将外部访问的端口 2121 转发到VSFTPD服务器的默认端口 21,可以使用 firewalld 的富规则(rich rules)来实现。

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="0.0.0.0/0" port protocol="tcp" port="2121" redirect port="21"'
sudo firewall-cmd --reload

5. 重启VSFTPD服务

最后,重启VSFTPD服务以应用所有更改:

sudo systemctl restart vsftpd

验证端口转发

你可以使用 telnetnc 命令来验证端口转发是否生效:

telnet your_server_ip 2121

如果连接成功,说明端口转发已经设置正确。

注意事项

通过以上步骤,你应该能够在CentOS上成功设置VSFTPD的端口转发。

0
看了该问题的人还看了