Итак, я пытаюсь запустить прокси-сервер Squid на одной машине вместе с VPN-соединением. Я хочу, чтобы весь трафик проходил через прокси-сервер Squad Proxy через VPN для исходящего трафика. т.е. Рабочий стол -> (Прокси-сервер Squid -> VPN)
Цель состоит в том, чтобы разрешить моему рабочему столу выборочное туннелирование через VPN. Так что обмен мгновенными сообщениями и тому подобное, которым не нужно работать через VPN, могут проходить через мой обычный трафик. Обычно я использую прокси-сервер SSH, но в настоящее время я вынужден использовать VPN для входа в офис, а прокси-сервер Squid, похоже, может сработать проще всего для того, что мне нужно.
EDIT> Поймите, я забыл указать, с какой проблемой я столкнулся. У меня есть установка Squid, и я убедился, что она работает, но как только я подключусь к VPN. Все запросы к Squid принимаются, но Squid не может сделать запрос через VPN. Таким образом, клиент просто сидит там.
Похоже, проблема с маршрутизацией. При подключении к VPN шлюз по умолчанию не может быть изменен автоматически.
Ну, нужна дополнительная информация:
войдите в свой ящик squid / vpn. Включите vpn. Вы можете получить доступ к любому внешнему адресу? Можете ли вы подключиться к конечной точке vpn и сети конечной точки vpn?
Что это за vpn (openvpn / pptp / etc)?
Как выглядит таблица маршрутизации до и после включения vpn? В Linux вы можете использовать таблицу маршрутизации, используя /sbin/route -n
или ip route show
Я делаю нечто подобное. Я использую две штуки:
$ cat bin/openproxy
#!/bin/bash
ssh -C -o ServerAliveInterval=150 -L 3128:proxy:3128 gateway.company.com
Затем в Firefox я использую FoxyProxy, чтобы использовать localhost: 3128 в качестве прокси для машин в * .company.com.
Это работает практически для всего, что мне нужно.
Это то, что вы пытаетесь сделать?
Это может быть немного сложнее, чем исходный вопрос, но я пытаюсь сделать то же самое с Squid, где у меня уже есть VPN-туннель, настроенный для трафика передачи, но трафик администратора для пользовательского интерфейса http, который управляет передачей, обратно проксируется Nginx чтобы он был доступен хостам в одной локальной сети. Это подход «разделенного туннеля», потому что я хочу, чтобы только одни приложения использовали туннель, а другие нет, поэтому у меня есть правила iptables, а также маршруты, чтобы облегчить это, принимая трафик от пользователя, который использует Transmission и направляет этот трафик в tun1, виртуальный сетевой адаптер VPN, но когда VPN не работает, трафик не отправляется в качестве меры предосторожности.
Я хочу применить тот же принцип к прокси-серверу Squid на этом же хосте, но в этом случае добавить пользователя, который запускает Squid как (прокси), чтобы вести себя таким же образом. Я считаю, что могу реверсировать прокси-трафик из веб-браузеров, который будет перенаправлять прокси-трафик в Squid, который, среди прочего, будет пересылать трафик через VPN-туннель. Я не совсем уверен, как это будет работать, но у меня есть несколько возможных подходов.
Чтобы узнать больше о том, что я пытаюсь, взгляните на мой Сообщение Reddit. Я обновлю этот ответ (поскольку он фактически оставляет вам больше вопросов, чем ответов в его нынешнем виде), так что это действительно полезно для тех, кто пытается сделать то же самое!