从 Linux 连接到 VPN IKEv2 服务器时无法访问某些网站

从 Linux 连接到 VPN IKEv2 服务器时无法访问某些网站

我有一个在 Windows 2019 上托管并在 IKEv2 上配置的 VPN 服务器,所有客户端上的一切运行良好,但是在 Linux 客户端上我还有最后一点需要调整,因此为了澄清起见,我使用以下位于调度程序中的脚本来调整 MTU 并添加必要的路由(在连接为 L2TP 的情况下没有必要):

#!/bin/bash
  
set -xv

DEFAULT_MTU=1500
MTU=1400

INTERFACE=$(ip route | grep -v linkdown | awk '$1 == "default" {if (!min || $5 < min) {min=$5; iface=$5}} END {print iface}')

if [[ ! "$1" =~ ^nm-xfrm-.* ]] && [[ ! "$1" =~ tun.* ]]; then
    echo "$1 is not a vpn interface. Exit script"
    exit 0
fi

if [ ! -d /sys/class/net/tun0 ]; then
    for itf in $(ls /sys/class/net/ | grep -E -v '^(lo|ppp0)$' ); do
        sudo ip link set dev "$itf" mtu "$DEFAULT_MTU"
    done
fi

case "$2" in
up|vpn-up)
    ip link set dev "$INTERFACE" mtu "$MTU"
    ip link set dev $1 mtu "$MTU"
    ip route add to default dev $1 proto static scope link metric 50
    ip route add to XX.XX.XX.XX/XX dev $1 proto static scope link metric 50 table 220
    ;;

down|vpn-down)
    for itf in $(ls /sys/class/net/ | grep -E -v '^(lo|ppp0)$' ); do
        ip link set dev "$itf" mtu "$DEFAULT_MTU"
    done
    ;;
    *)
    exit 0
    ;;
esac

我对 docker 机器使用路由表 220。

事实证明,如果我通过 wifi 连接,一切都很正常,通过浏览器和 curl 访问网站也很顺利,但是,只要我将 USB-C 适配器连接到以太网端口,某些网站就不再响应。

我最初以为是 MTU 问题,但我想知道是否没有其他原因导致该问题,或者可能是不可能的。

我指定将 strongswan 包与 NetworkManager 一起使用。

相关内容