1

Я хочу использовать Интернет моей школы на своем Android, проблема в том, что у них есть прокси Squid, и многие приложения на моем телефоне вообще не используют прокси.

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

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

Я использую небольшой прокси на своей Ubuntu (cntlm), поэтому я перенаправляю трафик Android на него. Я сделал это с "iptables" следующим образом:

iptables -t nat -A PREROUTING -s 10.0.1.118 -p tcp -j REDIRECT --to-ports 8888
iptables -t nat -A PREROUTING -s 10.0.1.118 -p udp -j REDIRECT --to-ports 8888

10.0.1.118 - это IP-адрес телефона, 8888 - это порт cntlm (прокси на моем ПК).

Теперь по телефону: когда я захожу на навигатор www.google.com я ничего не получаю (веб-сайт не найден, сообщение об ошибке Firefox).

Но, когда я http://74.125.143.101 (IP-адрес Google), я получаю сообщение об ошибке от школьного прокси-сервера (так оно и сработало - мой компьютер перенаправил трафик телефона на прокси-сервер Squid).

Сообщение об ошибке:

запрашиваемый адрес недоступен
при попытке обработать запрос
получить / http / 1.1
хост 74.125.143.101
пользователь-агент ...
...

Я думаю, что проблема в заголовке "GET", это должен быть GET 74.125.143.101 HTTP/1.1 . Но я не понимаю, что происходит, и я сертифицированный CCNA.

3 ответа3

0

Вы перенаправляете абсолютно все. Включая DNS трафик. Это не работает; CNTLM не прокси DNS.

Попробуйте явно разрешить порт 53 через unmolested:

iptables -t nat -I PREROUTING -s 10.0.1.118 -p tcp --dport 53 -j ACCEPT iptables -t nat -I PREROUTING -s 10.0.1.118 -p udp --dport 53 -j ACCEPT

0

Решение - добавить:

1- DNS-сервер: и перенаправить трафик DNS на него, а остальную часть трафика udp на CNTLM

Это не решает проблему полностью, я получаю ту же ошибку, если я ввожу имя веб-сайта или его IP-адрес (перед установкой DNS-сервера я получаю сообщение об ошибке только при вводе IP-адреса веб-сайта, поэтому разрешение DNS работает)

2- После анализа трафика с телефона в случаях с / без прокси я получаю следующее:

без прокси

получить / http / 1.1

хост 74.125.143.101

пользователь-агент ...

..

с прокси

получить 74.125.143.101/ http/ 1.1

хост 74.125.143.101

пользователь-агент ...

поэтому решение состоит в том, чтобы добавить имя хоста, чтобы получить заголовок, я напишу приложение, которое делает

Я уверен, что это будет работать:D

0

Вы можете использовать это

на телефоне настройте тот же порт прокси, который вы используете в Ubuntu, и настройте IP прокси как IP сервера Ubuntu.

сделай это на своем убунту

iptables -t nat -A POSTROUTING -s 1.1.1.1  -j SNAT --to 1.2.3.4
iptables -t nat -A PREROUTING -s 1.1.1.1 -d  1.2.3.4   -j DNAT --to 5.6.7.8

1.1.1.1 это IP телефона

1.2.3.4 - это Ubuntu IP

5.6.7.8 - IP прокси-сервера

и включить переадресацию IP

echo 1 > /proc/sys/net/ipv4/ip_forward

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