- Вопрос или проблема
- Ответ или решение
- Обход ограничений провайдера интернет-услуг с помощью прокси-сервера Squid на Google Cloud
- Проблема с доступом к заблокированным ресурсам
- Рекомендация по использованию OpenSSH в качестве альтернативы
- Как это работает
- Настройка проксирования DNS
- Альтернативные инструменты
- Заключение
Вопрос или проблема
В Турции много сайтов заблокировано (включая Википедию). Конечно, есть много методов обхода, таких как покупка VPN-аккаунта, использование браузера Opera с VPN и т. д.
Я решил использовать бесплатный и быстрый метод. Используя бесплатный тариф Google Cloud, я создал виртуальную машину с сервером Ubuntu 18.04 LTS на сервере в США. Я установил на ней Squid и сделал следующие настройки в squid.conf
, чтобы разрешить доступ моей домашней сети:
acl allowed_network1 src my_static_ip
http_access allow allowed_network1
После перезапуска службы squid
на сервере я ввел настройки прокси на своем компьютере (Ubuntu Desktop 18.04 LTS) в Firefox, и смог подключиться через прокси. Я подтвердил это с помощью нескольких сайтов whatismyip. Я также могу подключаться к серверам Netflix в США.
Проблема в том, что я не могу подключиться к заблокированным сайтам моего интернет-провайдера через прокси. Для некоторых из них я получаю сообщение об ограничении от провайдера (они отказываются от DNS-запросов), а для некоторых я просто не могу подключиться. Думаю, я чего-то не понимаю или совершенно неправильно интерпретировал идею.
Любая помощь будет оценена во имя свободного интернета.
Похоже, ваш интернет-провайдер также перехватывает проксированные соединения. Вам нужно зашифровать соединение между вашим компьютером и прокси-сервером. Но зачем изобретать велосипед? Я предложу вам лучшее решение.
Вы можете совсем убрать squid и использовать функцию динамической пересылки OpenSSH (предполагаю, что sshd
уже установлен на вашем сервере gcloud, что должно быть). Это работает путем запуска локального SOCKS прокси-сервера и пересылки любого трафика на ваш SSH-сервер, который, в свою очередь, пересылает трафик на целевой сервер. Поскольку соединения SSH по умолчанию зашифрованы, вам не нужно беспокоиться о подслушивании/перехвате.
Как это будет работать:
$ ssh -D 1080 user@gcloud-vm
это запустит SOCKS прокси-сервер на вашем локальном компьютере.
Затем вы можете настроить любые программы, которые хотите использовать с этим прокси-сервером. Просто укажите тип прокси как SOCKS5, IP-адрес прокси-сервера как 127.0.0.1
и порт прокси-сервера как 1080
. (Убедитесь, что вы проксируете и DNS-запросы).
Если ваша программа не поддерживает прокси, то попробуйте инструмент, такой как ProxyChains или, если это не сработает, tsocks. У меня был большой успех с обоими из этих инструментов.
Ответ или решение
Обход ограничений провайдера интернет-услуг с помощью прокси-сервера Squid на Google Cloud
Ваша задача по обходу ограничений интернет-провайдеров в Турции имеет несколько решений, и вы выбрали один из самых популярных вариантов – использование прокси-сервера Squid на виртуальной машине Google Cloud. Вы уже успешно настроили базовую конфигурацию, но столкнулись с проблемами доступа к некоторым ресурсам, которые заблокированы вашим провайдером.
Проблема с доступом к заблокированным ресурсам
Судя по вашему описанию, ваш интернет-провайдер, вероятно, осуществляет активный мониторинг трафика и может блокировать не только определенные сайты, но и запросы, проходящие через прокси. Это может происходить из-за того, что ваш провайдер перехватывает DNS-запросы или обрабатывает трафик на других уровнях.
Рекомендация по использованию OpenSSH в качестве альтернативы
Вместо использования Squid можно рассмотреть возможность использования OpenSSH с динамическим перенаправлением портов. Эта методика более безопасна, так как SSH обеспечивает шифрование трафика по умолчанию, что помогает избежать блокировок и перехватов.
Как это работает
- Убедитесь, что SSH-сервер (обычно
sshd
) установлен и запущен на вашем сервере Google Cloud. - Используйте следующую команду для создания локального SOCKS-прокси:
$ ssh -D 1080 user@gcloud-vm
Здесь
user
– это ваш пользователь на виртуальной машине Google Cloud, аgcloud-vm
– адрес вашего сервера. - После выполнения этой команды на вашем локальном компьютере будет запущен SOCKS-прокси на порту 1080.
- Теперь вы можете настроить ваше приложение (например, Firefox или любое другое) для использования этого прокси. Укажите тип прокси как SOCKS5, IP-адрес прокси как
127.0.0.1
, а порт прокси как1080
. Обязательно включите проксирование DNS-запросов.
Настройка проксирования DNS
При использовании SOCKS-прокси также важно правильно настроить DNS-запросы, чтобы они также проходили через прокси-сервер. В Firefox это можно сделать следующим образом:
- Перейдите в
Настройки
->Сеть
->Настройки соединения
. - Выберите
Ручная настройка прокси
. - Убедитесь, что DNS-запросы проходит через SOCKS-прокси.
Альтернативные инструменты
Если ваше приложение не поддерживает прокси напрямую, рекомендуется использовать дополнительные инструменты:
- ProxyChains: Этот инструмент позволяет перенаправлять трафик через SOCKS-прокси. Установите и настройте ProxyChains, чтобы он использовал ваш SOCKS5-прокси.
- tsocks: Этот инструмент также позволяет приложениям, не поддерживающим прокси, использовать SOCKS-прокси, путем обертывания вызовов сокетов.
Заключение
Использование OpenSSH в качестве SOCKS-прокси может значительно увеличить ваши шансы на успешный обход ограничений вашего провайдера, обеспечивая при этом шифрование трафика. Это более простой и эффективный способ, чем использование Squid, особенно если ваш провайдер активно блокирует прокси-соединения.
Удачных вам усилий в обеспечении свободного доступа к информации! Если у вас возникнут дальнейшие вопросы или проблемы, не стесняйтесь обращаться за помощью.