Как отключить IPv6 при подключении к серверу OpenVPN с помощью Network Manager в системе с двумя стеками?

Я использую клиент OpenVPN через плагин OpenVPN Network Manager в двойном стеке (то есть настроен как для подключения IPv4, так и для подключения к IPv6) Ubuntu 13.10 для перенаправления всего трафика через VPN (redirect-gateway). Как правило, работает нормально.

Однако из-за того, что система предпочитает IPv6, VPN «просачивается», и при подключении к сайтам, которые также доступны через IPv6 (например, Google или Википедия), браузер подключается напрямую.

Одним из решений было бы настроить сервер OpenVPN для обеспечения подключения IPv6. Хотя это возможно с OpenVPN, плагин для Network Manager в настоящее время не поддерживает его.

Поскольку подключение IPv6 через VPN не является строго необходимым, Я хотел бы просто отключить IPv6 на клиенте при подключении к серверу OpenVPN. Является ли это возможным? Если так, как я могу это сделать?

20
задан 18.05.2020, 03:19

2 ответа

Добавьте это к Вашему строка ядра в Вашем загрузчике для отключения IPv6 в целом:

ipv6.disable=1

при использовании Личинки (если Вы не установили свой собственный загрузчик, тогда Вы используете Личинку), Ваша строка ядра должна выглядеть примерно так:

linux /boot/vmlinuz-linux root=UUID=978e3e81-8048-4ae1-8a06-aa727458e8ff ipv6.disable=1

рекомендуемый подход, для добавления чего-то к строке ядра, должен добавить желаемый параметр ядра к GRUB_CMDLINE_LINUX_DEFAULT переменная в /etc/default/grub файл:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"

, Как только Вы добавили, что к [1 111], выполнял следующую команду для регенерации Вашего grub.cfg:

sudo grub-mkconfig -o /boot/grub/grub.cfg

, С другой стороны, добавление ipv6.disable_ipv6=1 вместо этого сохранит стек IPv6 функциональным, но не присвоит адреса IPv6 ни одному из Ваших сетевых устройств.

ИЛИ

Для отключения IPv6 через sysctl поместите следующее в Ваш /etc/sysctl.conf файл:

net.ipv6.conf.all.disable_ipv6 = 1

не забывают комментировать любые хосты IPv6 в Вашем /etc/hosts файл:

#::1        localhost.localdomain   localhost

ПРИМЕЧАНИЕ

перезагрузка может требоваться для sysctl метода, и перезагрузка определенно требуется для подхода строки ядра.

ИЛИ

К [1 119] временно отключают ipv6:

sysctl -w net.ipv6.conf.all.disable_ipv6=1

К [1 120] временно включают его:

sysctl -w net.ipv6.conf.all.disable_ipv6=0

Поэтому, если необходимо отключить ipv6 на, учитывая [1 121] условие , затем запишите сценарий удара где-нибудь вдоль этих строк:

#!/bin/bash
ipv6_disabled="$(sysctl net.ipv6.conf.all.disable_ipv6 | awk '{print $NF}')"
if (connected_to_vpn &> /dev/null); then
  (($ipv6_disabled)) || sysctl -w net.ipv6.conf.all.disable_ipv6=1
else
  (($ipv6_disabled)) && sysctl -w net.ipv6.conf.all.disable_ipv6=0
fi

ПРИМЕЧАНИЕ

Вы, возможно, должны были бы отключить любые хосты ipv6 в Вашем /etc/hosts файл для этого метода также, как я рекомендовал в предыдущем методе.

0
ответ дан 18.05.2020, 03:20
  • 1
    @DamnTerminal, таким образом, Вы только хотите отключить его когда you' ре соединилось с Вашей VPN, как в отключении это в масштабе всей системы прекрасно, пока это только происходит в то время как you' ре подключено к Вашей VPN? – pzaenger 18.05.2020, 03:20
  • 2
    К сожалению, это решение (sysctl) не повторно включает IPv6 для WiFi правильно. Необходимо снова соединиться с точкой доступа для включения его. – Wan Bachtiar 18.05.2020, 03:21
  • 3
    Да, хорошо. Но я хочу отключить IPv6 при соединении с VPN с помощью Администратора сети, не уничтожить его полностью в моей системе. Возможно, я должен был сделать его более ясным. – QHarr 18.05.2020, 03:21
  • 4
    Почему downvote? – Ryan Avella 18.05.2020, 03:22
  • 5
    @DamnTerminal я обновил свой ответ для включения примера того, как отключить ipv6 с помощью сценария удара, который проверит условие. Вы, вероятно, могли использовать NetworkManager' s интерфейс командной строки: nmcli, чтобы проверить, если Ваше связанное с Вашей VPN; если это doesn' t работают тогда I' m верный there' s утилита сети командной строки там, которая предоставит доступ к той информации. – Jonathan Leffler 18.05.2020, 03:22

Можно отключить ipv6 на клиентском уровне для определенного Администратора сети соединение путем установки опции ipv6.method IPv6 "проигнорировать"

//SOP: Воссоздайте мое соединение LAN с помощью ЗАФИКСИРОВАННОГО IP 192.168.0.95 к Ethernet''''.

nmcli connection delete lan-ethernet
nmcli connection add con-name lan-ethernet \
    ifname enp0s31f6 \
    type ethernet \
    ip4 192.168.0.95/24  gw4 192.168.0.1

nmcli connection modify lan-ethernet  ipv6.method "ignore"
nmcli connection modify lan-ethernet  ipv4.dns "8.8.8.8 8.8.4.4"
nmcli connection up lan-ethernet
sleep 1
nmcli device status
nmcli connection show
ifconfig enp0s31f6

''''

0
ответ дан 18.05.2020, 03:20
  • 1
    К сожалению, это не имеет никакого эффекта для соединений VPN. – mortysporty 18.05.2020, 03:20

Теги

Похожие вопросы