Вопрос или проблема
OpenVPN соединение убивает интернет на OSX
У меня установлен сервер Ubuntu 14.04 в виртуальной машине VirtualBox, работающей на OS X 10.10. Моя цель – настроить OpenVPN на Ubuntu, чтобы получить доступ через хост-систему. Это пробный запуск установки OpenVPN на удаленном сервере.
Для этого я следовал этому уроку: https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-14-04
Все прошло хорошо, и я сначала мог подключиться к серверу через Tunnelblick. Однако через 60 секунд Tunnelblick сообщает мне, что я мог потерять интернет-соединение из-за неправильно настроенного конфигурационного файла OpenVPN. Поэтому я отключаюсь и останавливаю Tunnelblick.
К сожалению, я больше не могу получить доступ к своей ВМ с OSX. Команда tracert показывает, что он сначала пытается подключиться через мой роутер, а затем ко интернет-провайдеру, что не нужно. Обычный способ – это всего один переход к IP адресу, как указано в /etc/hosts
После перезагрузки мака все снова в порядке. Я могу воспроизвести это, пытаясь снова подключиться через Tunnelblick. То же самое, и я должен перезагрузить.
У кого-нибудь есть идея, как это исправить?
Правильный ответ упоминается в комментарии от dotvotdot.
В соответствии с этой ссылкой
Добавьте следующую директиву в файл конфигурации сервера:
push "redirect-gateway def1"
Если ваша настройка VPN осуществляется через беспроводную сеть, где все клиенты и сервер находятся в одной беспроводной подсети, добавьте флаг local:
push "redirect-gateway local def1"
Передача опции redirect-gateway клиентам приведет к тому, что весь сетевой трафик, исходящий с клиентских машин, будет проходить через сервер OpenVPN. Сервер нужно будет настроить для обработки этого трафика каким-либо образом, например, используя NAT для выхода в интернет или маршрутизируя его через HTTP-прокси серверного сайта.
На Linux вы можете использовать такую команду, чтобы NAT-ировать трафик VPN-клиента в интернет:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Эта команда предполагает, что подсеть VPN составляет 10.8.0.0/24 (взято из директивы server в конфигурации сервера OpenVPN), и что локальный интерфейс Ethernet – eth0.
Ответ или решение
Для того чтобы решить проблему с потерей интернет-соединения на macOS при использовании OpenVPN, нужно внести изменения в конфигурацию вашего сервера OpenVPN. Судя по вашему описанию, вы столкнулись с ситуацией, когда после подключения к VPN теряется возможность доступа к интернету, и требуется перезагрузка системы для восстановления соединения.
Шаги для решения проблемы:
-
Изменение конфигурации сервера OpenVPN.
Вам нужно добавить следующую директиву в файл конфигурации вашего OpenVPN-сервера (например, вserver.conf
):push "redirect-gateway def1"
Если ваша настройка VPN осуществляется через беспроводную сеть, где все клиенты и сервер находятся в одной подсети, добавьте флаг
local
:push "redirect-gateway local def1"
-
Настройка NAT на сервере OpenVPN.
Чтобы клиентский трафик мог выходить в интернет, необходимо настроить NAT (Network Address Translation) на сервере OpenVPN. Для этого выполните следующую команду:iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Здесь
10.8.0.0/24
— это подсеть вашего VPN (указанная в директивеserver
конфигурации OpenVPN), аeth0
— это интерфейс вашей локальной сети, через который осуществляется выход в интернет. Убедитесь, что вы используете правильное имя интерфейса. Вы можете узнать название интерфейса с помощью командыifconfig
. -
Проверка конфигураций клиента.
Убедитесь, что в клиентской конфигурации Tunnelblick также нет настроек, которые блокируют трафик. В частности, проверьте параметры, касающиеся маршрутизации. Если необходимо, попробуйте удалить параметры, отвечающие за маршрутизацию трафика на VPN. -
Тестирование соединения.
После внесения изменений в конфигурацию перезапустите сервер OpenVPN и попробуйте подключиться снова через Tunnelblick. Проверьте доступность интернет-ресурсов и соединение с вашим виртуальным сервером в VirtualBox. - Дополнительные настройки безопасности.
Если вы все еще сталкиваетесь с проблемами, возможно, стоит обратить внимание на настройки брандмауэра на вашем Ubuntu-сервере или в macOS, которые могут блокировать определенные соединения.
Заключение:
После выполнения вышеуказанных шагов ваш OpenVPN-сервер должен корректно обрабатывать трафик и не вызывать проблемы с интернет-соединением на macOS. Обязательно проведите тесты, чтобы убедиться в работоспособности всей инфраструктуры и наличии доступа как к локальным ресурсам, так и к интернету через VPN.