4

У меня есть локальный (HTTP) сервер, работающий на моем (Linux) компьютере (прослушивающий 127.0.0.1:port) и локальное приложение, которое подключается к нему как клиент. Как серверные, так и клиентские приложения являются проприетарными, и я могу изменить только некоторые основные конфигурации для обоих. У меня эта настройка работала нормально до недавнего времени, когда клиентское приложение было обновлено. Похоже, что клиентское приложение теперь требует, чтобы сервер, к которому оно подключается, был "в Интернете", поэтому он запрещает подключения к 127.0.0.1 и другим "локальным" адресам, таким как 10.0.*. * и 192.168.*.*.

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

Мне интересно, есть ли способ "подделать" «интернет-подобный» IP-адрес для разрешения непосредственно на мой локальный компьютер.

Я посмотрел на "динамические DNS" решения, но они требуют изменений в конфигурации маршрутизатора, которые я часто не контролирую.

То, что я имею в виду вдоль линий установки порносайтов в «Интернет-как» IP для "разрешения" на моей локальной машине на моей локальной машине с помощью своего рода "виртуальный сетевой адаптер", но я не хочу тратить много время создания такой установки. Следовательно, вопрос, есть ЛЕГКИЙ способ сделать это?

5 ответов5

1

Вы можете добавить в качестве псевдонима "реальный" IP на сервере, то есть 1.2.3.4/32 и попытаться подключиться к этому адресу из клиентского приложения, если оно находится на том же компьютере. Если ваше клиентское приложение находится на другом компьютере, используйте что-то вроде 1.2.3.4/24 для сервера и 1.2.3.5/24 для клиента, при условии, что они оба находятся в одной локальной сети. Этот тип адресов не назначается в Интернете, поэтому у вас не возникнет проблем с подключением.

1

использовать iptables?

iptables -t nat  -I OUTPUT --src 0/0 --dst dest_ip -p tcp --dport 80 -j REDIRECT --to-ports 80

(хотя не уверен насчет цепочки) Это должно фактически перенаправить - прозрачно - любой трафик, идущий на dest_ip:80 на localhost:80.

des_ip - это любой ip, который делает приложение счастливым.

0

Я бы использовал виртуализацию. Вы можете создать фальшивый мир для своего программного обеспечения. Это может быть настолько сложным или простым, как вы хотите. Преимущество заключается в том, что вы можете использовать общедоступные IP-адреса, не портя сети для всей локальной сети, к которой вы подключены. Просто убедитесь, что виртуальные интерфейсы установлены на "только хост" или "только виртуальная сеть".

Вы могли бы даже сделать две машины. Один клиент и один сервер находятся в общедоступной подсети, поэтому они могут общаться друг с другом без маршрутизации. Это может существовать полностью в виртуальной сети и даже не быть видимым для хоста, если хотите.

0

Вы можете попробовать ip-адрес в одном из менее известных зарезервированных или не маршрутизируемых диапазонов, делая ставку на плохую реализацию в вашем клиент-серверном приложении.

Смотрите https://en.m.wikipedia.org/wiki/Reserved_IP_addresses

0

Может быть, вы можете использовать интернет-симулятор, как INetSim. Он имитирует (предоставляет поддельные) обычные интернет-сервисы, поэтому программа считает, что это в интернете. Например, он используется для анализа сетевого поведения вредоносного ПО в закрытой и безопасной среде, и эта программа затем используется, чтобы обмануть его, полагая, что это Интернет, а на самом деле это не так.

Это похоже на тот же сценарий, что и у вас, так что посмотрите на него и посмотрите, сможете ли вы его использовать!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .