Как я могу сделать мой 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

Я разрешил порт 69 через iptables:

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

Однако никто из моих коллег не может получить к нему доступ со своих компьютеров (той же сети, той же маски подсети), и, самое главное, я не могу получить к нему доступ со встроенной платы, для которой он мне нужен (кабели Ethernet, подключенные к одному коммутатору). Я часами гуглял и пока не нашел решения.

Тот факт, что он работает локально, указывает на проблему с брандмауэром / портом, но порт 69 разрешен на iptables, и я не уверен, что еще я могу сделать.

1 ответ

Решение

Так как у вас есть только INPUT правила, что означает, что вы принимаете только входящий трафик от порта 69, но у вас есть трафик, выходящий также, это означает, что ACCEPT исходящий трафик также.

sudo iptables -A OUTPUT -p tcp --dport 69 -j ACCEPT
sudo iptables -A OUTPUT -p udp --dport 69 -j ACCEPT
Другие вопросы по тегам