Поскольку на iPad мы не можем редактировать файл hosts (без взлома), как мы можем произвольно перенаправить веб-трафик на другой URL-адрес?
Это было бы важно для чего-то вроде разработки веб-сайта, использующего конфигурацию виртуального хоста, с которого вы хотите перенаправить на машину разработки.
(Это связано с вопросом: могу ли я редактировать хост-файл iPad? )
yum install squid
на fedoraapt-get install squid
на Ubuntusudo service squid3 reload
. Кроме того - и, возможно, это проблема конфигурации, специфичная для моего сервера разработки - на моем iPad мне нужно вручную ввести http: //, чтобы разрешение адреса работало правильно.Я обнаружил, что вам просто нужно изменить настройки Wi-Fi на своем iPad, чтобы использовать IP-адрес вашего компьютера разработки в качестве прокси-сервера HTTP (как описано в вышеупомянутой статье ):
Таким образом, достаточно иметь доступ к своему веб-приложению на iPad, введя URL-адрес виртуального хоста (например,
local.mywebapp.com
). Это легко и быстро, но, в отличие от решения Уилла Келлера, вы не сможете получить доступ в Интернет с iPad. Но в большинстве случаев это не проблема, поскольку вы просто хотите протестировать собственное приложение.источник
80
.Настройте файл hosts на компьютере, на котором запущен прокси-сервер, например Fiddler или Charles, и настройте iPad для использования этого компьютера в качестве прокси-сервера HTTP.
Вот инструкции, как это сделать с помощью Fiddler: http://conceptdev.blogspot.com/2009/01/monitoring-iphone-web-traffic-with.html
И это для Чарльза: http://www.ravelrumba.com/blog/ipad-http-debugging/
источник
Если у вас уже есть сервер Apache, на котором вы занимаетесь разработкой, вы можете легко использовать его в качестве прямого прокси. Это особенно полезно для сайтов WordPress, которые действительно любят использовать полный абсолютный URL.
Пример Ubuntu ниже:
Первый шаг - отредактировать
/etc/hosts
файл на вашем сервере разработки. Добавьте локальный IP-адрес сервера, указывающий на ваш сайт.127.0.0.1 dev.mysite.com
Этот файл hosts будет использоваться вашим прокси-сервером Apache, когда он пытается разрешить запросы с вашего iPhone / iPad. Итак, давайте настроим часть Apache сейчас ...
Возможно, вам сначала потребуется установить некоторые модули.
Затем создайте файл виртуального хоста, например
/etc/apache2/sites-available/my-proxy
Включите vhost и перезапустите Apache:
Затем перейдите в « Настройки»> «Wi-Fi»> «Ваша сеть» и настройте прокси-сервер «вручную». Введите IP-адрес вашего сервера Apache и порт. Это оно!
В
<Proxy *>
блок гарантирует , что только люди на моей локальной сети могут использовать этот прокси - сервер. Строгое ограничение доступа имеет важное значение, если вы используете прямой прокси. На этом этапе вам будет полезна страница ip2cidr . (В качестве дополнительной меры порт: 8080 заблокирован моим брандмауэром.)источник
Мне нужно протестировать разрабатываемые мной веб-приложения на iPad. Я использую Apache на своем компьютере разработчика для запуска веб-приложений, поэтому самым простым решением, которое я нашел, было использование Apache mod_proxy.
Моя машина разработчика отображается в моей домашней сети как sapphire.local.
Веб-приложение, которое я тестирую, размещено на машине разработчика по адресу demo.cms.dev (я использую POW).
Чтобы настроить прокси, я добавил следующий раздел в httpd.conf.
Это направляет входящие запросы на sapphire.local на demo.cms.dev. Метод работает только для одного приложения за раз. Я думаю, вы могли бы использовать разные порты для установки дополнительных приложений. Может у кого есть решение получше?
источник
Также можно использовать приложение Weblock - AdBlock для iOS (доступно за 1,99 доллара здесь: https://itunes.apple.com/us/app/weblock/id558818638?mt=8 ) для создания перенаправления веб-трафика.
Это позволяет перенаправить любой трафик, соответствующий определенному правилу, на указанный IP-адрес. Это будет имитировать добавление записи в / etc / hosts на вашем устройстве iOS. Если имя хоста, заданное в запросах, обрабатывается IP-адресом, на который вы направляете свой трафик, вы можете использовать это для тестирования частного API или даже для прослушивания трафика, отправленного из других приложений или веб-сайтов. К сожалению, это работает только для соединений http / https.
Все это можно сделать только при подключении к Wi-Fi (одно из ограничений Weblock). Основным преимуществом является то, что вы можете легко настроить все со своего устройства iOS, и вам не нужно возиться с конфигурацией DNS / прокси-сервера.
Вот пример:
Weblock также хорош для выборочного перенаправления некоторых URL-адресов с помощью регулярных выражений. Вы можете перенаправлять запросы только на определенную конечную точку, в то время как все остальные запросы отправляются на IP, возвращенный из DNS. На самом деле это позволяет настроить даже более подходящую конфигурацию, чем это делает / etc / hosts.
Пример: если я создам правило перенаправления URL-адреса для htt *: //somedomain.com/api/login* и некоторого IP- адреса и порта, я увижу только трафик с этого URL-адреса на этом IP-адресе и порту, а весь остальной трафик - на какой-либо домен. com перейдет непосредственно на IP, возвращаемый DNS. Обратите внимание, что это будет работать как для / api / login, так и для / api / login? Someparam = somevalue благодаря подстановочному знаку * в конце правила.
источник
Я сделал это с помощью squidman на Mac. Легко настроить и использовать.
Я настроил его за 5 минут, следуя этой статье .
Обновить
Другое дело, если вы хотите подключиться к веб-сайтам, работающим на прокси-сервере, в моем случае это мой Mac, вам нужно прокомментировать эту строку в squidman-> Preferences-> Template
источник
Вы можете настроить внутренний DNS-сервер в своей сети (если он еще не существует) и настроить запись A. Затем убедитесь, что ваш DHCP настроен на возврат указанного DNS-сервера.
источник
Вы также можете использовать http://xip.io/, используя инструкции на этой странице, вы можете ввести IP-адрес, и он перенаправит вас на соответствующий локальный IP-адрес.
источник
Если у вас есть действующий веб-сайт, вы можете использовать для этого:
Вы можете добавить запись A в свою конфигурацию DNS: something.yourdomain.com, которая указывает на ваш локальный IP-адрес, а затем добавить запись для something.yourdomain.com в файл виртуальных хостов. Перезагрузите Apache, подключите устройство iOS к той же сети, и все готово.
источник
Здесь нет метода настройки для кросс-устройства / компьютерного тестирования виртуального хоста Mamp Pro. Единственное ограничение - вы можете тестировать только один домен за раз, но для меня это нормально, когда я разрабатываю. Однако переключаться между виртуальными хостами прямо в mamp очень просто.
Я бегаю mamp pro 2, горный лев. Папка «Мои сайты» содержит отдельные папки домена.
Я обнаружил, что если вы выберете конкретный IP-адрес локального компьютера под виртуальным хостом «ip / port» и перезапустите mamp, этот домен станет доменом по умолчанию при просмотре IP-адреса или имени компьютера локального хоста в сети.
В целях тестирования это отлично работает на всех устройствах в сети, включая iPad. Если вы хотите протестировать другой виртуальный хост, вы можете просто вернуть конфигурацию ip / port на «*», а затем переназначить другой домен для IP-адреса компьютера и перезапустить.
Преимущество этого простого подхода заключается в том, что вы можете предоставлять клиентам доступ непосредственно к вашим сайтам разработки, когда вы находитесь в одной сети, без необходимости выполнять какие-либо настройки на их компьютере.
Надеюсь, это поможет всем, кто ищет простое решение.
источник
Внутренний DNS-сервер - один из вариантов, но его было слишком сложно реализовать. Мы попытались установить squid в качестве прокси-сервера, но это также не сработало, потому что он перенаправлял URL-адрес на новый сервер, и это перенаправление также было замечено в URL-адресе браузера.
В конечном итоге у нас сработало установка Fiddler на один из серверов и использование этого сервера в качестве прокси-сервера на ipad. Fiddler также имеет функцию сопоставления субдоменов с IP-адресами, то есть что-то похожее на / etc / hosts.
источник
Хороший учебник для этого: http://egalo.com/2012/05/29/testing-mac-web-site-using-local-hostname-on-mobile-device/
Другой способ - подключить IPad через локальную точку доступа к моей MAC OS X и установить перенаправление портов на виртуальную машину разработки. Для этого я сделал следующие шаги:
ssh -NL <IP-of-hotspot-host>:<source-port>:<url-to-local-vm>:80 <user-to-vm>
<IP-of-hotspot-host>:<source-port>
Где взять «IP-адрес точки доступа»:
После создания точки доступа есть точка WLAN в
системных настройках MAC OS X >> Сеть >> WLAN.
Добавление ServerAlias:
На моей виртуальной машине разработки (Apache2) в /etc/apache2/sites-available/dkr.dev.local мне пришлось добавить следующее:
источник
Если вы изучали это и несколько внешних ссылок, вы, возможно, найдете этот ответ:
https://stackoverflow.com/a/24770097/3842985
Речь идет о легковесном DNS-сервере под названием dnsmasq. Супер простой, очень мощный и может использоваться вместе с вашими внутренними или внешними DNS-серверами.
Намного проще, чем установить squid, возиться с Apache и другие методы, которые потребуют много времени и рискуют «целостностью» конфигураций, разработки сред, сред тестирования и т. Д.
Стоит задуматься.
Я принял это как обычный инструмент для разработки и нормального сетевого взаимодействия.
источник
Решить эту проблему можно с помощью специального DNS-сервера на ПК. Пользуюсь и отлично работаю.
Посетите https://technitium.com/dns/, чтобы загрузить собственный DNS-сервер. Которая построена с использованием технологии .Net. После настройки этого инструмента вам необходимо изменить настройку DNS на пользовательский и установить IP-адрес вашего ПК. Чтобы не менять IP каждый раз при перезагрузке ПК, используйте статический IP на ПК.
источник
Я бы попробовал Relay Server (часть Afaria), который может перенаправлять мобильный трафик на основе профилей.
Обновление: ответ tremoloqui кажется меньше хлопот и намного дешевле.
источник
Ответы здесь правильные. Еще немного знаний: они не будут работать с закреплением сертификатов. Что вы можете сделать, так это (1) использовать сертификат подстановочного знака домена для поддержки вашего тестирования региона dev / test / qa. И / или (2) использовать обратный прокси-сервер, такой как Apache, с помощью которого вы переходите к тому, куда Apache направляет запросы в вашей сети. Теперь, когда вы попадаете в тестирование SSL-пиннинга, вы мертвец в воде с физическими устройствами и можете проверить только с помощью симулятора (ios) и эмулятора (Android).
источник