У меня есть Linux-сервер, работающий в центре обработки данных, у которого есть дополнительная пропускная способность и ресурсы.
Я хотел бы настроить прокси-службу, чтобы я мог направлять через нее весь свой трафик http / https из дома. Я знаю, как настроить браузер для работы с прокси, но я просто не знаю, как настроить его на стороне сервера. Я также хотел бы иметь аутентификацию, чтобы ее мог использовать только я
Мой любимый способ сделать это - использовать туннелирование ssh / SOCKS и SOCKS.
Если на вашем сервере colo'd запущен sshd, это все, что вам нужно.
Использовать
ssh -D 9000 yourhost.foo.com
А затем настройте свой браузер, чтобы использовать прокси-сервер SOCKS на 127.0.0.1 порту 9000.
В Firefox мне нравится использовать Foxyproxy для быстрого изменения конфигурации прокси.
Вот страница ОК с более подробной информацией. Сведения о прокси-сервере SSH
Немного поздно к обсуждению ...
Я считаю, что tinyproxy проще в настройке и легче, чем squid, особенно для сервера, который предназначен только для вашего собственного использования.
Ключ в том, работает ли на вашем сервере центра обработки данных sshd.
Если это так, то ответы здесь, в которых используется ssh для перенаправления портов, автоматически решают проблему авторизации. Установите tinyproxy для привязки к 127.0.0.1, и только пользователи, у которых есть доступ ssh, могут подключаться к нему.
Если это не так, вы можете настроить tinyproxy для приема соединений только с определенных хостов или IP-адресов. Если у вас дома статический IP-адрес, проблема решена.
Если у вас динамический адрес, вы можете согласиться принимать соединения от части вашего домашнего соединения. Например. ваш интернет-провайдер устанавливает ваше домашнее соединение таким образом, чтобы оно выглядело как 192-192-192-192-area1-san-fran-cal-usa, вы можете настроить tinyproxy для приема соединений только от area1-san-fran-cal-usa (тем самым игнорируя IP часть связи). Риск состоит в том, что другие подписчики area1 обнаружат ваш прокси и начнут им пользоваться.
Это то, что я использую для своего прокси-сервера VPS, и он отлично работает, тем более, что я нахожусь в относительно небольшой зоне обслуживания моего интернет-провайдера. У меня никогда не было другого пользователя, использующего прокси, но я знаю, что это риск (я готов пойти на это - я всегда могу изменить tinyproxy, если обнаружу, что кто-то другой его использует).
Может быть, но просто может быть хорошим выбором в такой ситуации, чтобы использовать какое-то общее решение. Поэтому я рекомендую squid как можно чаще, когда кому-то нужен прокси-сервис. Причин много: документация есть повсюду, это общее решение для базовых и гораздо более конкретных запросов, и, что наиболее важно, мой опыт показал, что клиенты с простыми запросами в мгновение ока превращались в клиентов с очень сложными запросами в отношении службы прокси.
Самый простой способ просто направить весь ваш HTTP / HTTPS-трафик через ваш Linux-сервер на работе - это использовать динамический ssh-туннель. Для этого не требуется никакой настройки на вашем сервере в центре обработки данных - при условии, что на нем уже есть ssh-сервер, на котором не отключено SSH-туннелирование.
Динамическое SSH-туннелирование - это функция, присутствующая во многих SSH-клиентах, в том числе openssh и PuTTY, где SSH-клиенты устанавливают «поддельный SOCKS-прокси» на машине, на которой работает клиент, которая затем переводит эти SOCKS-запросы в SSH-туннелирование, выходя из него. в большой Интернет с вашего сервера.
Если вы используете openssh в качестве клиента, вы должны использовать ssh -D 3128 yourserver.example.com
, а затем настройте свой веб-браузер на использование localhost: 3128 в качестве прокси-сервера SOCKS.
PuTTY также сделает это, посмотрите в разделе Connection -> SSH -> Tunnels и добавьте динамический перенаправленный порт (введите порт источника, но оставьте поле Destination пустым), а затем настройте свой браузер так, чтобы он указывал на localhost: 3128 как SOCKS прокси, как и с OpenSSH.
Самый простой способ сделать это - через туннель SSH:
ssh -D 8080 yourserver.com
Теперь вы можете указать в браузере прокси (SOCKS) localhost:8080
.
SSH будет связывать 8080 только с 127.0.0.1 (и :: 1), поэтому никто другой не сможет его использовать.
Если вы работаете с окнами, вы также можете использовать Putty для создания этого туннеля.
Или, если вы хотите настроить простой HTTP-прокси на своем сервере, попробуйте https://banu.com/tinyproxy/ Его очень просто настроить, легко использовать и есть хороший набор функций ...