Задний план
У меня два маршрутизатора, Router_A и Router_B.
Router_A IP-адрес на стороне LAN: 172.16.0.1
. Router_A имеет двух клиентов, Computer_A (IP 172.16.0.11
) и Router_B (IP 172.16.0.2
).
Router_B IP-адрес стороны WAN 172.16.0.2
. IP-адрес Router_B на стороне LAN: 10.0.0.1
. Router_B имеет одного клиента, FTP_Server_B (IP 10.0.0.2
).
В Router_B порты FTP (21, 990 и ряд предопределенных портов) перенаправляются на 10.0.0.2
.
Статическая маршрутизация (не работает)
В Router_A я установил статическую маршрутизацию следующим образом:
Destination Address Subnet Mask Gateway Metric
10.0.0.0 255.255.255.0 172.16.0.2 15
Насколько я понимаю, это правило статической маршрутизации означает, что в Router_A 172.16.0.xxx
подсеть, когда пакет должен перейти в 10.0.0.xxx
, он достигает Router_A. Согласно правилу, 172.16.0.2
знает о 10.0.0.xxx
адреса. Итак, Router_A перенаправит пакет на 172.16.0.2
.
Проблема
С компьютера_A пытаюсь подключиться к FTP_Server_B.
С помощью ftp://172.16.0.2
, Я могу войти на FTP-сервер. Затем сервер отвечает на свой адрес в пассивном режиме. 10.0.0.2
. С этой точки зрения, 10.0.0.2
недоступен, и клиент не может перечислить каталоги и файлы.
С помощью ftp://10.0.0.2
, Я даже не могу войти. Я даже до сервера не могу дозвониться.
У вас две разные проблемы:
С помощью ftp://172.16.0.2, Я могу войти на FTP-сервер. Затем сервер отвечает на свой адрес пассивного режима 10.0.0.2.
Вы перенаправляете порт FTP в Router_B, и вы не загрузили вспомогательный модуль (-ы) FTP, который перезапишет PASV-ответ FTP-сервера на общедоступный IP-адрес Router_B (в Linux путем загрузки модуля ядра nf_nat_ftp
), и вы не настроили свою систему, чтобы динамически разрешать переадресацию портов для подключения к данным (в Linux с ip_conntrack_ftp
модуль ядра и позволяющий --state RELATED
в ваших наборах правил iptables).
С помощью ftp://10.0.0.2, Я даже до сервера не могу дозвониться.
Настройка статического маршрута на Router_A для 10.0.0.0/24 должна доставлять эти пакеты на 172.16.0.2, но Router_B все еще должен быть настроен для приема входящих для трафика 10.0.0.0/24 на общедоступном интерфейсе и для маршрутизации этих пакетов в вашу локальную сеть . Ваш вопрос не показывает, что вы это сделали.