Я пытаюсь использовать сервер Google Compute Engine в качестве VPN-сервера для всего своего трафика (я живу в России, у нас есть некоторые проблемы с цензурой здесь).
Существует мини-учебник по VPN на GCE , но он касается сети между двумя серверами внутри GCE, а не с OpenVPN.
Я сделал все шаги из другого урока, о настройке VPN с OpenVPN на Debian , я могу подключиться к VPN с клиента, но потом я не могу открыть соединения (даже не могу пропинговать Google). На сервере я могу пинговать и скачивать все как обычно.
У меня есть VPN на Linode с той же настройкой, и он работает нормально. Так что проблема в правилах сетевой маршрутизации или межсетевого экрана GCE.
Я перепробовал много вариантов, но ничего не работает. Пожалуйста, посмотрите на настройки и скажите, что мне следует изменить.
// строки конфигурации удалены, потому что проблема решена //
Ответы:
Прежде всего, спасибо @Shivox за его ответ .
И вот быстрые инструкции:
sudo su
apt-key update && apt-get update && apt-get -y upgrade && apt-get -y install python-software-properties && apt-get -y install software-properties-common && add-apt-repository -y ppa:pritunl && apt-get update && apt-get -y install pritunl
https://instance_ip:9700
pritunl
имя пользователя и парольВ качестве клиентов я использую Visidity для OS X и OpenVPN connect для iOS. В программе «Вязкость» включите параметр «Отправить весь трафик через VPN-соединение» на вкладке «Сеть».
источник
Вы можете решить проблему невозможности просмотра веб-страниц через VPN, несмотря на то, что вы можете пропинговать, traceroute ... одним из двух следующих способов:
Во-первых, вы можете использовать протокол TCP вместо UDP, изменив «proto udp» на «proto tcp» в клиентских и серверных файлах conf.
Во-вторых, вы можете использовать устройство tap вместо tun, изменив «dev tun» на «dev tap» в клиентских и серверных файлах conf.
Не уверен, что проблема, хотя, кажется, это проблема с конца Google.
источник
Помните, что Google VPC отбрасывает пакеты, которые имеют
source_ip
не внутренний IP-адрес виртуальной машины, имеющей внешний IP-адрес.Этот документ https://cloud.google.com/compute/docs/vpc/advanced-vpc гласит:
Таким образом, если ваше openVPN просто пересылает пакеты из другой сети, то пакеты на общедоступные внутренние будут отбрасываться, поскольку
source_ip
не соответствуют внутренним IP- адресам существующих виртуальных машин . По этой причине вам нужно NAT пакеты, выходящие из вашей локальной сети, например, на вашем узле VPN.«Pritunl», упомянутый в ответе OZ_, работает, потому что он настраивает NAT автоматически.
источник
Это не совсем ответ, но сайт не позволил мне добавить его в качестве комментария к вашему вопросу.
Тем не менее, у меня есть почти та же конфигурация, что вы подробно описали выше (я не настроил dnsmaq на жестком сервере)
К сожалению, VPN работает не так, как ожидалось. Я могу разрешить адрес, пропинговать некоторые интернет-хосты и даже сделать полный след при подключении к VPN. Однако, когда я открываю браузер и перехожу на сайт, соединение очень медленное. Я не знаю, что может повлиять на соединение, но это действительно странная проблема.
Может быть, кто-то из Google может помочь нам узнать, что происходит.
PS 1. Как уже предлагали другие люди, можете ли вы проверить, включена ли пересылка ip? Для меня единственный способ убедиться, что значение net.ipv4.ip_forward было правильно восстановлено после перезагрузки, было после того, как я использовал пользовательское правило в /etc/sysctl.d
Например, вы можете добавить правило, используя следующую команду:
PS 2. Если переадресация работает для вас, можете ли вы проверить маршрут трассировки к внешнему хосту при подключении к VPN ?. Вывод, который я получаю, когда я делаю это, немного странный (почему на одном и том же IP-адресе несколько прыжков):
PS 3. Единственное, что, кажется, работает должным образом, это то, что VPN использует внешний IP от моего хоста для доступа в Интернет.
источник
Редактировать
/etc/sysctl.conf
, комментируя#net.ipv4.ip_forward=1
Это должно позволить OpenVPN направлять ваш трафик.
источник
Вам необходимо включить IP-пересылку для вашего экземпляра виртуальной машины в облаке Google, иначе пакеты не будут доставлены к вашей виртуальной машине Обратите внимание, что это отдельно от того,
net.ipv4.ip_forward = 1
что вы можете установить в своей виртуальной машине.Переадресация IP может быть установлена только один раз перед созданием виртуальной машины и не может быть изменена впоследствии. Чтобы включить его для новой виртуальной машины, нажмите
Management, security, disks, networking, sole tenancy
:Затем на
Networking
вкладке нажмитеNetwork Interface
и установите IP Forwarding вON
:источник
Вам нужно добавить правило, разрешающее трафик для самого OpenVPN:
источник
О сети.
1) Включить весь трафик из подсети OpenVPN (например, 10.8.0.0/24) на консоли
2) Я настоятельно рекомендую Вам добавить Маскарад в свою сеть.
3) Не забудьте включить маршрутизацию пакетов в ядре
а) один раз
б) навсегда в /etc/sysctl.conf:
источник