
我有一個在 Windows 7 pro 電腦上的 VMWare Workstation 11.1 下運行的 Ubuntu 映像。此 VM 映像的部分作用是透過 TFTP 將某些檔案提供給網路上的許多主機。
ubuntu 機器上的 tftp 伺服器由 xinetd 控制,配置如下:
service tftp {
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /mnt/tftp_files
disable = no
per_source = 11
cps = 100 2
}
我已經進入 Windows 防火牆(由於群組原則,我無法停用它)並新增了 UDP/69 接受規則。
但是我似乎仍然無法從網路上的另一台主機存取 tftpd。我在安全事件日誌中看到明顯的資料包遺失。
作為故障排除步驟,我在 Windows 7 主機系統上放置了一個 tftpd 伺服器,當它運行時,我可以毫無問題地連接到它。
我目前的假設是 Windows 防火牆的「隱形」功能是這裡的問題。可能是因為 xinted 的工作方式(我對此一無所知)。
答案1
TFTP 僅在建立傳輸時使用UDP 連接埠69,而接下來實際的「資料」傳輸發生在隨機選擇的UDP 連接埠上,而該連接埠也必須在防火牆中「開啟」(機制在某種程度上類似於FTP 傳輸)您可以閱讀有關TFTP協定在這裡RFC 1350