windows7怎么访问sftp服务器
Windows7系统连接FTP服务器方法:
1、打开->计算机 在工具栏中选择 ->映射网络驱动器。
2、经过上一步弹出映射网络驱动器。在弹出的窗口中选择“连接到可用于存储文档和的网站”;选择完成出现下一个窗口直接下一步。
3、选择自定义网络位置,选择后点击下一步,弹出一个新窗口,这里面需要输入ftp服务器的ip地址,输入完成后下一步。
4、上一步通过后会弹出一个新窗口,没有设置的内容请直接下一步,之后又弹出一个新窗口,这个窗口是配置完成之后你登录ftp图表的名字,请随意填写即可。
5、FTP登录客户端位置,经过以上4步的配置FTP连接方式已经成功完成,而且通这种方法配置是会永久可用的,不需去手动填写FTP的ip地址,登录ftp服务非常容易,打开win7 系统的计算机,在硬盘和光驱下面就会出现fpt登录的图表。
6、配完可能会出现登录ftp在网页下显示,这样是不对的,需要修改为资源管理器显示,这样操作才方便,具体步骤打开IE浏览器-->工具-->internet选项,修改显示方式。
使用这个功能之前, 你首先需要设置ODBC数据源
1 MySQL ODBC数据源可以在网址http://wwwmysqlcom/downloads/api-myodbchtml下载在运行Xlight FTP服务器的机器上安装MySQL ODBC数据源
2 安装完mysql ODBC数据源后你需要到Windows"控制面板-管理工具"中在"系统DSN"标签内添加MySQL数据源
3 选择"系统DSN"内的"添加(D)"按键,选择"MySQL ODBC Driver",按"完成"按键
4 在这个例子里, 我们使用 "Xlight FTP Server" 作为数据源名字 你可以使用任何数据源名字 这里假定MySQL数据库在远端192168112的LINUX服务器上 我们现要在其中创建一个名字是"ftp_user_db"的空数据库 这里你可以使用任何数据库名字 在机器192168112上, 在MySQL命令提示符 mysql>, 键入命令"create database ftpd_user_db;" 创建一个名字是 "ftpd_user_db" 的数据库 如果你需要在数据库中使用中文字符集,在"MySQL ODBC Driver"的[细节]-[连接]-[字符集]中编码要设为GB2312
5 你需要在Xlight FTP服务器的 [全局选项]->[高级]->[ODBC 数据库设置] 中配置外部数据库" 你需要填入数据库用户和密码,以及ODBC数据源 如果你想手工创建数据库表, 你可以跳到步骤 7 在这个例子里,我们假定数据库用户"test"对数据库"ftpd_user_db"有完全的访问权限 你可以点击"创建"键,让Xlight FTP服务器替你在数据库里创建需要的数据库你也可以点击"测试"键,检查你是否已正确创建数据表
注意: 对于64bit系统, 你需要用32bit ODBC管理程序设置DNS 32bit ODBC管理程序在C:\Windows\sysWOW64\odbcad32exe 具体原因可以查看 http://supportmicrosoftcom/kb/942976
6 通过ODBC使用外部用户数据库认证, 你需要到 [虚拟服务器设置]->[通用]->[虚拟服务器], 选择选项"启用外部用户鉴权" 单击"设置"键, 在虚拟服务器的"鉴权类型" 中必须选择ODBC, 如下图所示:
7 这个步骤只是用于手工创建数据库表 如果你已经在第5步完成数据库表的创建,你可以忽略这个步骤 手工创建数据库表,在数据库中需要两个表: acct_table and acct_param_table 你可以在Xlight FTP服务器的安装目录中的odbc目录下找到文件 "odbc_tablessql" 你可以用这个文件手工创建数据库表
8 为了安全的数据库访问, 创建上面两个表之后, 你可以在数据库中创建一个只读用户,他对"ftp_user_db"的数据库只有SELECT的权限,如下所示:
在MySQL命令提示符 mysql>, 键入命令 grant select on ftpd_user_db anon@'19216811%' Identified by "ftpd"; 这里你创建了一个新的数据库用户"anon",他的密码是"ftpd",他对数据库"ftpd_user_db"只有SELECT的访问权限 这个命令也限制用来查询数据库的访问只能来自网段"192168110" 然后你可以将Xlight FTP服务器的外部ODBC数据库配置中的用户和密码改成这个只读用户
现在你完成了ODBC设置步骤 ODBC功能是在每个虚拟服务器中单独启用的 在同一个Xlight FTP服务器,你可以有一些虚拟服务器使用ODBC外部用户数据库, 而一些不使用 如果你选择选项 "忽略 host_id 列" 或 "忽略 host_port 列", 在数据库查询时, Xlight FTP服务器将会忽略 "host_id" 或 "host_port" 列 因为 "host_id" 列可以用来表示不同的机器, 而 "host_port" 列可以用来表示在同一台机器上的不同的虚拟服务器 这两个选项可以用来在不同运行Xlight FTP服务器的机器间共享用户数据库,也可以在同一个机器的不同虚拟服务器间共享用户数据库 如果你只用数据库鉴权用户, 你可以选择选项 "只检查用户名和密码", 使用这个选项你需要在本地FTP服务器创建同名的用户 数据库只是用来检查用户存在数据库中的密码 当这个选项启用, 所有的用户设置都是从本地服务器中同名的用户设置里获得
在数据库中创建用户
你可以使用外部的数据库工具连接到数据库并创建用户 这只是用于测试目的
在实际的生产环境里, 你可以使用 PHP 或 其他 CGI 脚本创建基于网页的界面,用于添加,删除或允许用户通过网页更改密码等等这种方式便于管理大量的用户你也可以和你现有的数据库应用结合 因为Xlight FTP服务器只需要读取用户数据库, 但不写入用户数据库, 你不需要担心和你其他数据库应用冲突
在数据库创建用户之前, 你最好先阅读 Xlight 帮助文档中, "ODBC 数据库表结构" 这一节
用户的密码可以是以 MD5/SHA1 Hash或明码的形式存放在数据库 默认是使用MD5 hash 你可以在虚拟服务器的外部用户认证,ODBC设置中更改密码类型 如果使用 MD5 hash, 你可以通过搜索"MD5 calculator" 很容易在Google找到MD5计算的工具 在我们的例子里用户名是 "test" 他的密码也是 "test" , 密码的MD5 hash值是"098f6bcd4621d373cade4e832627b4f6" 如下图所示:
注意: 如果用户的主目录不存在, 当他第一次登录时, Xlight FTP服务器会自动在本地创建目录 例如, 当用户名是"test" 的主目录"c:\wutemp"不存在 当这个名字是"test"的用户登录时, Xlight FTP服务器会自动为他创建这个目录
如果你想使用更多的用户参数, 你可以在数据表 "acct_param_table" 中创建 "param_index" 列 在这一行中填入你想使用的参数, 并且将这个参数放到这个用户在"acct_table"表中的"param_index"列 列"param_index"的值可以在不同用户间共享, 因此如果你有很多用户有同样的参数, 在数据表 "acct_param_table" 中你不需要创建很多不同的"param_index"行
对于你不使用的数据库表中的那些列, 你可以让它们的值为空 但列 "host_id", "host_port", "username" 是必须的值, 你必须填写 另外如果使用"home_path"列,"home_perm"列也必须填写
"virtual_path_table" 被用来设置用户的虚拟目录 一个用户在数据库中可以有多个虚拟目录 这些虚拟目录在"virtual_path_table"表中有不同或相同的"virtual_path_index" 在"acct_table"中的"virtual_path_indexes"列通过"virtual_path_index"列链接到"virtual_path_table"的一个或多个行 如果他包含多个"virtual_path_index", 它们之间必须通过","(逗号)分隔
参数%username%可以用于"virtual_path_table"里的real path %username%将会被替换成实际登录的用户名 如果用户登录时real path不存在, Xlight FTP服务器将会自动创建目录
查找并解决数据库认证问题
通过选中选项"在错误日志显示调试跟踪信息",可以帮助你查找并解决数据库认证的问题,这个选项可以在[虚拟服务器设置]->[启用外部用户鉴权]找到 启用这个选项后, 你可以在错误日志看到Xlight FTP服务器数据库查询过程
使用其他数据库
当用户登录Xlight服务器时,服务器会通过ODBC连接,用SQL语句分两次查询数据库。
第一个数据库的SQL查询用于在数据库中找到与用户登录时输入的用户名,密码相匹配的纪录,并且获得关于这个用户的一些基本配置参数,如"home_path", "home_perm" 等等 在这次查询中返回的"param_index"值将会同时用在第二次数据库查询。
第二次数据库的SQL查询将会用第一次查询返回的"param_index"值,查询数据库的"acct_param_table",以得到更多的用户参 数设置。
Xlight服务器使用的"acct_table"和"acct_param_table"数据库表可以不实际存在与数据库里 Xlight服务器并不知道"acct_table"和"acct_param_table"是否存在于数据库中 它只是通过察看两个SQL查询的返回结果 如果第一条SQL查询替换语句从数据库中返回一行, Xlight服务器就认为用户登录验证成功,同时它会从返回的行中,获得用户的基本配置参数 如果数据库没有返回结果,它认为用户登录验证失败。 所以数据库如果不想让用户访问服务器,就不要返回SQL查询结果 在第一条查询返回的"param_index"值,将会用在第二条SQL查询语句中
Xlight服务器允许管理员替换上面两个SQL查询语句,以支持高级的数据库应用,如数据库的"存储过程"(Stored Procedure), 你可以看这个例子如何使用数据库存储过程
替换第一条内部SQL查询语句 - 在第一条SQL替换语句中,可以使用下面的变量:
$USER - 这个变量将以用户的登录名替换
$PASS - 这个变量将以用户的密码(MD5或Text)替换
$ID - 这个变量将以"本地主机ID"替换
$PORT - 这个变量将以虚拟服务器的端口替换
$USERIP - 这个变量将以用户的IP地址替换
$SERVERIP - 这个变量将以虚拟服务器的IP地址替换
例如, 如果用语句 "EXEC proc_getuser '$USER', '$PASS', $ID, $PORT" 作为第一条SQL语句的替换, 当用户是"test"的用户以密码"hello"登录到FTP服务器21端口, 本地主机ID是1, 经过替换最后送到数据库的SQL语句是 "EXEC proc_getuser 'test', 'hello', 21, 0"
替换第二条内部SQL查询语句 - 在第二条SQL替换语句中,可以使用下面的变量:
$INDEX - 这个变量将会替换为第一条SQL替换查询语句返回的"param_index"值
$PORT - 这个变量将以虚拟服务器的端口替换
$SERVERIP - 这个变量将以虚拟服务器的IP地址替换
0条评论