Как я могу сделать мой tftp сервер видимым / доступным в моей локальной сети?
Я посмотрел на следующие вопросы без успеха:
- Как установить и настроить tftp сервер на 14 04
- Как настроить tftp сервер в ubuntu 14 04
- Как установить и настроить tftp сервер в ubuntu 14 10 utopic
- Как мне установить и запустить 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