Fedora 25,pptp 连接但无法工作,传输的数据包过多

Fedora 25,pptp 连接但无法工作,传输的数据包过多

更新到 Fedora 25 后,我的 PPTP 连接之一奇怪地工作了。远程网络不可用。

已连接,成功获取远程网络IP地址。连接时没有什么可以在远程网络中使用,但互联网工作正常。几分钟后,连接自行断开。

我注意到奇怪的事情,当 pptp 连接打开时,传输的数据太多TX packets

ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1400
        inet 192.168.1.96  netmask 255.255.255.255  destination ___.__.___.___
        ppp  txqueuelen 3  (Point-to-Point Protocol)
        RX packets 10  bytes 172 (172.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 9864041  bytes 5842982146 (5.4 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

在 10-15 秒内,它会显示多达 5.4 GiB 的数据包。它生长得非常快。

如果禁用firewalld,则相同。

我正在使用网络管理器连接到 pptp。

[root@c0rp ~]# lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: Fedora
Description:    Fedora release 25 (Twenty Five)
Release:    25
Codename:   TwentyFive
[root@c0rp ~]# uname -a
Linux c0rp 4.10.8-200.fc25.x86_64 #1 SMP Fri Mar 31 13:20:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

有人可以帮我调查这个问题吗?


提供解决方案后更新

route我发现新创建的路由使用命令指向自身。 pptp 连接后准确检查:

xxx.xxx.xxx.xxx 0.0.0.0         255.255.255.255 UH    50     0        0 ppp0

我所做的是:

  1. 删除 从网络设备中删除分配的地址
  2. 添加回分配的地址以及替换对等地址

一切都与链接中指出的完全一样。

在此输入图像描述

最后我将这两个步骤添加到dispatcher.d脚本中:

#!/bin/bash  

INTERFACE=$1
ACTION=$2
SSID="Your vpn connection name in Network Manager"

if [[ $CONNECTION_ID == "$SSID" ]]; then
        if [[ $ACTION = "vpn-up" ]]; then
                IP4_ADDRESS=$(ifconfig "$1" | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1')
                ip addr del "$IP4_ADDRESS" dev $INTERFACE
                ip addr add "$IP4_ADDRESS" peer 192.168.1.9/24 dev $INTERFACE
        fi
fi

我把这个脚本放入/etc/NetworkManager/dispatcher.d

答案1

检查一下:http://pptpclient.sourceforge.net/howto-diagnosis.phtml#ip_loop

NM(或pppd)正在创建一个额外的、错误的默认路线(即使nodefaultroute被作为参数传递)。route del不会删除它。

我通过告诉 NM 连接将与其他用户共享来解决这个问题。

这很可能是一个错误,但这暂时解决了问题。

相关内容