Назад | Перейти на главную страницу

Перенаправить запрос на внешний IP-адрес на localhost (имитировать сервер)

У меня есть приложение (без исходного кода), вызывающее сервер (жестко заданный IP-адрес) и ожидающее ответа перед запуском (своего рода вход в систему).

Поскольку сервер не работает половину времени, я хочу создать фиктивный сервер, который будет имитировать поведение официального сервера.

Моя проблема:

Как я могу перенаправить трафик на мою локальную машину?

Я хочу, чтобы весь запрос, отправленный на IP w.x.y.z, был перенаправлен на localhost (где работает мой фиктивный сервер)

Больше информации:

Связанный: Как перенаправить трафик с одного IP на другой в Windows Server 2008

Это был бы полный взлом, но вы можете попробовать назначить IP-адрес рассматриваемого сервера в качестве дополнительного IP-адреса на вашем локальном интерфейсе, инструкции Вот

Что ж, вы можете попробовать следующее:

Настройте конкретный маршрут для этого IP-адреса, который будет использовать фиктивный сервер в качестве шлюза, например:

route add -host w.x.y.z/32 gw dummy-server-ip

Для этого вам понадобится либо доступ к основному маршрутизатору вашей сети, либо вы должны сделать это на машине, которая отправляет запросы. Это эффективно отправляет TCP-пакеты с IP-адресом w.x.y.z на MAC-адрес фиктивного сервера. Итак, теперь вам нужно убедиться, что фиктивный сервер знает, что с ними делать.

Затем добавьте IP-адрес w.x.y.z в качестве дополнительного адреса на фиктивный сервер.
Наконец, обновите конфигурацию apache на фиктивном сервере, чтобы убедиться, что он также прослушивает адрес w.x.y.z, и убедитесь, что vhost на фиктивном сервере принимает входящие запросы как для IP-адреса, так и для имени домена.

Обратите внимание, что это будет работать только в том случае, если между запрашивающей машиной и фиктивным сервером нет других маршрутизаторов. И если есть какие-то межсетевые экраны, их тоже нужно обновить.

Вы, наверное, могли бы что-нибудь наколоть вместе с iptables. Вот кое-что, что я когда-то использовал, но больше не делаю, чтобы дать вам опору:

*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -d 172.16.25.202 -i eth0 -p tcp -m tcp --dport 25 -j DNAT --to 172.16.27.59:8025
-A POSTROUTING -o eth0 -j MASQUERADE 
COMMIT

NB: Я это делал очень давно, там могут быть ошибки

Единственное, что, как я вижу, может быть проблемой, это то, что это специфично для интерфейса. Я думаю, что eth0 предназначен только для входящей части, поэтому использование ip на интерфейсе lo (127.0.0.1), поскольку цель все еще может работать ...