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

Имитировать сетевое окружение и пересылку пакетов?

Мой вопрос может быть немного странным, но сначала немного предыстории:

У меня есть клиент с устройствами в собственной сети с разными IP-адресами (в основном 192.168.x.x). С внешней стороны я подключаюсь к одной из этих машин с туннелем SSH и могу перенаправлять порты с подключений на мой IP-адрес, но один туннель / порт работает только для указанного IP-адреса, а разрабатываемое мной приложение должно принимать список разные IP-адреса для работы, и если они все 127.0.0.1, это не будет работать, даже если порт другой (я мог бы сопоставить порты 8000-8005 с 192.168.0.1, 8006-8010 по 192.168.0.2и так далее), так как это не сработает.

Итак, мне интересно, могу ли я на своем локальном компьютере создать «подсеть», скажем, 10.0.0.x куда идут пакеты 10.0.0.2:80 пройдет через мой SSH-туннель в 127.0.0.1:8000, 10.0.0.3:80 будет идти к 127.0.0.1:8010, и так далее? Это похоже на зеркалирование IP-адресов сети моего клиента в моей собственной среде через туннель SSH ... как своего рода VPN. (VPN обсуждался, но на другом конце его сложно настроить, поэтому у меня есть только SSH-туннель).

Любые идеи приветствуются!

Примечание: об этом уже спрашивали в SuperUser, но я немного поискал здесь и думаю, что этот стек подходит лучше, поскольку я видел здесь людей, более опытных в работе с сетями. Я также ищу что-то вроде пересылки пакетов, но с IP-адресами, которых нет в моей сети, но которые я могу смоделировать (10.0.0.x), что-то вроде:

10.0.0.1:80 --> 127.0.0.1:8000
10.0.0.2:80 --> 127.0.0.1:8001
10.0.0.3:80 --> 127.0.0.1:8010

И так далее...

Что ж, после нескольких часов исследований и некоторых указаний Майкла Хэмптона я нашел свое решение с использованием IPTables, я нашел его здесь:

https://www.linuxquestions.org/questions/linux-software-2/route-locally-generated-traffic-to-ip-port-to-localhost-port-300294/

Итак, моя команда для пересылки пакетов с несуществующего поддельного IP-адреса на мой собственный компьютер была:

iptables -t nat -A OUTPUT -m tcp -p tcp -d 10.0.0.1 --dport 80 -j DNAT --to-destination 127.0.0.1:8000

Я не уверен, что это за параметры и как они работают, но это перенаправит 10.0.0.1:80 -> 127.0.0.1:8000.

Спасибо!