Matable连接FTP服务器_FTP/SFTP连接
一、FTP与SFTP基础概念
1、FTP(File Transfer Protocol):文件传输协议,用于在客户端和服务器之间传输文件,它基于TCP/IP协议,通过21号端口进行控制连接,数据传输则使用20号端口,FTP分为主动模式和被动模式,主动模式下由服务器端发起数据连接,而被动模式下由客户端发起数据连接。
2、SFTP(Secure File Transfer Protocol):安全文件传输协议,是SSH协议的一部分,通过加密方式保护数据传输的安全性,SFTP默认使用22号端口,所有通信都通过SSH协议加密,确保数据在传输过程中的机密性和完整性。
二、配置FTP服务器
以CentOS7环境下搭建vsftpd为例,步骤如下:
1、安装vsftpd:
yum install -y vsftpd
2、启动并设置开机自启:
systemctl enable vsftpd.service systemctl start vsftpd.service
3、查看监听端口:
netstat -antup | grep ftp
4、创建用户并指定目录:
adduser ftptest passwd ftptest mkdir /home/ftptest/test touch /home/ftptest/test/testfile.txt chown -R ftptest:ftptest /home/ftptest/test
5、修改vsftpd配置文件:
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf # 主要修改项: anonymous_enable=NO local_enable=YES listen=YES #chroot_local_user=YES # 根据需求决定是否启用 chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list pasv_enable=Yes pasv_min_port=50000 pasv_max_port=50010
6、重启服务:
systemctl restart vsftpd.service
三、客户端连接FTP与SFTP服务器
1、FTP客户端连接:
Linux命令行:
ftp IP地址或域名
然后输入用户名和密码进行登录。
Windows资源管理器:
在地址栏输入ftp://服务器地址
,按回车后输入用户名和密码。
2、SFTP客户端连接:
Linux命令行:
sftp username@hostname
然后输入密码进行登录。
Putty工具:
打开Putty,选择SSH,输入主机名,点击“Open”,输入用户名和密码即可连接。
FileZilla工具:
打开FileZilla,输入主机、用户名、密码和端口(默认22),点击“快速连接”。
四、Java代码示例
1、FTP连接:
import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; public class FTPExample { public static void main(String[] args) throws Exception { FTPClient ftp = new FTPClient(); ftp.connect("ftp服务器地址"); ftp.login("用户名", "密码"); ftp.enterLocalPassiveMode(); ftp.setFileType(FTP.BINARY_FILE_TYPE); boolean success = ftp.storeFile("/远程路径/上传的文件名", new FileInputStream("本地文件路径")); ftp.logout(); ftp.disconnect(); } }
2、SFTP连接:
import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; public class SFTPExample { public static void main(String[] args) throws Exception { JSch jsch = new JSch(); Session session = jsch.getSession("用户名", "主机名", 22); session.setPassword("密码"); session.setConfig("StrictHostKeyChecking", "no"); session.connect(); ChannelSftp channel = (ChannelSftp) session.openChannel("sftp"); channel.connect(); channel.put("本地文件路径", "/远程路径/上传的文件名"); channel.disconnect(); session.disconnect(); } }
五、常见问题解答(FAQs)
Q1: 如何在FTP和SFTP中切换目录?
A1: 在FTP和SFTP中,可以使用cd
命令切换到目标目录,使用lcd
命令切换本地目录。
cd /path/to/remote/dir
:切换到远程服务器上的目录。
lcd /path/to/local/dir
:切换到本地机器上的目录。
Q2: 如何修改FTP和SFTP的文件权限?
A2: 在FTP中,可以使用SITE CHMOD
命令来修改文件权限。
site chmod 755 filename
在SFTP中,可以使用chmod
命令来修改文件权限。
chmod 755 filename
六、小编有话说
无论是FTP还是SFTP,都是常用的文件传输协议,各有优缺点,FTP简单易用,但安全性较低;SFTP通过加密传输提高了安全性,但配置相对复杂,在选择使用哪种协议时,需要根据实际需求权衡安全性和便捷性,希望本文能帮助大家更好地理解和使用这两种协议,实现高效的文件传输。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1461802.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复