У меня следующая настройка:
Клиент:
- ДЧП 192.168.1.*
Шлюз Raspbian:
- 192.168.1.20
Raspbian-сервер:
- 192.168.1.19
На сервере ведется прямая трансляция с камеры на порту 8000.
Я хочу получить доступ к этой прямой трансляции через свой шлюз и сделать это с помощью iptables.
Я добавил следующее правило:
sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 8000 -j DNAT --to-destination 192.168.1.19
Когда я получаю переход на 192.168.1.20:8000, я получаю тайм-аут соединения. Немного почитав, я понял, что мне нужно создать еще одно правило, которое будет иметь дело с ответом. Это можно сделать с помощью SNAT или MASQUARADE.
Я не хочу жестко задавать обратный адрес, так как у "клиентов" могут быть разные IP-адреса. Но как мне сказать iptables "запомнить" исходный IP-адрес, который был предоставлен в запросе tcp, и вернуть его как адрес "возврата отправителю" в ответе?
Я только что попробовал:
sudo iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
Это работает, но я понятия не имею, что я делаю сейчас. Что делает MASQUERADE?