web-dev-qa-db-ja.com

ローカルネットワークでtftpサーバーを表示/使用可能にするにはどうすればよいですか?

私は次の質問を見て成功していません。

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が許可されており、他に何をすべきかわかりません。

3
Alex Meuer

ルールはINPUTのみであるため、ポート69からの着信トラフィックのみを許可しますが、発信トラフィックも同じであるため、ACCEPT発信トラフィックも必要です。

Sudo iptables -A OUTPUT -p tcp --dport 69 -j ACCEPT
Sudo iptables -A OUTPUT -p udp --dport 69 -j ACCEPT
2
Gen