У меня есть требование к системе Linux, где устройство Linux использует RSYNC для синхронизации данных с другой машиной Linux. В данный момент это работает нормально, однако мне нужно переместить одну из машин в другой центр обработки данных.
Возможно ли с помощью iptables настроить машину таким образом, чтобы все вызовы на (например) локальный адрес 192.168.100.230 теперь фактически отправлялись на публичный адрес в Интернете?
решение1
Необходимо включить IP-пересылку: отредактируйте /etc/sysctl.conf
и убедитесь, что строка net.ipv4.ip_forward = 1
присутствует и не закомментирована.
Затем вам необходимо выполнить эту команду:
iptables -t nat -A ВЫВОД -d [ipaddress1] -j DNAT --to-destination [ipaddress2]
Где ipaddress1
находится адрес, на который вы хотите перенаправить ipaddress2
?
Примечание: эта команда не сохраняется после перезагрузки.
решение2
Клиент подключается к старому адресу 192.168.100.230
, а новый адрес может измениться, например 192.168.100.240
. Вы можете сделать переадресацию портов с помощью туннеля ssh вместо iptables.
ssh -TNnfaq -L 192.168.100.230:22:192.168.100.240:22 user@localhost
или
ssh -L 192.168.100.230:22:192.168.100.240:22 user@localhost # for test
Все запросы отправляются 192.168.100.230:22
с пересылкой на 192.168.100.240:22
. Вам не нужно, root
если номер порта больше 1024.