Задать вопрос
mausspb
@mausspb
web разработчик, системный администратор

Возможно ли передать гостевой ip на локальную машину?

OS Debian 8 , pure-ftpd - сервер , все vps - openvz контейнеры.

Есть ftp сервер на vps2 с локальным ip , есть vps1 с реальным ip откуда идет перенаправление(с помощью iptables) трафика на нужный локальный ip.
При подключении к ftp серверу ( с локальным ip ) в логах пишется информация только внешнего ip ( с vps1) , а нужна информация о ip клиента ( а не самого vps1).
Можно ли как-то передать ip клиента в логи vps2?
UPD1:
Перенаправляю сейчас по этому правилу:
iptables -t nat -A PREROUTING --dst %YOU_PUBLIC_ADDRESS% -p tcp -m multiport --dport 21,50000:51000 -j DNAT --to-destination 192.168.10.10
iptables -t nat -A POSTROUTING --dst 192.168.10.10 -p tcp -m multiport --dport 21,50000:51000 -j SNAT --to-source %YOU_PUBLIC_ADDRESS%

iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I FORWARD 1 -i venet0 -o venet0 -d 192.168.10.10 -p tcp -m multiport --dport 21,50000:51000 -j ACCEPT


В логах отображается %YOU_PUBLIC_ADDRESS% , а не адрес клиента.

UPD2:
Возможно стоит описать более детально сеть.
Есть PVE (Proxmox на базе debian) - имеет физический eth0 и белый ip. На нем же бридж поднят.
Есть vps1 - имеет подключение через хоста , имеет белый ip, интерфейс venet.
Есть vps2 - имеет подключение через хоста, имеет локальный ip, подключен к бриджу,имеет выход в инет.

На vps1 поднят nginx , который слушает все на 80;443 порту и перенаправляет на vps2 в случае соответствующей записи vhosts .

Была задача - дать доступ по ftp к vps2 , где вместо ip - имя домена.
Сейчас эта схема работает, но как сказано выше ip адрес определяется vps1.
  • Вопрос задан
  • 493 просмотра
Подписаться 3 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
edinorog
@edinorog
Троллей не кормить!
я не знаю как у вас там фурычит проброс портов, но при нормальных настройках внутренний сервак видит айпишники извне
Ответ написан
Комментировать
ifaustrue
@ifaustrue
Пишу интересное в теллеграмм канале @cooladmin
При классической нат трансляции эту информацию передать нельзя (точно так же нельзя передать наружу ваш локальный адрес при src nat - в этом смысл и суть технологии).

В иных протоколах (например, http и его проксировании) для этих целей используется расширение протокола.

Но конечно нужно смотреть что у вас там за софт, есть виды NAT, позволяющие пропускать через себя адреса публичных хостов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы