Вопрос или проблема
Я установил OpenVPN на машину с Ubuntu дома, но когда я подключаюсь к ней, весь мой сетевой трафик проходит через нее. Я не хочу, чтобы это происходило.
Я хотел бы видеть только локальную сеть LAN, а не маршрутизировать весь трафик.
Как это можно сделать?
Спасибо!
Чтобы свести комментарии Тома Яна к ответу:
- убедитесь, что в конфигурации клиента нет строк
redirect-gateway
- добавьте следующую строку, чтобы отфильтровать любые настройки
redirect-gateway
, полученные с сервера VPN:
pull-filter ignore redirect-gateway
Этот метод задокументирован на https://community.openvpn.net/openvpn/wiki/IgnoreRedirectGateway, но там только упоминается параметр командной строки --pull-filter
, а не то, как добавить его в конфигурационный файл.
Для полноты, также упоминается два других метода:
- Игнорировать все маршруты с
route-noexec
илиroute-nopull
- Переопределить их с набором директив
route
. Это должно сработать, даже если использовались ручные маршруты, а неredirect-gateway def1
(предоставив четыре подсети/2
, которые переопределяют два маршрута/1
изdef1
):
route 0.0.0.0 192.0.0.0 net_gateway route 64.0.0.0 192.0.0.0 net_gateway route 128.0.0.0 192.0.0.0 net_gateway route 192.0.0.0 192.0.0.0 net_gateway
Если вы используете машину с Ubuntu в качестве сервера OpenVpn, вы можете найти конфигурацию сервера OpenVpn либо по адресу
/etc/openvpn/server.conf
или
/etc/openvpn/server/server.conf
если вы откроете этот файл, он будет выглядеть примерно так
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 8.8.8.8"
push "redirect-gateway def1 bypass-dhcp"
dh none
ecdh-curve prime256v1
tls-crypt tls-crypt.key
crl-verify crl.pem
ca ca.crt
cert server_3BYLUHGJfabF8i1.crt
key server_3BYLUHGJfabF8i1.key
auth SHA256
cipher AES-128-GCM
ncp-ciphers AES-128-GCM
tls-server
tls-version-min 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
client-config-dir /etc/openvpn/ccd
status /var/log/openvpn/status.log
verb 3
Вы должны закомментировать ## push "redirect-gateway def1 bypass-dhcp"
и добавить конкретные подсети трафика, которые вы хотите пропускать через этот VPN-сервер, например
push "route 10.2.2.100 255.255.255.255" ## какой-то интернет-сервер
push "route 54.201.1.19 255.255.255.255" ##example.com
после сохранения этого конфигурационного файла теперь вы можете перезапустить службу OPENVPN
systemctl restart [email protected]
Может быть полезно перейти в настройки VPN в настройках сети Ubuntu. Затем перейдите к IPv4 и отключите Автоматически. Похоже, это зависит от настроек конфигурации сервера VPN, но с некоторыми серверами изменение этой настройки на стороне клиента может предотвратить отправку всего вашего трафика через сервер VPN.
Я обнаружил это в Ubuntu 24.04.1. После добавления настройки клиента openVPN в менеджер сети через “nmcli connection import type openvpn file myOpenVPNsetup.ovpn”, включив нижеуказанную опцию, не весь трафик будет проходить через сервер VPN. “использовать это соединение только для ресурсов в его сети”, в то время как другой метод, такой как “pull-filter ignore redirect-gateway”, в этом случае не работает.
Настройка openVPN в менеджере сети Ubuntu 24.04.1:
Ответ или решение
Как отключить маршрутизацию всего сетевого трафика через OpenVPN на Ubuntu
Если вы настроили OpenVPN на своем компьютере с Ubuntu и обнаружили, что весь сетевой трафик перенаправляется через VPN, но вы хотите использовать VPN только для доступа к локальной сети, следуйте данным рекомендациям. Я опишу несколько методов, которые помогут вам отключить маршрутизацию всего трафика через OpenVPN.
1. Изменение конфигурации клиента OpenVPN
Первым шагом будет редактирование конфигурационного файла клиента OpenVPN. Вам необходимо убедиться, что нет строк, содержащих redirect-gateway
. Чтобы избежать перенаправления всего интернет-трафика через VPN, выполните следующие шаги:
- Откройте конфигурационный файл клиента
.ovpn
с помощью текстового редактора. Обычно это файл, который вы используете для подключения к вашему VPN-серверу. - Убедитесь, что в нем отсутствует строка с
redirect-gateway
. Если она есть, удалите её. -
Добавьте следующую строку, чтобы игнорировать настройки перенаправления, которые могут поступать с сервера:
pull-filter ignore redirect-gateway
2. Настройки сервера OpenVPN
Если у вас есть доступ к серверу OpenVPN, вам следует проверить его конфигурацию. Откройте конфигурационный файл сервера (server.conf
), который обычно находится по следующему пути:
/etc/openvpn/server.conf
- или
/etc/openvpn/server/server.conf
В этом файле найдите и закомментируйте строку, которая содержит push "redirect-gateway def1 bypass-dhcp"
:
## push "redirect-gateway def1 bypass-dhcp"
Вместо этого добавьте конкретные маршруты для сетевых ресурсов, доступ к которым вы хотите предоставить через VPN. Например:
push "route 10.2.2.100 255.255.255.255" # Пример IP-адреса
push "route 54.201.1.19 255.255.255.255" # Пример сайта
После внесения изменений перезапустите службу OpenVPN:
sudo systemctl restart openvpn
3. Изменение настроек сети в Ubuntu
Если вы используете графический интерфейс, можно изменить настройки в таблице сетей Ubuntu:
- Перейдите в
Настройки
→Сеть
. - Найдите вашу VPN-соединение и откройте его настройки.
- Перейдите к вкладке IPv4 и выключите опцию Автоматически. Это может помочь вам предотвратить использование VPN для всего интернет-трафика, в зависимости от конфигурации VPN-сервера.
4. Использование сетевого менеджера
Если вы используете Ubuntu 24.04.1 и управляете вашим VPN через Network Manager:
- При создании или редактировании подключения убедитесь, что активирована опция
Использовать это соединение только для ресурсов в его сети
. Это предотвратит маршрутизацию всего трафика через VPN.
Заключение
Следуя изложенным шагам, вы сможете настроить OpenVPN так, чтобы он не перенаправлял весь ваш сетевой трафик. Эти методы можно комбинировать для достижения наилучшего результата. Убедитесь, что ваше подключение к VPN работает так, как вы хотите, проверив доступ к различным сетевым ресурсам.
Если вам требуется дальнейшая помощь, не стесняйтесь обращаться за поддержкой.