私は次の質問を見て成功していません。
Tftp-hpa、atftpd、およびtftpを使用してみました。他のものを使用しても違いはないので、私はtftpに戻りました。
これまでのところ:
インストールされたtftp
Sudo apt-get install xinetd tftpd tftp
/etc/xinetd.d/tftpをセットアップします
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = /tftpboot
disable = no
}
/ tftpbootフォルダーを作成し、それに対して次を実行しました。
Sudo chmod -R 777 /tftpboot
Sudo chown -R nobody /tftpboot
Iptablesでポート69を許可しました:
Sudo iptables -A INPUT -p tcp --dport 69 -j ACCEPT
Sudo iptables -A INPUT -p udp --dport 69 -j ACCEPT
Sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:tftp
ACCEPT udp -- anywhere anywhere udp dpt:tftp
そしてサービスを再起動しました:
Sudo /etc/init.d/xinetd restart
Localhostを使用して正常に接続できます(127.0.0.1を明示的に使用した場合と同じ結果になります)。
tftp localhost
tftp> status
Connected to localhost.
Mode: netascii Verbose: off Tracing: off
Rexmt-interval: 5 seconds, Max-timeout: 25 seconds
tftp> get test
Received 21 bytes in 0.0 seconds
tftp> quit
しかし、私の同僚は誰もマシン(同じネットワーク、同じサブネットマスク)からアクセスできず、最も重要なのは、必要な組み込みボード(同じスイッチに接続されたイーサネットケーブル)からアクセスできないことです。私は何時間もグーグルをしてきましたが、まだ修正を見つけていません。
ローカルで動作するという事実は、ファイアウォール/ポートの問題を示唆していますが、iptablesではポート69が許可されており、他に何をすべきかわかりません。
ルールはINPUT
のみであるため、ポート69からの着信トラフィックのみを許可しますが、発信トラフィックも同じであるため、ACCEPT
発信トラフィックも必要です。
Sudo iptables -A OUTPUT -p tcp --dport 69 -j ACCEPT
Sudo iptables -A OUTPUT -p udp --dport 69 -j ACCEPT