一键解决 Mac 连接 L2TP 时无法正常访问网络

原因

在使用L2TP协议连接公司内网时,某些网络环境或硬件(如M1芯片的Mac、特定USB扩展坞)可能与硬件校验和(Hardware Checksum)功能存在兼容性问题,导致以下现象:

  1. 连接后能ping通内网地址,但无法访问具体服务(如HTTP)
  2. 使用USB扩展坞时可能出现拨号失败或无法上网的问题

解决方案

禁用硬件校验和后,系统会改用软件计算校验和,从而规避兼容性问题

方案一、 在命令行输入以下命令即可1

sudo sysctl net.link.generic.system.hwcksum_tx=0
sudo sysctl net.link.generic.system.hwcksum_rx=0

方案二、利用脚本来完成开关工作

  1. 用vim或者任意文本编辑器写一个vpn_set.sh的脚本
vim vpn_set.sh
  1. 复制以下代码并保存
#!/bin/bash

# 交互式校验和切换脚本
# 需使用sudo运行

function show_menu() {
    clear
    echo "============================="
    echo "  硬件校验和切换工具"
    echo "============================="
    echo "当前状态:"
    sysctl -n net.link.generic.system.hwcksum_tx | awk '{print "发送方向(TX): " ($1 == 1 ? "已启用" : "已禁用")}'
    sysctl -n net.link.generic.system.hwcksum_rx | awk '{print "接收方向(RX): " ($1 == 1 ? "已启用" : "已禁用")}'
    echo "-----------------------------"
    echo "1. 启用硬件校验和(默认安全)"
    echo "2. 禁用硬件校验和(用于VPN)"
    echo "3. 退出"
    echo "============================="
}

function apply_setting() {
    # 执行设置
    for setting in "net.link.generic.system.hwcksum_tx" "net.link.generic.system.hwcksum_rx"; do
        sysctl -w "${setting}=$1" > /dev/null
    done

    # 结果提示
    clear
    [ "$1" -eq 0 ] && action="禁用" || action="启用"
    echo "操作完成:${action}硬件校验和"
    sysctl -a | grep -E 'net.link.generic.system.hwcksum_(tx|rx)'
    echo "-----------------------------"
    read -n 1 -s -r -p "按任意键返回菜单..."
}

# 权限检查
if [ "$EUID" -ne 0 ]; then
    echo "错误:请使用 sudo 运行此脚本"
    exit 1
fi

# 主循环
while true; do
    show_menu
    read -p "请输入选择 [1-3]: " choice
    
    case $choice in
        1) apply_setting 1 ;;
        2) apply_setting 0 ;;
        3) 
            echo "退出脚本"
            exit 0
            ;;
        *) 
            echo "无效输入,请重新选择!"
            sleep 1.5
            ;;
    esac
done

  1. 授予运行权限并运行即可
sudo chmod +x vpn_set.sh
sudo ./vpn_set.sh

  1. 此方式只能临时生效重启后失效, 禁用硬件校验和可能降低网络性能(因软件计算开销增大),并可能增加数据包错误风险。因此,建议在不需要时应该恢复默认值 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值