如何在Windows Server 2012 R2上安装TFTP Server
所有Windows Server版本都支持运行内置的" TFTP服务器"的功能。尽管没有TFTP服务器的专用角色或者服务(不要在IIS服务器的FTP部分中找到它),但是与Windows Server 2003中一样,此功能是Windows部署服务(WDS)的一部分。 TFTP服务在WDS进程svchost.exe中运行。
" TFTP(临时文件传输协议)"是一种简化的文件传输协议,提供了一种下载和上传文件的简便方法。通常,TFTP用于PXE引导系统(网络引导,无盘工作站等),导入/导出网络设备配置以及其他一些特定任务。该协议没有安全性,身份验证或者管理手段。它的主要优点是易于客户端实现和传输大文件时的高性能。该协议使用" UDP"端口" 69"。
注意Microsoft TFTP服务器功能严重受损,但足以使用PXE引导。特别是,客户端只能从这样的TFTP服务器读取数据,但不能写入。
要在Windows Server 2012 R2上安装TFTP服务,请启动"服务器管理器",然后使用"添加角色和功能Wiazrd"选择" Windows部署服务"角色。
在下一步中,仅在WDS角色组件中选择"传输服务器",然后取消选中"部署服务器"。
角色安装后,创建一个目录,该目录将成为TFTP服务器的根目录,例如," C:\tftp"。
然后使用" HKLM\SYSTEM\CurrentControlSet\services\WDSServer\Providers\WDSTFTP"中的注册表编辑器创建一个新的字符串参数,名称为" RootFolder",其值包含先前创建的根目录的路径。
注意ReadFilter``parameter
的值。默认情况下,它仅允许从\ boot
和\ tmp
目录下载文件。如果需要机会从根目录或者其他文件夹下载文件,请将" ReadFilter"值更改为" \*"。
使用以下命令启动WDS:
WDSUTIL /Start-TransportServer
提示。若要自动启动服务,请使用services.msc或者命令提示符将Windows部署服务的启动类型更改为"自动"。
set-service WDSServer -StartupType Automatic
在Windows防火墙中,将出现一个规则,该规则允许进入UDP端口69的传入流量(该服务从高于1023的任何端口进行响应)。某些防病毒软件可以阻止端口69(McAffee Enterprise可以这样做)。
因此,我们已经配置了TFTP服务器。
要测试TFTP服务器,我们将需要TFTP客户端。可以使用服务器管理器安装,其中选择" TFTP客户端"。
让我们尝试在本地连接到已部署的TFTP服务器并下载test.zip文件。
我们可以使用以下命令下载文件:
tftp –i localhost GET tmp\test.zip C:\temp\test.zip
从理论上讲应该如此,但实际上在运行最后一条命令后出现以下错误:
连接请求失败
启动或者重新启动Windows Deployment Services服务器时,来自WDSTFTP服务和EventID 259
的以下事件出现在应用程序日志中:
未配置Windows部署TFTP服务器的根文件夹。错误信息:0x2
为了使TFTP服务器正常工作,我必须安装角色" WDS->部署服务"的组件并立即将其删除。安装完成后,我将RootFolder值从C:\RemoteInstall更改为c:\tftp。然后,我尝试再次下载该文件。
PS C:\temp> tftp -i localhost get boot\test.zip
我们已经考虑了如何在没有第三方工具的情况下轻松地在Windows Server 2012中部署TFTP服务器。这种服务器的功能将受到损害,因此在更复杂的安装中,首选的TFTP服务器实现是可取的。例如tftpd32.