Внешний доступ TFTP-сервера Linux через маршрутизатор

Я использую Ubuntu в качестве хост-машины для моей встроенной платы Linux с сервисом tftp-hpa. Я могу загрузиться просто отлично, используя загрузчик u-загрузки при передаче локального ( 192.168.1.10 ) ip-адреса сервера TFTP, работающего на хосте к целевой плате (который имеет ip-адрес 192.168.1.3 ). Это-случай, где и сервер и клиент позади маршрутизатора и на 192.168.1.X сеть.

Я хочу иметь возможность экспортировать свой каталог за пределы моего маршрутизатора на внешний сеть. Мой сервер TFTP настроен (через /etc/default/tftp-hpa ) следующим образом:

user@ubuntu:~$ cat /etc/default/tftpd-hpa

RUN_DAEMON="yes"

TFTP_USERNAME="tftp"

TFTP_DIRECTORY="/home/user/exported-nfs"

TFTP_ADDRESS="0.0.0.0:69"

TFTP_OPTIONS="-l --secure"

Я перенаправил порт 69 (UDP) на мой сервер в 192.168.1.10 в конфигурации маршрутизатора, как показано здесь:

enter image description here

Я также настроить маршрутизатор для использования сервера (192.168.1.10) в качестве DMZ:

enter image description here

это работает:

user@ubuntu:~$ tftp
tftp> trace
Packet tracing on.
tftp> connect 192.168.1.10
tftp> get /boot/uImage
sent RRQ <file=/boot/uImage, mode=netascii>
received DATA <block=1, 512 bytes>
sent ACK <block=1>
received DATA <block=2, 512 bytes>
sent ACK <block=2>
received DATA <block=3, 512 bytes>
...
sent ACK <block=4465>
received DATA <block=4466, 343 bytes>
Received 2286423 bytes in 0.5 seconds
tftp>

и это не работает:

user@ubuntu:~$ tftp
tftp> trace
Packet tracing on.
tftp> connect 129.196.194.210
tftp> 
tftp> get /boot/uImage
sent RRQ <file=/boot/uImage, mode=netascii>
sent RRQ <file=/boot/uImage, mode=netascii>
sent RRQ <file=/boot/uImage, mode=netascii>
sent RRQ <file=/boot/uImage, mode=netascii>
sent RRQ <file=/boot/uImage, mode=netascii>
Transfer timed out.

Я могу успешно SSH (порт 22 ) на мой сервер 192.168.1.10, используя внешний IP-адрес маршрутизатора ( 129.196.194.210), поэтому моя переадресация портов работает.

user@ubuntu:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr 0a:0c:c9:b1:fa:43  
          inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:feb1:da43/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:174803 errors:0 dropped:0 overruns:0 frame:0
          TX packets:155485 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:32417220 (32.4 MB)  TX bytes:94986400 (94.9 MB)
          Interrupt:19 Base address:0x2024 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:45130 errors:0 dropped:0 overruns:0 frame:0
          TX packets:45130 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:12913549 (12.9 MB)  TX bytes:12913549 (12.9 MB)

user@ubuntu:~$ ssh user@129.196.194.210
user@129.196.194.210's password: 
Linux ubuntu 2.6.32-42-generic #96-Ubuntu SMP Wed Aug 15 18:57:09 UTC 2012 i686 GNU/Linux
Ubuntu 10.04.4 LTS

Welcome to Ubuntu!
 * Documentation:  https://help.ubuntu.com/

New release 'precise' available.
Run 'do-release-upgrade' to upgrade to it.

Last login: Tue Sep 11 07:55:30 2012 from 129.196.194.210
user@ubuntu:~$ 

но доступ TFTP извне маршрутизатора постоянно отказывает и истекает время ожидания. Что я делаю неправильно? Как я могу это исправить? Спасибо -

17
задан PhilBot
26.11.2022 12:50 Количество просмотров материала 2788
Распечатать страницу

2 ответа

TFTP через NAT очень проблематично так как он использует UDP, а не TCP для передачи данных. Вам нужно будет установить, чтобы ваш маршрутизатор действовал как TFTP-прокси, что большинство домашних маршрутизаторов не смогут сделать (но я знаю, что pfSense имеет эту функцию).

1
отвечен Stefan Seidel 2022-11-27 20:38

вам нужен TFTP прокси или один порт конфигурации tftp (потому что на rfc, TFTP-сервер должен ответить на другой порт, после получения запроса на 69 порт ). Некоторые серверы tftp поддерживают это, например:

  1. открыть TFTP-сервера http://sourceforge.net/projects/tftp-server/
  2. патч для tftpd в (гПа) - http://www.syslinux.org/archives/2010-March/014150.html
0
отвечен Oleg Kuznetsov 2022-11-27 22:55

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

embedded-linux
networking
port-forwarding
router
tftp
Вверх