Dam*_*nal 25 ipv6 network-manager vpn networking openvpn
我正在通过双栈上的 OpenVPN 网络管理器插件使用 OpenVPN 客户端(意味着为 IPv4 和 IPv6 连接配置)Ubuntu 13.10 以通过 VPN(重定向网关)重定向所有流量。它通常工作正常。
但是,由于系统首选 IPv6 这一事实,VPN 会“泄漏”,并且当连接到也可通过 IPv6 访问的站点(如 Google 或维基百科)时,浏览器会直接连接。
一种解决方案是配置 OpenVPN 服务器以提供 IPv6 连接。虽然可以使用 OpenVPN,但网络管理器插件目前不支持它。
由于 VPN 上的 IPv6 连接不是绝对必要的,我想在连接到 OpenVPN 服务器时简单地禁用客户端上的 IPv6。是否可以?如果是这样,我该怎么做?
Ale*_*ura 17
将此添加到引导加载程序中的内核行以完全禁用 IPv6:
ipv6.disable=1
Run Code Online (Sandbox Code Playgroud)
如果您使用 Grub(如果您还没有安装自己的引导加载程序,那么您正在使用 Grub),您的内核行应该如下所示:
linux /boot/vmlinuz-linux root=UUID=978e3e81-8048-4ae1-8a06-aa727458e8ff ipv6.disable=1
Run Code Online (Sandbox Code Playgroud)
向内核行添加内容的推荐方法是将所需的内核参数添加到文件中的GRUB_CMDLINE_LINUX_DEFAULT变量中/etc/default/grub:
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"
Run Code Online (Sandbox Code Playgroud)
将其添加到 后/etc/default/grub,运行以下命令以重新生成您的grub.cfg:
sudo grub-mkconfig -o /boot/grub/grub.cfg
Run Code Online (Sandbox Code Playgroud)
或者,添加ipv6.disable_ipv6=1将保持 IPv6 堆栈正常运行,但不会将 IPv6 地址分配给您的任何网络设备。
要通过 sysctl 禁用 IPv6,请将以下内容放入您的/etc/sysctl.conf文件中:
net.ipv6.conf.all.disable_ipv6 = 1
Run Code Online (Sandbox Code Playgroud)
不要忘记注释掉/etc/hosts文件中的任何 IPv6 主机:
#::1 localhost.localdomain localhost
Run Code Online (Sandbox Code Playgroud)
笔记
sysctl 方法可能需要重新启动,而内核行方法肯定需要重新启动。
要暂时禁用IPv6:
sysctl -w net.ipv6.conf.all.disable_ipv6=1
要暂时启用它:
sysctl -w net.ipv6.conf.all.disable_ipv6=0
因此,如果您需要在给定条件下禁用 ipv6,请在以下几行的某处编写一个 bash 脚本:
ipv6.disable=1
Run Code Online (Sandbox Code Playgroud)
笔记
/etc/hosts对于此方法,您可能还需要禁用文件中的任何 ipv6 主机,就像我在上一个方法中推荐的那样。
小智 7
您可以通过将 IPv6 选项 ipv6.method 设置为“忽略” ,在客户端级别为特定网络管理器连接禁用 ipv6
// SOP:使用固定 IP 192.168.0.95 重新创建我的 LAN 连接到以太网。````
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
Run Code Online (Sandbox Code Playgroud)
````
小智 5
我认为在修改内核 tcp 堆栈的客户端文件(编辑 client_conf_file.ovpn)中禁用 ip6 的侵入性较小。
打开conf_file.ovpn并添加以下行:
#disable ipv6
#https://community.openvpn.net/openvpn/ticket/849
pull-filter ignore "ifconfig-ipv6 "
pull-filter ignore "route-ipv6 "
Run Code Online (Sandbox Code Playgroud)
我试过了,之后ipv6就消失了。
前。我运行ip a |grep global,结果是:
inet 192.168.43.39/24 brd 192.168.43.255 scope global dynamic noprefixroute wlan0
inet 10.8.0.6/24 brd 10.8.0.255 scope global tun0
inet6 2a00:1630:66:16::1004/64 scope global
Run Code Online (Sandbox Code Playgroud)
后。我运行ip a |grep global,结果是:
inet 192.168.1.14/24 brd 192.168.1.255 scope global dynamic noprefixroute wlan0
inet 10.8.0.7/24 brd 10.8.0.255 scope global tun0
Run Code Online (Sandbox Code Playgroud)