TFTP Server 的設定
TFTP 是 TCPIP Protocol 中 的 一 員, 和 FTP 一 樣 是 傳 輸 檔 案 用, 但 是 FTP
是 使 用 TCP, 但 是 TFTP 是 使 用 UDP 來 傳 輸, 使 用 UDP 是 不 作 傳 輸 資 料
正 確 性 的 驗 證, 所 以 實 際 的 檔 案 傳 輸 是 不 會 使 用 到 TFTP, 然 而 若 您 是 經
常 使 用 網 路 設 備 如 Terminal Server 、 Rounter 或 是 SNMP Hub 的 話, 那 您
便 可 能 需 要 使 用 TFTP 來 Upgrade 網 路 設 備 的 Firmware 或 Software, 更 可 以 寫
Macro 或 Script 於 TFTP Server 中, 網 路 設 備 會 需 要 使 用 Macro 或 是
Script 時 由 TFTP Server 中 讀 取 來 執 行, 甚 至 可 將 網 路 設 備 的 開 機 程 式
COPY 至 TFTP Server 中, 網 路 設 備 開 機 時 會 由 TFTP Server 讀 取 開 機 程
式 來 開 機, 所 以 說 起 來 其 功 能 還 不 少, 在 這 篇 文 章 中 會 介 紹 Sun
及 Linux 上 TFTP Server 的 啟 動 及 用 法, 另 外 還 會 介 紹 使 用 NOVELL Netware
來 架 設 TFTP Server 的 方 法
SUN Workstation 的 TFTP Server
在 UNIX 環 境 中 TFTP Server 的 啟 動 是 在 INETD 中, 同 時 需 要 在
/etc/services 中 要 有 TFTP
Port Number 的 設 定, TFTP Server 的 功 能 一 般 在 UNIX OS 安 裝 起 來 後
是 不 啟 動 的 , 因 為 TFTP
Server 不 驗 證 User 的 User Name 及 Password, 所 以 容 易 造 成 安 全
上 的 漏 洞 , 所 以 在 使 用 時 要 特 別 注 意 , 啟 動 的 步 驟 如 下
- /etc/services 檔 案
在 /etc/Services 檔 案 中 必 須 要 有 以 下 的 設 定
tftp 69/udp
這 是 設 定 TFTP 使 用 UDP 的 Port 69, 若 是 這 行 不 存 在 則 需 自 行
加 入
- /etc/inetd.conf 檔 案
在 /etc/inetd 必 須 有 下 列 一 行 設 定
tftp dgram udp wait root /usr/etc/in.tftpd in.tftpd -s /tftpboot
通 常 這 行 是 存 在, 但 是 有 "#" 將 其 Marked 不 執 行, 只 要 將 "#" 拿
掉 即 可,
若 不 存 在 則 仍 需 自 行 加 入 , 這 行 設 定 最 後 有 "-s /tftpboot" 這
是 指 使 用 TFTP 時
的 ROOT, 也 就 是 說 使 用 TFTP Client 連 線 後 只 能 看 到 及 使 用
/tftpboot 目 錄
中 的 檔 案, 這 是 保 密 上 的 考 量, 所 以 您 使 用 TFTP 時 所 有 檔 案 都
要 放 在 這 個 目 錄 中,
而 且 在 Client 中 get 或 put 時 不 需 輸 入 如 "get /tftpboot/aa.txt",
只 需 輸
入 "get /aa.txt" 即 可, 因 為 這 時 的 TFTP Client 的 "/" 實 際 是 指 TFTP Server 端 的
"/tftpboot" 目
錄
- 重 新 啟 動 INETD
INETD 是 一 個 DAEMON, 處 理 TCPIP 的 各 項 工 作, 使 用 "ps -ef" 來 查
看 INETD 的
Process ID 是 多 少 , 若 是 579, 則 使 用 以 下 指 令 來 重 新 起 動 INETD
# kill -HUP 579
- 建 立 /tftpboot 目 錄 及 設 定 權 限
以 上 設 定 完 成 後 還 要 建 立 /tftpboot 的 目 錄
# mkdir /tftpboot
若 /tftpboot 有 檔 案 時 要 將 /tftpboot 目 錄 內 的 檔 案 的 權 限 設
成 "rw-rw-rw-"
# cd /tftpboot
# chmod 666 *
到 此 TFTP Server 的 設 定 便 已 完 成, 可 使 用 SUN OS 中 所 附 的
TFTP Client 來 測 試
$ tftp 203.67.10.100
tftp> get aa.txt
Received 2978 bytes in 0.1 seconds
tftp>
若 是 傳 輸 Binary 檔 案, 需 執 行 下 列 指 令
$ tftp 203.67.10.100
tftp> bi
tftp> get aa.exe
Received 2978 bytes in 0.1 seconds
tftp>
若 是 使 用 "put" 指 令 上 傳 檔 案, 必 須 在 /tftpboot 目 錄 有 此 檔
名 存 在, 所 以 必 須
在 上 傳 前 在 TFTP Server 上 執 行
TFTP Server 端
# cd /tftpboot
# touch bb.txt
# chmod 666 bb.txt
TFTP Client 端
# tftp 203.67.10.100
tftp> put bb.txt
Send 2978 bytes in 0.1 seconds
tftp>
Linux 的 TFTP Server 設定
Linux 的 TFTP Server 的 設 定 和 SUN Workstation 類 似 , 其 步 驟 相 同 ,
只 是 使 用 時 不 太 一 樣 , 整 個 設 定 不 同 的 是
- 在 /etc/inetd.conf 中 設 定 的 TFTP 指 令 如 下
tftp dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
- 看 所 執 行 的 INETD 的 Process ID 在 SUN Workstation 上 是 使 用 "ps -ef"
但 在 LINUX 中 要 使 用 "ps -x"
- 在 Client 的 使 用 上 必 須 使 用 完 整 的 目 錄
$ tftp 203.67.10.100
tftp> get /tftpboot/aa.txt
Received 2978 bytes in 0.1 seconds
tftp>
Netware 的 TFTP Server 設定
Netware 的 TFTP Server 的 設 定 首 先 必 須 先 對 網 路 卡 設 定 IP Address,
設 定 的 方 式 是 在 autoexec.ncf 中 加 入 下 列 幾 行
:load tcpip forward=yes
:load ne2000 int=3 port=300 frame=ethernet_ii name=tcpip_1
:bind ip to tcpip_1 addr=203.67.10.1 mask=255.255.255.0
之 後 須 Download TFTP Server for Netware 的 程 式 , 您 可 在 下 列 地 方 直
接 Download, 這 個 程 式 是 Freeware
service.wicl.com.tw --- tftp.zip --- 6K
novell.felk.cvut.cz --- tftp.zip --- 6K
math.amu.edu.pl --- tftp.zip --- 6K
把 這 個 ZIP 檔 案 解 縮 後 有 兩 個 檔 案 "tftpd.nlm" 及 "tftpd.txt", 只 要
將 "tftpd.nlm" COPY 至 SYS:system 的 目 錄 下 , 便 可 在 SYSTEM Console 下
執 行
:load tftpd -r sys:tftpboot
"-r" 表 示 Read Only, 若 須 Read/Write 則 可 不 用 使 用 , "SYS:tftpboot" 是 指
要 當 TFTP Server Root 的 目 錄 , 若 不 加 "SYS:tftpboot" 則 預 設 的 目 錄 是
"SYS:tftpd", 當 然 事 後 要 去 建 立 "sys:tftpboot" 的 目 錄 , 執 行 這 行 指
令 後 您 的 Netware Server 便
是 TFTP Server 了 , 而 Client 端 的 用 法 和 SUN Workstation 的 TFTP Server
的 用 法 一 樣 , get 或 put 檔 案 時 不 須 加 上 /tftpboot 的 目 錄
$ tftp 203.67.10.1
tftp>get /aa.txt
Received 2879 bytes in 0.1 Second
tftp>
Lastest Updated : 1996 年 01 月 26 日
若有話告訴我, 請留下您的悄悄話, 同時歡迎
到 葉建良的家坐坐