Мой вопрос может быть немного странным, но сначала немного предыстории:
У меня есть клиент с устройствами в собственной сети с разными 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, я нашел его здесь:
Итак, моя команда для пересылки пакетов с несуществующего поддельного 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
.
Спасибо!