linux下如何访问windows下的ftp服务器
linux下常用FTP命令
1 连接ftp服务器
格式:ftp [hostname| ip-address]
a)在linux命令行下输入:
ftp 19216811
b)服务器询问你用户名和密码,分别输入用户名和相应密码,待认证通过即可。
2 下载文件
下载文件通常用get和mget这两条命令。
a) get
格式:get [remote-file] [local-file]
将文件从远端主机中传送至本地主机中。
如要获取远程服务器上/usr/your/1htm,则
ftp> get /usr/your/1htm 1htm (回车)
b) mget
格式:mget [remote-files]
从远端主机接收一批文件至本地主机。
如要获取服务器上/usr/your/下的所有文件,则
ftp> cd /usr/your/
ftp> mget (回车)
此时每下载一个文件,都会有提示。如果要除掉提示,则在mget 命令前先执行:prompt off
注意:文件都下载到了linux主机的当前目录下。比如,在 /usr/my下运行的ftp命令,则文件都下载到了/usr/my下
3上传文件
a) put
格式:put local-file [remote-file]
将本地一个文件传送至远端主机中。
如要把本地的1htm传送到远端主机/usr/your,并改名为2htm
ftp> put 1htm /usr/your/2htm (回车)
b) mput
格式:mput local-files
将本地主机中一批文件传送至远端主机。
如要把本地当前目录下所有html文件上传到服务器/usr/your/ 下
ftp> cd /usr/your (回车)
ftp> mput htm (回车)
注意:上传文件都来自于主机的当前目录下。比如,在 /usr/my下运行的ftp命令,则只有在/usr/my下的文件linux才会上传到服务器/usr/your 下。
4 断开连接
bye:中断与服务器的连接。
ftp> bye (回车)
这个直接推荐你看看这里:http://wwwlinuxprobecom/chapter-11html
文件传输协议(FTP,File Transfer Protocol),即能够让用户在互联网中上传、下载文件的文件协议,而FTP服务器就是支持FTP传输协议的主机,要想完成文件传输则需要FTP服务端和FTP客户端的配合才行。
通常用户使用FTP客户端软件向FTP服务器发起连接并发送FTP指令,服务器收到用户指令后将执行结果返回客户端。
FTP协议占用两个端口号:
21端口:命令控制,用于接收客户端执行的FTP命令。
20端口:数据传输,用于上传、下载文件数据。
FTP数据传输的类型:
主动模式:FTP服务端主动向FTP客户端发起连接请求。
被动模式:FTP服务端等待FTP客户端的连接请求。
112 安装vsftpd服务程序
Vsftpd即“Very Secure FTP Daemon”是一款运行在类Unix操作系统的FTP服务端程序,Vsftpd主打的是安全性、完全开源及免费、速率高、支持IPv6、虚拟用户功能等等其他FTP服务端软件不具备的功能。
安装vsftpd服务程序包:
[root@linuxprobe ~]# yum install vsftpd -y
Loaded plugins: langpacks, product-id, subscription-manager
…………………省略部分安装过程………………
---> Package vsftpdx86_64 0:302-9el7 will be installed
--> Finished Dependency Resolution
…………………省略部分安装过程…………………
Installed:
vsftpdx86_64 0:302-9el7
Complete!
清空默认的防火墙默认规则:
[root@linuxprobe ~]# iptables -F
保存清空后的防火墙规则表:
[root@linuxprobe ~]# service iptables save
Vsftpd的程序与配置文件:
主程序 /usr/sbin/vsftpd
用户禁止登陆列表 /etc/vsftpd/ftpusers
/etc/vsftpd/user_list
主配置文件 /etc/vsftpd/vsftpdconf
先来分析下vsftpd程序的主配置文件吧:
[root@linuxprobe ~]# cat /etc/vsftpd/vsftpdconf
主配置文件长达123行,但大部分是以#号开始的,这些都是注释信息,我们可以过滤掉它们。
备份vsftpd的主配置文件:
[root@linuxprobe ~]# mv /etc/vsftpd/vsftpdconf /etc/vsftpd/vsftpdconf_bak
过滤掉所有包含#号的行,并将过滤结果写回到vsftpdconf文件中:
[root@linuxprobe ~]# grep -v "#" /etc/vsftpd/vsftpdconf_bak > /etc/vsftpd/vsftpdconf
此时再分析下vsftpd程序的主配置文件吧:
[root@linuxprobe ~]# cat /etc/vsftpd/vsftpdconf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
vsftpd程序配置文件参数的作用:
参数 作用
listen=[YES|NO] 是否以独立运行的方式监听服务。
listen_address=IP地址 设置要监听的IP地址。
listen_port=21 设置FTP服务的监听端口。
download_enable=[YES|NO] 是否允许下载文件。
userlist_enable=[YES|NO]
userlist_deny=[YES|NO] 是否启用“禁止登陆用户名单”。
max_clients=0 最大客户端连接数,0为不限制。
max_per_ip=0 同一IP地址最大连接数,0位不限制。
anonymous_enable=[YES|NO] 是否允许匿名用户访问。
anon_upload_enable=[YES|NO] 是否允许匿名用户上传文件。
anon_umask=022 匿名用户上传文件的umask值。
anon_root=/var/ftp 匿名用户的FTP根目录。
anon_mkdir_write_enable=[YES|NO] 是否允许匿名用户创建目录。
anon_other_write_enable=[YES|NO] 是否开放匿名用户其他写入权限。
anon_max_rate=0 匿名用户最大传输速率(字节),0为不限制。
local_enable=[YES|NO] 是否允许本地用户登陆FTP。
local_umask=022 本地用户上传文件的umask值。
local_root=/var/ftp 本地用户的FTP根目录。
chroot_local_user=[YES|NO] 是否将用户权限禁锢在FTP目录,更加的安全。
local_max_rate=0 本地用户最大传输速率(字节),0为不限制。
113 Vsftpd的验证方式
vsftpd程序提供的FTP服务可选认证方式,分别为匿名访问、本地用户和虚拟用户:
匿名访问:任何人无需验证口令即可登入FTP服务端。
本地用户:使用FTP服务器中的用户、密码信息。
虚拟用户:创建独立的FTP帐号资料。
顾名思义匿名访问就是所有人均可随意登入FTP服务,这样自然会产生安全问题,一般用于存放公开的数据。
而本地用户与虚拟用户则需要用户提供帐号及口令后才能登入FTP服务,更加的安全,而虚拟用户则是最安全的。
下面的实验环节将使用两台红帽RHEL7系统的主机,读者需要提前配置网卡的IP地址等信息:
主机名称 操作系统 IP地址
FTP服务端 红帽RHEL7操作系统 1921681010
FTP客户端 红帽RHEL7操作系统 1921681020
1131 匿名访问模式
FTP匿名访问模式是比较不安全的服务模式,尤其在真实的工作环境中千万不要存放敏感的数据,以免泄露。
vsftpd程序默认已经允许匿名访问模式,我们要做的就是开启匿名用户的上传和写入权限,写入下面的参数:
[root@linuxprobe ~]# vim /etc/vsftpd/vsftpdconf
参数 作用
anonymous_enable=YES 允许匿名访问模式。
anon_umask=022 匿名用户上传文件的umask值。
anon_upload_enable=YES 允许匿名用户上传文件
anon_mkdir_write_enable=YES 允许匿名用户创建目录
anon_other_write_enable=YES 允许匿名用户修改目录名或删除目录
确认填写正确后保存并退出vsftpdconf文件,然后重启vsftpd服务程序并设置为开机自启动。
[root@linuxprobe ~]# systemctl restart vsftpd
[root@linuxprobe ~]# systemctl enable vsftpd
ln -s '/usr/lib/systemd/system/vsftpdservice' '/etc/systemd/system/multi-usertargetwants/vsftpdservice
因为在红帽RHCSA、RHCE或RHCA考试后都要重启您的实验机再执行判分脚本。
所以请读者在日常工作中也要记得将需要的服务加入到开机启动项中:"systemctl enable vsftpd"。
如果重启vsftpd服务程序时没有报错,此时便可以使用FTP客户机(1921681020)尝试登入FTP服务了。
ftp命令用于使用FTP服务,格式为:“ftp [参数] [FTP主机]”。
红帽RHEL7系统中ftp命令默认没有安装,请执行"yum install ftp -y"即可安装完毕。
在客户端尝试登入FTP服务:
[root@linuxprobe ~]# ftp 1921681010
Connected to 1921681010 (1921681010)
220 (vsFTPd 302)
Name (1921681010:root): anonymous
331 Please specify the password
Password:敲击回车
230 Login successful
Remote system type is UNIX
Using binary mode to transfer files
ftp> cd pub
250 Directory successfully changed
ftp> mkdir files
550 Permission denied
上面操作中已经将防火墙规则清空,在vsftpdconf文件中也已经允许匿名用户创建目录与写入权限,那怎么会被拒绝了呢?
这里建议读者先不要往下看,思考后用自己的方法解决下这个问题,长期这样你的Linux的排错能力一定会练出来的。
回想前面的参数细节,匿名访问模式的FTP根目录为/var/ftp:
[root@linuxprobe ~]# ls -ld /var/ftp/pub
drwxr-xr-x 3 root root 16 Jul 13 14:38 /var/ftp/pub
原来匿名用户的FTP根目录所有者/组都是root,所以匿名用户没有写入权限,那我们将所有者修改为ftp试试吧。
[root@linuxprobe ~]# chown ftp /var/ftp/pub
此时再用ftp命令尝试登入FTP服务并创建文件:
ftp> mkdir files
550 Create directory operation failed
可恶!又报错了!!虽然这次报错代码还是550,但前面提示权限拒绝,这次是操作失败,马上想到是SELinux服务在捣鬼。
查看所有与ftp相关的SELinux规则:
[root@linuxprobe ~]# getsebool -a | grep ftp
ftp_home_dir --> off
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
sftpd_write_ssh_home --> off
tftp_anon_write --> off
tftp_home_dir --> off
设置SELinux服务对ftp服务的访问规则策略为允许。
[root@linuxprobe ~]# setsebool -P ftpd_full_access=on
此时再来创建文件或目录就没有问题了:
[root@linuxprobe ~]# ftp 1921681010
Connected to 1921681010 (1921681010)
220 (vsFTPd 302)
Name (1921681010:root): anonymous
331 Please specify the password
Password:敲击回车
230 Login successful
Remote system type is UNIX
Using binary mode to transfer files
ftp> cd pub
250 Directory successfully changed
ftp> mkdir files
257 "/pub/files" created
ftp> rename files database
350 Ready for RNTO
250 Rename successful
ftp> rmdir database
250 Remove directory operation successful
ftp> exit
221 Goodbye
请注意:当您完成本实验后请还原虚拟机快照再进行下一个实验,否则可能导致配置文件冲突而报错。
1132 本地用户模式
既然要使用本地用户模式,而本地用户模式确实要比匿名访问模式更加的安全,所以本实验中会关闭匿名访问模式。
vsftpd服务程序默认已经允许本地用户模式,我们要做的是添加设置本地用户模式权限的参数:
[root@linuxprobe ~]# vim /etc/vsftpd/vsftpdconf
参数 作用
anonymous_enable=NO 禁止匿名访问模式。
local_enable=YES 允许本地用户模式。
write_enable=YES 设置可写入权限。
local_umask=022 本地用户模式创建文件的umask值。
userlist_deny=YES 参数值为YES即禁止名单中的用户,参数值为NO则代表仅允许名单中的用户。
userlist_enable=YES 允许“禁止登陆名单”,名单文件为ftpusers与user_list。
确认填写正确后保存并退出vsftpdconf文件,然后重启vsftpd服务程序并设置为开机自启动。
[root@linuxprobe ~]# systemctl restart vsftpd
[root@linuxprobe ~]# systemctl enable vsftpd
ln -s '/usr/lib/systemd/system/vsftpdservice' '/etc/systemd/system/multi-usertargetwants/vsftpdservice
因为在红帽RHCSA、RHCE或RHCA考试后都要重启您的实验机再执行判分脚本。
所以请读者在日常工作中也要记得将需要的服务加入到开机启动项中:”systemctl enable vsftpd“。
如果重启vsftpd服务程序时没有报错,此时便可以使用FTP客户机(1921681020)尝试登入FTP服务了~
我们先来看下ftpusers或user_list文件中禁止登陆用户名单:
root
bin
daemon
adm
lp
sync
shutdown
halt
news
uucp
operator
games
nobody
vsftpd服务为了让FTP服务更加的安全,默认禁止以root身份登入,那么创建个普通用户吧:
[root@linuxprobe ~]# useradd linuxprobe
为linuxprobe用户设置密码:
[root@linuxprobe ~]# passwd linuxprobe
Changing password for user linuxprobe
New password:
Retype new password:
passwd: all authentication tokens updated successfully
在客户端尝试登入FTP服务:
[root@linuxprobe ~]# ftp 1921681010
Connected to 1921681010 (1921681010)
220 (vsFTPd 302)
Name (1921681010:root): linuxprobe
331 Please specify the password
Password:输入用户的本地密码
230 Login successful
Remote system type is UNIX
Using binary mode to transfer files
ftp> mkdir files
550 Create directory operation failed
有了上面配置匿名访问模式的经验,这次再遇到了“操作被拒绝”,应该马上想到SELinux了吧。
查看所有与ftp相关的SELinux规则:
[root@linuxprobe ~]# getsebool -a | grep ftp
ftp_home_dir --> off
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
sftpd_write_ssh_home --> off
tftp_anon_write --> off
tftp_home_dir --> off
设置SELinux对FTP服务的规则为允许:
[root@linuxprobe ~]# setsebool -P ftpd_full_access=on
此时再来创建文件或目录就没有问题了:
[root@linuxprobe ~]# ftp 1921681010
Connected to 1921681010 (1921681010)
220 (vsFTPd 302)
Name (1921681010:root): linuxprobe
331 Please specify the password
Password:输入用户本地密码
230 Login successful
Remote system type is UNIX
Using binary mode to transfer files
ftp> mkdir files
257 "/home/linuxprobe/files" created
ftp> rename files database
350 Ready for RNTO
250 Rename successful
ftp> rmdir database
250 Remove directory operation successful
ftp> exit
221 Goodbye
1、如果只测试网络是否通,最简单直接有效的办法使用ping
比如:ping 1921681100 #测试1921681100是否可用
ping更多参数:
-d:使用Socket的SO_DEBUG功能;
-c<完成次数>:设置完成要求回应的次数;
-f:极限高速方式检测;
-i<间隔秒数>:指定收发信息的间隔时间,wait的秒数;
-I<网络界面>:使用指定的网络界面送出数据包;
-l<前置载入>:设置在送出要求信息之前,先行发出的数据包;
-n:只输出数值;
-p<范本样式>:设置填满packetsize 数据包的范本样式;
-q:不显示指令执行过程,开头和结尾的相关信息除外;
-r:忽略普通的Routing Table,直接将数据包送到远端主机上;
-R:记录路由过程;
-s<数据包大小>:设置packetsize 数据包的大小;
-t<存活数值>:设置存活数值TTL的大小;
-v:详细显示指令的执行过程。
2、如果希望测试服务器上的某个端口是否可用,就是用telnet
telnet 1921681100 80 #测试1921681100机器上80端口
除了SSH端口转发外,另一个办法就是SSH反向隧道。SSH反向隧道这个概念其实很简单。为此,你需要在限制性家用网络外面有另一个主机,即所谓的“中继主机”(relay host),你可以从所在地方通过SSH连接到该主机。你可以使用带公共IP地址的虚拟专用服务器(VPS)实例来建立中继主机。然后要做的就是建立一条持久性SSH隧道,从你家用网络的服务器通向公共中继主机。有了这条隧道,你就可以从中继主机“连回”到家用服务器(这就是为什么它叫“反向”隧道)。无论你人在什么地方,或者你家用网络中的NAT或防火墙限制多严格,只要你可以连接到中继主机,就可以连接到家用服务器。
在Linux上建立SSH反向隧道
不妨看看我们如何可以建立并使用一条SSH反向隧道。我们假设下列设置。我们将建立一条从家用服务器(homeserver)到中继服务器(relayserver)的SSH反向隧道,那样我们就可以从另一台名为clientcomputer的计算机,通过中继服务器以SSH的方式连接到家用服务器。中继服务器的公共IP地址是1111。
在家用服务器上,打开通向中继服务器的SSH连接,如下所示。
homeserver~$ ssh -fN -R 10022:localhost:22 relayserver_user@1111
这里的端口10022是你可以选择的任何随意的端口号。只要确保该端口没有被中继服务器上的其他程序所使用就行。
“-R 10022:localhost:22”选项定义了反向隧道。它通过中继服务器的端口1022,将流量转发到家用服务器的端口22。
若使用“-fN”选项,一旦你成功验证了身份、登录到SSH服务器,SSH就会径直进入后台。如果你不想在远程SSH服务器上执行任何命令,只想转发端口,就像在本文的示例中,这个选项很有用。
运行上述命令后,你将直接回到家用服务器的命令提示符。
登录进入到中继服务器,核实127001:10022绑定到sshd。如果是这样,那意味着反向隧道已正确建立起来。
relayserver~$ sudo netstat -nap | grep 10022
tcp 0 0 127001:10022 0000: LISTEN 8493/sshd
现在可以从其他任何计算机(比如clientcomputer),登录进入到中继服务器。然后访问家用服务器,如下所示。
relayserver~$ ssh -p 10022 homeserver_user@localhost
需要注意的一个地方就是,你为localhost输入的SSH登录信息/密码应该适用于家用服务器,而不是适用于中继服务器,因为你是通过隧道的本地端点登录进入到家用服务器。所以别为中继服务器输入登录信息/密码。成功登录后,你就接入到了家用服务器。
通过SSH反向隧道,直接连接到NAT后面的服务器
虽然上述方法让你可以连接到NAT后面的家用服务器,但是你需要登录两次,先登录到中继服务器,然后登录到家用服务器。这是由于中继服务器上SSH隧道的端点绑定到回送地址(127001)。
但实际上,只要单次登录到中继服务器,就可以直接连接到NAT后面的家用服务器。为此,你需要让中继服务器上的sshd不仅可以从回送地址转发端口,还可以从外部主机转发端口。这可以通过在中继服务器上运行的sshd里面指定GatewayPorts选项来实现。
打开中继服务器的/etc/ssh/sshd_conf,添加下面这一行。
relayserver~$ vi /etc/ssh/sshd_conf
GatewayPorts clientspecified
重启sshd。
基于Debian的系统:
relayserver~$ sudo /etc/initd/ssh restart
基于红帽的系统:
relayserver~$ sudo systemctl restart sshd
现在不妨从家用服务器开始建立SSH反向隧道,如下所示。
homeserver~$ ssh -fN -R 1111:10022:localhost:22 relayserver_user@1111
登录进入到中继服务器,用netstat命令核实SSH反向隧道已成功建立起来。
relayserver~$ sudo netstat -nap | grep 10022
tcp 0 0 1111:10022 0000: LISTEN 1538/sshd: dev
不像之前的情况,隧道的端点现在是1111:10022(中继服务器的公共IP地址),而不是127001:10022。这意味着,可以从外部主机连接到隧道端点。
现在可以从其他任何计算机(比如clientcomputer),输入下列命令,访问NAT后面的家用服务器。
clientcomputer~$ ssh -p 10022 homeserver_user@1111
在上述命令中,虽然1111是中继服务器的公共IP地址,但homeserver_user必须是与家用服务器关联的用户帐户。这是由于,你实际登录进入的主机是家用服务器,而不是中继服务器。后者只是将你的SSH流量中继转发到家用服务器而已。
在Linux上建立持久性SSH反向隧道
想必你已明白了如何建立一条SSH反向隧道,现在不妨让隧道具有“持久性”,那样隧道随时建立并运行起来(无论面对什么样的情况:暂时网络拥塞、SSH超时还是中继主机重启等)。毕竟,要是隧道没有始终建立起来,你也就无法可靠地连接到家用服务器。
为了建立持久性隧道,我要使用一款名为autossh的工具。顾名思义,万一SSH会话由于任何原因而断开,这个程序让你可以自动重启SSH会话。所以,让SSH反向隧道保持持久连接很有用。
第一步,不妨建立无需密码的SSH登录机制,从家用服务器登录到中继服务器。那样一来,autossh就能重启断开的SSH反向隧道,不需要用户干预。
下一步,将autossh安装到发起隧道的家用服务器上。
从家用服务器运行带下列变量的autossh,从而建立一条通向中继服务器的持久性SSH隧道。
homeserver~$ autossh -M 10900 -fN -o "PubkeyAuthentication=yes" -o "StrictHostKeyChecking=false" -o "PasswordAuthentication=no" -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 1111:10022:localhost:22 relayserver_user@1111
“-M 10900”选项指定了中继服务器上的一个监控端口,将用来交换测试数据,以监控SSH会话。该端口不应该被中继服务器上的任何程序所使用。
“-fN”选项传递给ssh命令,让SSH隧道可以在后台运行。
“-o XXXX”选项指令ssh执行下列操作:
•使用密钥验证,而不是密码验证。
•自动接受(未知的)SSH主机密钥。
•每60秒就交换持久连接(keep-alive)消息。
•最多发送3个持久连接消息,而不接受任何响应。
与SSH反向隧道有关的其余选项仍与之前一样。
如果你希望SSH隧道一启动就自动建立起来,可以在/etc/rclocal中添加上述的autossh命令。
1实现此的技术原理:
在内网通过域名绑定服务器,外网SSH访问连接时,通过域名的访问,实现访问内网LINUX。
2
具体的实现过程如下:
明确LINUX服务器内网访问地址端口,确保LINUX服务器正常开启SSH服务,在内网SSH可以正常访问连接。如图所示:
3
被访问端的Linux主机上使用nat123动态域名解析Linux版本。
在被访问端的Linux服务器安装nat123客户端,并登录使用它。
4
登录网页,左侧用户中心,添加域名解析,选择动态域名解析并添加确认。
选择动态域名解析记录,使用二级域名,或自己的域名。鼠标放在输入框有向导提示。如不理解负载均衡,不要勾选多点登录。
5
新添加动态解析后,等待几分钟生效。解析生效后,动态解析域名与本地公网IP是保持对应的。可以通过ping下域名核实,返回结果IP地址为本地公网IP地址时,表示动态解析生效正常。
6
路由器端口映射,路由映射SSH访问22端口。
因
为公网IP是在路由器上的,外网访问时,需要经过路由,需要在路由器上做端口映射,将内网LINUX服务器访问22端口打通。路由器端口映射位置:转发规
则/虚拟服务器/添加允许外网访问端口和协议。我的LINUX服务器SSH服务端口是默认的22,我内网对应LINUX服务器主机的内网IP地址是
192168129。
7
外网访问时,使用动态解析域名。
在外网使用SSH访问内网LINUX服务器时,使用动态解析域名进行连接访问。域名是不变的,可以上网即可访问,再也不担心动态公网IP变化的问题。
1以root用户登陆linux
2点击 主菜单—系统设置—网络
打开网络配置窗口,设备下有一块网卡,如果你是第一次设置他,他应该
处于不活跃状态,选择这快网卡单击编辑,选择手工设置ip地址,以我的为例:
地址1010101 子网掩码255000 设置完毕,确定退出。
激活这快网卡,保存退出。
3点击 主菜单—系统设置—服务器设置—服务
打开服务配置窗口,查看有没有一个vsftpd的服务,如果有把他选上,单
击开始,看看状态该服务是不是已经启动 vsftpd (pid 1715)is running… 保
存退出。
如果没有vsftpd的服务,到 主菜单—系统设置—添加/删除应用程序
打开软件包管理窗口,安装 服务器下的FTP服务器
4本地测试
点击 主菜单—互联网—更多互联网应用程序—gFTP
0条评论