配置 FTP 服务器以支持 IPv6
下一代协议,Internet Protocol version 6 (IPv6),被广泛认为是 Internet 和网络世界的未来。这种认同已鼓励各个 IT 公司开发支持并使用 IPv6 地址格式进行相互通信的应用程序。在本文中,学习配置 File Transfer Protocol (FTP) 服务器以支持 IPv6,然后通过一个简单的使用 IPv6 地址的 Java 程序来与 FTP 服务器通信。
IPv6,又称下一代协议,是现有 IPv4 网络基础的超集。IPv6 与 IPv4 相兼容和协作,允许您升级您的 Internet 设备。有关 IPv6 的更多信息,请参考我的前一篇文章 “Discover Internet Protocol version 6 (IPv6)”,在 参考资料 部分可以找到这篇文章。
在本文中,我将向您演示如何在两种 FTP 服务器上配置 IPv6:Orenosv 1.0(与 Microsoft® Windows® 兼容)和 vsftpd 2.0.1-5(与 Linux® 兼容)。您将使用 IBM® Java™ Runtime Environment (JRE) 1.5.0 来编写和执行示例 Java 应用程序。
配置 Windows FTP 服务器 Orenosv 以支持 IPv6
您可以从 Orenosv 站点(参阅 参考资料)下载 Orenosv FTP 服务器。让我们来看看如何配置服务器来监听和接受 IPv6 地址。
首先,下载和安装服务器,默认安装在 $Drive/Program Files/Orenosv 中。创建用户帐户和其默认目录。转到安装位置,打开 passwd.txt,然后添加下面这一行:
ipv6:ipv6:/ftpusers/ipv6
在这一行中,ipv6 代表用户,ipv6 代表密码,而 ftpusers/ipv6 表示用户目录位置。图 1 显示了最终 passwd.txt 文件的样子。
图 1. 最终 passwd.txt 文件表示
接着,在 $Install_Location/ftproot 中创建用户目录位置 ftpusers/ipv6。最终目录结构类似于:
$Install_Location\ftproot\ftpusers\ipv6
为您创建的 ipv6 用户提供访问控制。转到 $Install_Location,打开 acl.txt,然后添加下面这一行:
ftpuser/ipv6/* ALL="_all_" all="@admin"
最终 acl.txt 文件类似于 图 2。
图 2. 最终 acl.txt 文件表示
接着,将 ipv6 用户添加到 admin 组。转到 $Install_Location,打开 grpdb.txt,然后将用户添加到 admin 组,类似于:
admin:admin1,admin2,ipv6
图 3 显示最终 grpdb.txt 文件的样子。
图 3. 最终 grpdb.txt 文件表示
要使 FTP 服务器接受 IPv6 请求,转到 $Install_Location,然后打开 http.conf。取消注释 http.conf 文件中的这些行:
|
注释掉 http.conf 文件中的所有 Secure Sockets Layer (SSL) 条目,然后添加下面这一行以支持 IPv6:
ftp_listen=IPv6Address@21
IPv6Address 表示机器 IPv6 地址。这里是一个具有真实 IP 地址的示例:
ftp_listen = 2002:9b8:708a:0:0:0:0:1@21
要重新启动服务器,导航到 Start > Programs > Orenosv,并单击 Restart Orenosv Service。检查 FTP 服务器正在运行并可以监听 IPv6 请求。为此,打开命令行提示符并使用 IPv6 地址连接 FTP 服务器。如果登录成功,服务器看上去将与 图 4 类似。
图 4. 成功登录 FTP 服务器
如果登录失败,请检查配置并再试一次。
|
配置 Linux FTP 服务器 vsftpd 以支持 IPv6
vsftpd 服务器默认附带有 Red Hat Enterprise Linux (RHEL)。让我们配置服务器来监听和接受 IPv6 地址。
首先,以 root 用户登录然后打开 vsftpd.conf,该文件通常位于 /etc/vsftpd 目录中。注释掉 vsftpd.conf 文件中的下面这一行:
listen=yes
将这一行添加到 vsftpd.conf 中以支持 IPv6:
listen_ipv6=yes
要重新启动 vsftpd 服务器,使用 service vsftpd restart 命令。如果重新启动失败,请检查 vsftpd.conf 条目。
|
编写示例 FTP 客户机程序
让我们编写一个简单的 Java FTP 客户机程序来实现下列功能:
- 使用 IPv6 数字地址连接 FTP 服务器
- 在与服务器建立连接之后显示用户登录目录下的文件
- 提示用户输入要下载的文件名
- 从 FTP 服务器下载各自的文件之后退出
您可以下载 zip 文件(参阅 下载),其中包含有用来运行程序的所有相关文件的完整代码;在 运行 Java 应用程序 一节参看更多有关说明。清单 1 解释程序的核心逻辑。
清单 1. 从支持 IPv6 的 FTP 服务器获取文件的示例 Java 程序
|
|
运行 Java 应用程序
应用程序打包在一个压缩文件中。解压缩文件并下载到 SampleAppl 目录。lib 目录包含 Java Archive (JAR) 格式的应用程序,还有完整的 Java 源代码。来自 FTP 服务器的所有文件都下载到 download 目录。Run.bat 和 Run.sh 文件是特定于操作系统的脚本文件,用于运行应用程序。要运行应用程序,打开 Run.bat(对于 Windows)或 Run.sh(对于 Linux),并编辑这些登录细节的值:
|
例如,您的登录细节可能类似于:
|
打开命令行提示符,导航到脚本文件解压缩的目录,并执行 Run.bat 或 Run.sh,如 图 5 所示。
图 5. 应用程序输出信息
在成功登录之后,应用程序列出文件并提示用户输入要下载的文件。本例使用 Welcome.txt。应用程序加载 Welcome.txt,将其放置在 download 目录,然后退出。
恭喜!您已成功配置 FTP 服务器以支持 IPv6,并使用 Java 应用程序从 FTP 服务器接收了文件。
|
结束语
您只学习了如何配置和编写 Java 程序来与启用 IPv6 的 FTP 服务器通信。您可以运用这些概念来编写可以与其他启用 IPv6 的服务器(如 Simple Mail Transfer Protocol (SMTP) 和 Post Office Protocol version 3 (POP3))通信的 Java 应用程序。
|
下载
| 描述 | 名字 | 大小 | 下载方法 |
|---|---|---|---|
| Sample code for this article | wa-ftpipv6-SampleAppl.zip | 6KB | HTTP |
- · Linux 引导过程内幕
- · AIX 5L Version 5.3 中的存储管理
- · AIX 5L Version 5.3:为您提…
- · 使用 GTK+ 绑定进行快速应用…
- · XML 问题: 管道流微格式
- · nmon 性能:分析 AIX 和 Li…
- · nmon analyser——生成 AIX…
- · nmon analyser——生成 AIX…
- · DB2 9 入门: 应用程序开发方面的增强
- · DB2 数据仓库 OLAP 服务,第 1 部分: OLAP 服务入门
- · 利用 MySQL 技能学习 DB2 Express: DB2 与 MySQL 的备份和恢复
- · 使用 WebSphere Information Integrator OmniFind Edition 搜索 WebSphere Portal Do…
- · POWER5+ 和 AIX 5L 多页面支持下的 IBM DB2 Enterprise 9 性能
- · IBM Database Add-Ins for …
- · DB2 远程 Q 复制实践
- · IBM Workplace 应用程序开发中的日志管理与分析
- · IBM Workplace Collaborative Learning 部署最佳实践
- · 充分发掘 IBM Workplace 中的搜索功能
- · 使用 IBM Workplace Designer 跟踪文档更改历史记录
- · 用自定义 Java 代码扩展 IBM Workplace Designer 的功能
- · 在 IBM Workplace Collaboration Services 服务器上配置和部署富客户机应用程序
- · 如何创建 IBM Workplace Do…
- · 网格观点: 网格计算 —— 下一代分布式计算
- · 网格观点: 虚拟化是 SOA 环境的基础
- · 比较传统网格与高性能计算
- · 虚拟化概述:模式的观点
- · 从 TeraGrid 中学习到的经验,第 3 部分: 汇总
- · 从 TeraGrid 中学习到的经验,第 1 部分: 管理大型地理分布的网格
- · 从 TeraGrid 中学习到的经验,第 2 部分: 管理大型网格上的大数据集
- · DB2 9 入门: 应用程序开发方面的增强
- · OSGi 中的 Declarative Services 规范简介
- · 使用 Git 管理源代码
- · 进入 Harmony 世界: 研究 Port Layer
- · 利用 OSGi 解决 Eclipse 插…
- · 你好,Shale: 剖析 Shale 应…
- · Eclipse for Linux on POWE…
- · 使用 EMMA 测量测试覆盖率
- · 使用 Drools 规则引擎实现业…
