无法使用 Ubuntu 10.04 连接到 PPTP VPN

dav*_*idA 5 linux vpn pptp ubuntu-10.04

我正在尝试使用运行 Ubuntu 10.04 的笔记本电脑连接到我的公司 VPN。这是一台公司笔记本电脑,但由于我选择运行 Linux 而不是“适当的”操作系统,因此就让这些东西工作而言,我主要靠自己。通常这没问题,因为我几乎总是成功 - 除了这个问题让我难倒了几个星期。

问题是我无法从家庭网络访问 VPN。我正在使用 Gnome 网络管理器界面来配置 PPTP 连接,但无论我选择什么选项、域\用户名格式、加密选项或身份验证方法的组合,我都会得到完全相同的行为,这基本上是 10 秒的等待,然后是失败消息。

我检查了/var/log/daemon.log:

Aug 15 22:27:46 pc770-ubu NetworkManager: <info>  Starting VPN service 'org.freedesktop.NetworkManager.pptp'...
Aug 15 22:27:46 pc770-ubu NetworkManager: <info>  VPN service 'org.freedesktop.NetworkManager.pptp' started (org.freedesktop.NetworkManager.pptp), PID 4595
Aug 15 22:27:46 pc770-ubu NetworkManager: <info>  VPN service 'org.freedesktop.NetworkManager.pptp' just appeared, activating connections
Aug 15 22:27:50 pc770-ubu NetworkManager: <info>  VPN plugin state changed: 3
Aug 15 22:27:50 pc770-ubu NetworkManager: <info>  VPN connection 'VPN' (Connect) reply received.
Aug 15 22:27:50 pc770-ubu NetworkManager:    SCPlugin-Ifupdown: devices added (path: /sys/devices/virtual/net/ppp0, iface: ppp0)
Aug 15 22:27:50 pc770-ubu NetworkManager:    SCPlugin-Ifupdown: device added (path: /sys/devices/virtual/net/ppp0, iface: ppp0): no ifupdown configuration found.
Aug 15 22:27:50 pc770-ubu pptp[4602]: nm-pptp-service-4595 log[main:pptp.c:314]: The synchronous pptp option is NOT activated
Aug 15 22:27:50 pc770-ubu pptp[4609]: nm-pptp-service-4595 log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 1 'Start-Control-Connection-Request'
Aug 15 22:27:50 pc770-ubu pptp[4609]: nm-pptp-service-4595 log[ctrlp_disp:pptp_ctrl.c:739]: Received Start Control Connection Reply
Aug 15 22:27:50 pc770-ubu pptp[4609]: nm-pptp-service-4595 log[ctrlp_disp:pptp_ctrl.c:773]: Client connection established.
Aug 15 22:27:51 pc770-ubu pptp[4609]: nm-pptp-service-4595 log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 7 'Outgoing-Call-Request'
Aug 15 22:27:51 pc770-ubu pptp[4609]: nm-pptp-service-4595 log[ctrlp_disp:pptp_ctrl.c:858]: Received Outgoing Call Reply.
Aug 15 22:27:51 pc770-ubu pptp[4609]: nm-pptp-service-4595 log[ctrlp_disp:pptp_ctrl.c:897]: Outgoing call established (call ID 0, peer's call ID 17382).
[ ** TEN SECOND DELAY ** ]
Aug 15 22:28:21 pc770-ubu NetworkManager: <info>  VPN plugin failed: 1
Aug 15 22:28:21 pc770-ubu NetworkManager:    SCPlugin-Ifupdown: devices removed (path: /sys/devices/virtual/net/ppp0, iface: ppp0)
Aug 15 22:28:21 pc770-ubu pptp[4602]: nm-pptp-service-4595 warn[decaps_hdlc:pptp_gre.c:204]: short read (-1): Input/output error
Aug 15 22:28:21 pc770-ubu pptp[4602]: nm-pptp-service-4595 warn[decaps_hdlc:pptp_gre.c:216]: pppd may have shutdown, see pppd log
Aug 15 22:28:21 pc770-ubu pptp[4609]: nm-pptp-service-4595 log[callmgr_main:pptp_callmgr.c:234]: Closing connection (unhandled)
Aug 15 22:28:21 pc770-ubu pptp[4609]: nm-pptp-service-4595 log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 12 'Call-Clear-Request'
Aug 15 22:28:21 pc770-ubu pptp[4609]: nm-pptp-service-4595 log[call_callback:pptp_callmgr.c:79]: Closing connection (call state)
Aug 15 22:28:21 pc770-ubu NetworkManager: <info>  VPN plugin failed: 1
Aug 15 22:28:21 pc770-ubu NetworkManager: <info>  VPN plugin failed: 1
Aug 15 22:28:21 pc770-ubu NetworkManager: <info>  VPN plugin state changed: 6
Aug 15 22:28:21 pc770-ubu NetworkManager: <info>  VPN plugin state change reason: 0
Aug 15 22:28:21 pc770-ubu NetworkManager: <WARN>  connection_state_changed(): Could not process the request because no VPN connection was active.
Aug 15 22:28:34 pc770-ubu NetworkManager: <debug> [1281868114.002900] ensure_killed(): waiting for vpn service pid 4595 to exit
Aug 15 22:28:34 pc770-ubu NetworkManager: <debug> [1281868114.002975] ensure_killed(): vpn service pid 4595 cleaned up
Run Code Online (Sandbox Code Playgroud)

我无法确定如何在此日志中启用额外的调试信息,因此我手动为 pppd 创建了一个非常相似的配置,然后使用“pon”启动它(我还验证了此手动配置确实连接到 VPN 时我在公司防火墙内):

$ sudo pon vpn debug dump logfd 2 nodetach
pppd options in effect:
debug       # (from command line)
nodetach        # (from command line)
logfd 2     # (from command line)
linkname vpn        # (from /etc/ppp/peers/vpn)
dump        # (from command line)
noauth      # (from /etc/ppp/options.pptp)
refuse-pap      # (from /etc/ppp/options.pptp)
refuse-chap     # (from /etc/ppp/options.pptp)
refuse-mschap       # (from /etc/ppp/options.pptp)
refuse-eap      # (from /etc/ppp/options.pptp)
name gnet\\dantliff     # (from /etc/ppp/peers/vpn)
remotename vpn      # (from /etc/ppp/peers/vpn)
        # (from /etc/ppp/options.pptp)
pty pptp ***.***.***.*** --nolaunchpppd         # (from /etc/ppp/peers/vpn)
crtscts     # (from /etc/ppp/options)
        # (from /etc/ppp/options)
asyncmap 0      # (from /etc/ppp/options)
lcp-echo-failure 4      # (from /etc/ppp/options)
lcp-echo-interval 30        # (from /etc/ppp/options)
hide-password       # (from /etc/ppp/options)
ipparam vpn     # (from /etc/ppp/peers/vpn)
proxyarp        # (from /etc/ppp/options)
usepeerdns      # (from /etc/ppp/peers/vpn)
nobsdcomp       # (from /etc/ppp/options.pptp)
nodeflate       # (from /etc/ppp/options.pptp)
require-mppe        # (from /etc/ppp/peers/vpn)
noipx       # (from /etc/ppp/options)
using channel 7
Using interface ppp0
Connect: ppp0 <--> /dev/pts/1
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x78e7bd1c> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x78e7bd1c> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x78e7bd1c> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x78e7bd1c> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x78e7bd1c> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x78e7bd1c> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x78e7bd1c> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x78e7bd1c> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x78e7bd1c> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x78e7bd1c> <pcomp> <accomp>]
LCP: timeout sending Config-Requests
Connection terminated.
Modem hangup
Waiting for 1 child processes...
  script pptp ***.***.***.*** --nolaunchpppd , pid 4631
Script pptp ***.***.***.*** --nolaunchpppd  finished (pid 4631), status = 0x0
Run Code Online (Sandbox Code Playgroud)

我运行 Wireshark 来观察流量,似乎没有 LCP 回复返回给客户端。

更多信息:

  • 笔记本电脑通过 WiFi 接入点(桥接模式)和 ADSL 路由器连接到 Internet。在 ADSL 路由器和接入点上启用 PPTP 直通。

  • 如果我使用以太网电缆将笔记本电脑连接到 ADSL(以消除 WiFi),则没有任何改进。

  • 另一台笔记本电脑(运行 Mac OSX)能够通过 WiFi 或电缆连接到 VPN。

  • 另一个客户端 Windows7 能够通过电缆连接到 VPN。

  • iPhone 能够通过 WiFi 连接到 VPN。

  • 这台笔记本电脑能够从企业防火墙内部连接到VPN。

所以我有另外三台能够连接到目标 PPTP VPN 的设备,还有一台不能连接的笔记本电脑,除非我将笔记本电脑移动到目标网络内时,它可以连接。

任何想法我还能尝试什么?我尝试有条不紊地选择各种 VPN 选项,结果没有任何变化。我还阅读了几篇 Ubuntu 论坛帖子,建议关闭 EAP,但这也无济于事。我现在不知道如何解决这个问题,接下来会发生什么,管理层会告诉我“我们告诉过你”,放弃 Linux 并切换到像 Windows 这样的“正确”操作系统,我真的不这样做不想做。

dav*_*idA 2

从未找到解决方案 - 改用 OpenVPN,效果很好。