- 14.4 exportfs命令 - 14.5 NFS客户端问题 - 15.1 FTP介绍 - 15.2/15.3 使用vsftpd搭建ftp # 14.4 exportfs命令 - exportfs命令 和NFS一起安装的 例: - 配置了一个共享目录,之后需要新增、更改、机器或者目录;首先需要更改配置,重启NFS服务,但是远程客户端正在使用NFS服务,重启服务端的NFS服务就会对远程的客户端有影响,比如,造成服务异常,进程异常,有很大可能导致系统坏掉 - 到了这种时候,只能去一台一台机器的卸除挂载点,然后才能去重启NFS服务,但,如果是1000台机器,你怎么一台一台机器的去卸载 - 想省略这种操作的办法就是使用exportfs命令 - 常用选项 - -a 全部挂载或者全部卸载 - -r 重新挂载 - -u 卸载某一个目录 - -v 显示共享目录 - 以下操作在服务端上 - vim /etc/exports //增加 - /tmp/ 192.168.133.0/24(rw,sync,no_root_squash) - exportfs -arv //不用重启nfs服务,配置文件就会生效 - 去客户端,先关闭selinux 和防火墙,服务端也是 ``` [[email protected] ~]# getenforce Enforcing [[email protected] ~]# setenforce 0 [[email protected] ~]# getenforce Permissive [[email protected] ~]# systemctl stop firewalld [[email protected] ~]# mount -t nfs 192.168.202.131:/home/nfstestdir /mnt/ [[email protected] ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda3 28G 4.2G 24G 15% / devtmpfs 479M 0 479M 0% /dev tmpfs 489M 0 489M 0% /dev/shm tmpfs 489M 6.7M 482M 2% /run tmpfs 489M 0 489M 0% /sys/fs/cgroup /dev/sda1 197M 109M 88M 56% /boot tmpfs 98M 0 98M 0% /run/user/0 192.168.202.131:/home/nfstestdir 28G 4.4G 24G 16% /mnt [[email protected] ~]# ``` - 先把挂载的卸载掉 ``` [[email protected] ~]# umount /mnt [[email protected] ~]# cd [[email protected] ~]# umount /mnt umount: /mnt:未挂载 [[email protected] ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda3 28G 4.2G 24G 15% / devtmpfs 479M 0 479M 0% /dev tmpfs 489M 0 489M 0% /dev/shm tmpfs 489M 6.7M 482M 2% /run tmpfs 489M 0 489M 0% /sys/fs/cgroup /dev/sda1 197M 109M 88M 56% /boot tmpfs 98M 0 98M 0% /run/user/0 ``` - 每台机器都需要去卸载,太麻烦了,有没有一种好的方法呢 - 可使用exportfs - 先查看下服务端 - 执行下exportfs -arv 一旦执行它 就可以让你的配置文件重新生效 ``` [[email protected] ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda3 28G 4.4G 24G 16% / devtmpfs 479M 0 479M 0% /dev tmpfs 489M 0 489M 0% /dev/shm tmpfs 489M 6.7M 482M 2% /run tmpfs 489M 0 489M 0% /sys/fs/cgroup /dev/sda1 197M 109M 88M 56% /boot tmpfs 98M 0 98M 0% /run/user/0 [[email protected] ~]# exportfs -arv exporting 192.168.202.0/24:/home/nfstestdir [[email protected] ~]# ``` - 可以验证下,先编辑文件 /etc/exports, ``` [[email protected] ~]# vim /etc/exports /home/nfstestdir 192.168.202.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000) /tmp 192.168.202.132(rw,sync,no_root_squash) ~ ~ ~ :wq ``` - 执行exportfs -arv ``` [[email protected] ~]# exportfs -arv exporting 192.168.202.132:/tmp exporting 192.168.202.0/24:/home/nfstestdir [[email protected] ~]# ``` - 再去客户端showmount 也生效了,并没有重启nfs服务, ``` [[email protected] ~]# showmount -e 192.168.202.131 Export list for 192.168.202.131: /home/nfstestdir 192.168.202.0/24 /tmp 192.168.202.132 ``` - 挂载后,现在这台aing-02机器的mnt目录下 就是 aming-01下的/tmp/ 目录 ``` [[email protected] ~]# clear [[email protected] ~]# mount -t nfs 192.168.202.131:/tmp/ /mnt/ [[email protected] ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda3 28G 4.2G 24G 15% / devtmpfs 479M 0 479M 0% /dev tmpfs 489M 0 489M 0% /dev/shm tmpfs 489M 6.7M 482M 2% /run tmpfs 489M 0 489M 0% /sys/fs/cgroup /dev/sda1 197M 109M 88M 56% /boot tmpfs 98M 0 98M 0% /run/user/0 192.168.202.131:/tmp 28G 4.4G 24G 16% /mnt [[email protected] ~]# ls /mnt aming.sock php-fcgi.sock mysql2.sql systemd-private-f11720e7e2c142a6b2013e112e133993-vmtoolsd.service-hYcsfR mysql_all.sql test.com.log mysqlbak.sql user.sql mysql.sock [[email protected] ~]# [[email protected] ~]# ls /tmp/ aming.sock php-fcgi.sock mysql2.sql systemd-private-f11720e7e2c142a6b2013e112e133993-vmtoolsd.service-hYcsfR mysql_all.sql test.com.log mysqlbak.sql user.sql mysql.sock [[email protected] ~]# ``` - 下面我们再来创建一个新的文件 ``` [[email protected] ~]# vim /tmp/1212.txt dlddldlddldl dlslsfladkjf ldkldkfjldkjdfsf ~ ~ ~ :wq [[email protected] ~]# vim /mnt/1212.txt ldlkaljdlajf ldjafldjsafl ldjadkfjldjf ~ ~ ~ :wq ``` - 看下客户端 ``` [[email protected] ~]# vim /mnt/1212.txt [[email protected] ~]# ls -l /mnt/ 总用量 1976 -rw-r--r--. 1 root root 39 11月 1 22:09 1212.txt srw-rw-rw-. 1 root root 0 11月 1 21:16 aming.sock -rw-r--r--. 1 root root 30848 10月 30 23:20 mysql2.sql -rw-r--r--. 1 root root 1313427 10月 30 23:16 mysql_all.sql -rw-r--r--. 1 root root 656917 10月 30 23:02 mysqlbak.sql srwxrwxrwx. 1 mysql mysql 0 11月 1 21:16 mysql.sock srw-rw-rw-. 1 root root 0 11月 1 21:16 php-fcgi.sock drwx------. 3 root root 17 11月 1 21:16 systemd-private-f11720e7e2c142a6b2013e112e133993-vmtoolsd.service-hYcsfR -rw-r--r--. 1 root root 3097 10月 24 01:48 test.com.log -rw-r--r--. 1 root root 7028 10月 30 23:10 user.sql [[email protected] ~]# ``` - 再去服务端 ``` [[email protected] ~]# ls -l /tmp/ 总用量 1976 -rw-r--r--. 1 root root 39 11月 1 22:09 1212.txt srw-rw-rw-. 1 root root 0 11月 1 21:16 aming.sock -rw-r--r--. 1 root root 30848 10月 30 23:20 mysql2.sql -rw-r--r--. 1 root root 1313427 10月 30 23:16 mysql_all.sql -rw-r--r--. 1 root root 656917 10月 30 23:02 mysqlbak.sql srwxrwxrwx. 1 mysql mysql 0 11月 1 21:16 mysql.sock srw-rw-rw-. 1 root root 0 11月 1 21:16 php-fcgi.sock drwx------. 3 root root 17 11月 1 21:16 systemd-private-f11720e7e2c142a6b2013e112e133993-vmtoolsd.service-hYcsfR -rw-r--r--. 1 root root 3097 10月 24 01:48 test.com.log -rw-r--r--. 1 root root 7028 10月 30 23:10 user.sql [[email protected] ~]# ``` - no_root_squash 不限制root 所以,当我们到了挂载点下,到了这个共享目录下的时候,你就可以像在你本地磁盘使用 root用户一样,你是不受限制,通常情况下不限制root的时候多 # 14.5 NFS客户端问题 - NFS 4版本会有该问题,尤其是在centos6上会有这个问题 - 客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、属组为nobody - 解决方案 1. 客户端挂载时加上 -o nfsvers=3 也就是说指定nfs的版本为3版本,不再用4了,具体操作如下 2. 如果不想卸载可以使用 remount ``` [[email protected] ~]# umount /mnt/ [[email protected] ~]# mount -t nfs -o nfsvers=3 192.168.202.131:/tmp/ /mnt/ [[email protected] ~]# [[email protected] ~]# mount -t nfs -oremount,nfsvers=3 192.168.202.131:/tmp/ /mnt/ [[email protected] ~]# [[email protected] ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda3 28G 4.2G 24G 15% / devtmpfs 479M 0 479M 0% /dev tmpfs 489M 0 489M 0% /dev/shm tmpfs 489M 6.7M 482M 2% /run tmpfs 489M 0 489M 0% /sys/fs/cgroup /dev/sda1 197M 109M 88M 56% /boot tmpfs 98M 0 98M 0% /run/user/0 192.168.202.131:/tmp/ 28G 4.4G 24G 16% /mnt [[email protected] ~]# ``` 2. 第二种办法,客户端和服务端都需要 vim /etc/idmapd.conf // 把“#Domain = local.domain.edu” 改为 “Domain = xxx.com” (这里的xxx.com,随意定义吧),然后再重启rpcidmapd服务,实际上centos7 里面没有这个rpcidmapd服务,重启rpcbind就可以 # 15.1 FTP介绍 - FTP多用于Windows传文件到linux - 传输文件工具rz 、sz在文件超过4G,就不能用了 - [ ] FTP介绍 - FTP是File Transfer Protocol(文件传输协议,简称文传协议)的英文简称,用于在Internet上控制文件的双向传输。 - FTP的主要作用就是让用户连接一个远程计算机(这些计算机上运行着FTP服务器程序),并查看远程计算机中的文件,然后把文件从远程计算机复制到本地计算机,或把本地计算机的文件传送到远程计算机。 - 小公司用的多,大企业不用FTP(多用自动化发布工具),因为不安全 # 15.2 使用vsftpd搭建ftp服务(上) - 先按照vsftpd ``` [[email protected] ~]# yum install -y vsftpd 已安装: vsftpd.x86_64 0:3.0.2-22.el7 完毕! [[email protected] ~]# ``` - 创建用户 这个软件包,是可以使用系统级别的账户去登录。自然而然的,如果这个账户和密码给到用户手上,用户也可以通过这个账户和密码通过SSH登录到机器上的,所以这个方式登录ftp就不安全,最好不要使用 为了安全,给ftp创建虚拟用户,映射成一个系统用户,这个用户即使给了用户和密码你也是没有办法去通过ssh登录到服务器 - 创建普通用户,创建普通用户的目的是为了让虚拟用户做一个映射的,因为毕竟登录这台机器,需要传输数据,必须要有一个用户 ``` [[email protected] ~]# useradd -s /sbin/nologin virftp [[email protected] ~]# ``` - -s定义shell sbin/nologin 表示这个用户不能登录系统,这样做的目的是为了安全 - 下面编辑下虚拟用户的密码文件vim /etc/vsftpd/vsftpd_login,在这个文件里,我们需要给它定义用户名密码,它的格式 内容如下,奇数行为用户名,偶数行为密码,多个用户就写多行 ``` [[email protected] ~]# vim /etc/vsftpd/vsftpd_login testuser1 aminglinux user1 aaaa1111 ~ ~ ~ ~ :wq [[email protected] ~]# vim /etc/vsftpd/vsftpd_login ``` - 保存完之后还需要给它做一个权限的设置,因为这个密码文件肯定要很安全,不能让所有的用户都可以读,所以设置为600 ``` [[email protected] ~]# chmod 600 /etc/vsftpd/vsftpd_login [[email protected] ~]# ``` - 最后还需要把文本文件转化为计算机能识别的二进制文件,将虚拟用户的密码文件转换为计算机可以识别的文件 - 使用这个命令 db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db ``` [[email protected] ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db [[email protected] ~]# ls -l /etc/vsftpd/ 总用量 36 -rw-------. 1 root root 125 8月 3 14:10 ftpusers -rw-------. 1 root root 361 8月 3 14:10 user_list -rw-------. 1 root root 5030 8月 3 14:10 vsftpd.conf -rwxr--r--. 1 root root 338 8月 3 14:10 vsftpd_conf_migrate.sh -rw-------. 1 root root 36 11月 2 21:04 vsftpd_login -rw-r--r--. 1 root root 12288 11月 2 21:07 vsftpd_login.db [[email protected] ~]# ``` - 下面来 创建虚拟用户配置文件所在的目录,这个目录也是自定义的,也需要在配置文件中给它定义 ``` [[email protected] ~]# mkdir /etc/vsftpd/vsftpd_user_conf [[email protected] ~]# [[email protected] ~]# cd !$ cd /etc/vsftpd/vsftpd_user_conf [[email protected] vsftpd_user_conf]# ``` - 创建第一个用户的配置文件 cd /etc/vsftpd/vsftpd_user_conf vim testuser1 配置文件的名字,需和用户的名字保持一致 添加以下内容 local_root=/home/virftp/testuser1 //指定虚拟用户的家目录 anonymous_enable=NO //是否允许匿名用户 write_enable=YES //是否可写 local_umask=022 //创建新文件目录的默认权限 anon_upload_enable=NO //是否允许匿名用户上传 anon_mkdir_write_enable=NO //是否允许匿名用户创建和写 idle_session_timeout=600 //连接ftp超时时间(秒) data_connection_timeout=120 //数据传输的超时时间(秒) max_clients=10 //最多允许同时几个终端连接 ``` [[email protected] vsftpd_user_conf]# vim testuser1 local_root=/home/virftp/testuser1 anonymous_enable=NO write_enable=YES local_umask=022 anon_upload_enable=NO anon_mkdir_write_enable=NO idle_session_timeout=600 data_connection_timeout=120 max_clients=10 ~ ~ ~ :wq ``` - 定义完了虚拟用户的配置文件之后,再来创建虚拟用户的家目录 ``` [[email protected] vsftpd_user_conf]# mkdir /home/virftp/testuser1 [[email protected] vsftpd_user_conf]# ``` - 然后我们在touch一个文件 ``` [[email protected] vsftpd_user_conf]# touch /home/virftp/testuser1/aming.txt [[email protected] vsftpd_user_conf]# ``` - 还需要把权限做一个修改,因为你最终要映射成virftp用户,如果这个用户没有读的权限,没有办法上床下载 ``` [[email protected] vsftpd_user_conf]# chown -R virftp:virftp /home/virftp [[email protected] vsftpd_user_conf]# ``` - 下面这一行很重要,用来定义咱们的密码文件在哪里 vim /etc/pam.d/vsftpd ``` [[email protected] vsftpd_user_conf]# vim /etc/pam.d/vsftpd #%PAM-1.0 session optional pam_keyinit.so force revoke auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed auth required pam_shells.so auth include password-auth account include password-auth session required pam_loginuid.so session include password-auth ~ ~ ~ ~ ~ ~ ~ "/etc/pam.d/vsftpd" 8L, 335C ``` - 在这里,可以自定义密码文件 ``` [[email protected] vsftpd_user_conf]# vim /etc/pam.d/vsftpd #%PAM-1.0 #%PAM-1.0 auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login session optional pam_keyinit.so force revoke auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed auth required pam_shells.so auth include password-auth account include password-auth session required pam_loginuid.so session include password-auth ~ ~ ~ :wq [[email protected] vsftpd_user_conf]# vim /etc/pam.d/vsftpd ``` - /etc/pam.d/vsftpd 这个是用来认证的一个文件,我们去登录ftp,它需要有一个认证的过程,肯定的告诉它,通过什么样的形式去认证,认证的时候 去哪里去需要找你的密码库,输入用户名 密码,需要一个库去比对 ``` [[email protected] vsftpd_user_conf]# cat !$ cat /etc/pam.d/vsftpd #%PAM-1.0 auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login session optional pam_keyinit.so force revoke auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed auth required pam_shells.so auth include password-auth account include password-auth session required pam_loginuid.so session include password-auth [[email protected] vsftpd_user_conf]# [[email protected] vsftpd_user_conf]# ls /lib64/security/pam_userdb.so /lib64/security/pam_userdb.so [[email protected] vsftpd_user_conf]# ``` - 这个地方需要注意这个东西 lib64/security/pam_userdb.so 这个文件有没有 - 之后再来编辑下vsftpd的主配置文件,这个文件是作为vsftpd的最大的最重要的配置文件,有几行需要更改下 ``` [[email protected] vsftpd_user_conf]# vim /etc/vsftpd/vsftpd.conf # Example config file /etc/vsftpd/vsftpd.conf # # The default compiled in settings are fairly paranoid. This sample file # loosens things up a bit, to make the ftp daemon more usable. # Please see vsftpd.conf.5 for all compiled in defaults. # # READ THIS: This example file is NOT an exhaustive list of vsftpd options. # Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd‘s # capabilities. # # Allow anonymous FTP? (Beware - allowed by default if you comment this out). anonymous_enable=YES # # Uncomment this to allow local users to log in. # When SELinux is enforcing check for SE bool ftp_home_dir local_enable=YES # # Uncomment this to enable any form of FTP write command. write_enable=YES # # Default umask for local users is 077. You may wish to change this to 022, # if your users expect that (022 is used by most other ftpd‘s) local_umask=022 # # Uncomment this to allow the anonymous FTP user to upload files. This only # has an effect if the above global write enable is activated. Also, you will # obviously need to create a directory writable by the FTP user. "/etc/vsftpd/vsftpd.conf" 127L, 5030C ``` 1. anonymous_enable=NO 不允许匿名用户登录 2. anon_upload_enable=NO 不允许上传文件 3. anon_mkdir_write_enable=NO 不允许创建目录 - 改完这几行之后 再在最先增加这几行 ``` # Make sure, that one of the listen options is commented !! listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES ``` - 改为 ``` # Make sure, that one of the listen options is commented !! listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES chroot_local_user=YES guest_enable=YES guest_username=virftp virtual_use_local_privs=YES user_config_dir=/etc/vsftpd/vsftpd_user_conf allow_writeable_chroot=YES :wq [[email protected] vsftpd_user_conf]# vim /etc/vsftpd/vsftpd.conf [[email protected] vsftpd_user_conf]# ``` - 改为配置文件,来启动服务 ``` [[email protected] vsftpd_user_conf]# systemctl start vsftpd [[email protected] vsftpd_user_conf]# ps aux |grep vsftp root 3892 0.0 0.0 53216 576 ? Ss 21:46 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf root 3894 0.0 0.0 112680 980 pts/0 R+ 21:46 0:00 grep --color=auto vsftp [[email protected] vsftpd_user_conf]# netstat -lntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1112/nginx: master tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 1068/rpc.mountd tcp 0 0 0.0.0.0:45780 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1030/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2146/master tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 1112/nginx: master tcp 0 0 0.0.0.0:50976 0.0.0.0:* LISTEN 920/rpc.statd tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN - tcp6 0 0 :::3306 :::* LISTEN 2185/mysqld tcp6 0 0 :::111 :::* LISTEN 1/systemd tcp6 0 0 :::20048 :::* LISTEN 1068/rpc.mountd tcp6 0 0 :::21 :::* LISTEN 3892/vsftpd tcp6 0 0 :::22 :::* LISTEN 1030/sshd tcp6 0 0 :::53143 :::* LISTEN 920/rpc.statd tcp6 0 0 ::1:25 :::* LISTEN 2146/master tcp6 0 0 :::46623 :::* LISTEN - tcp6 0 0 :::2049 :::* LISTEN - [[email protected] vsftpd_user_conf]# ``` - tcp6 0 0 :::21 :::* LISTEN 3892/vsftpd - ftp 用到的端口是21端口,22是sshd 远程 23 端口是telnet(现在几乎没人用) - 服务已经启动完了 ,剩下的就是做测试 # 15.3 使用vsftpd搭建ftp服务(下) - 测试,可以在windows上安装一个filezlla client - 但是为了方便测试,安装一个linux上的客户端 yum install -y lftp ``` [[email protected] ~]# yum install -y lftp 已安装: lftp.x86_64 0:4.4.8-8.el7_3.2 完毕! [[email protected] ~]# [[email protected] ~]# lftp [email protected] 口令: lftp [email protected]:~> ls -rw-r--r-- 1 1003 1003 0 Nov 02 13:25 aming.txt lftp [email protected]:/> ``` - 它都支持用那些命令呢,可以按一个? 回车 ``` lftp [email protected]:/> ? !<shell-command> (commands) alias [<name> [<value>]] attach [PID] bookmark [SUBCMD] cache [SUBCMD] cat [-b] <files> cd <rdir> chmod [OPTS] mode file... close [-a] [re]cls [opts] [path/][pattern] debug [<level>|off] [-o <file>] du [options] <dirs> exit [<code>|bg] get [OPTS] <rfile> [-o <lfile>] glob [OPTS] <cmd> <args> help [<cmd>] history -w file|-r file|-c|-l [cnt] jobs [-v] [<job_no...>] kill all|<job_no> lcd <ldir> lftp [OPTS] <site> ln [-s] <file1> <file2> ls [<args>] mget [OPTS] <files> mirror [OPTS] [remote [local]] mkdir [-p] <dirs> module name [args] more <files> mput [OPTS] <files> mrm <files> mv <file1> <file2> [re]nlist [<args>] open [OPTS] <site> pget [OPTS] <rfile> [-o <lfile>] put [OPTS] <lfile> [-o <rfile>] pwd [-p] queue [OPTS] [<cmd>] quote <cmd> repeat [OPTS] [delay] [command] rm [-r] [-f] <files> rmdir [-f] <dirs> scache [<session_no>] set [OPT] [<var> [<val>]] site <site-cmd> source <file> torrent [-O <dir>] <file|URL>... user <user|URL> [<pass>] wait [<jobno>] zcat <files> zmore <files> lftp [email protected]:/> ``` - 常用的有哪些命令 get put - 把aming.txt get到当前目录下来,quit 退出 ``` lftp [email protected]:/> get aming.txt lftp [email protected]:/> quit [[email protected] ~]# ls aming.txt anaconda-ks.cfg [[email protected] ~]# ls -lt |head 总用量 4 -rw-r--r--. 1 root root 0 11月 2 21:25 aming.txt -rw-------. 1 root root 1261 10月 5 22:26 anaconda-ks.cfg [[email protected] ~]# ``` - 也可以自己去windows 下载一个 filezilla ,记得下载客户端,不要下载server
时间: 2024-10-09 22:56:03