我正在尝试使用 SSTP 连接到具有 Linux Debian 计算机的 VPN。连接看起来成功,但我无法连接到 VPN 或互联网后面的资源。我相信我的路由规则可能在某种程度上是错误的,但我超出了我的深度,并且尝试不同的选项到目前为止还没有产生有效的解决方案。
我用来连接 VPN 的命令是:
sudo /usr/sbin/sstpc --log-stderr --cert-warn --user USER --password PASSWORD vpn.WEBSITE.com usepeerdns require-mschap-v2 noauth noipdefault nodefaultroute refuse-eap noccp --log-level 5
(我已替换了以下日志上方和内部的凭据,以及我尝试连接的特定 VPN IP 地址。)该命令会记录以下输出:
Oct 27 11:06:35 sstpc[245506]: Resolved vpn.WEBSITE.com to a.b.c.d
Oct 27 11:06:35 sstpc[245506]: Connected to vpn.WEBSITE.com
Oct 27 11:06:35 sstpc[245506]: Sending Connect-Request Message
Oct 27 11:06:35 sstpc[245506]: SEND SSTP CRTL PKT(14)
Oct 27 11:06:35 sstpc[245506]: TYPE(1): CONNECT REQUEST, ATTR(1):
Oct 27 11:06:35 sstpc[245506]: ENCAP PROTO(1): 6
Oct 27 11:06:35 sstpc[245506]: RECV SSTP CRTL PKT(48)
Oct 27 11:06:35 sstpc[245506]: TYPE(2): CONNECT ACK, ATTR(1):
Oct 27 11:06:35 sstpc[245506]: CRYPTO BIND REQ(4): 40
Oct 27 11:06:35 sstpc[245506]: Started PPP Link Negotiation
Oct 27 11:06:35 sstpc[245506]: SEND SSTP DATA PKT(28)
Oct 27 11:06:35 sstpc[245506]: PPP LCP ID: 1 CONFREQ ASYNCMAP: 00 00 00 00 MAGIC: 0x7764C36E
Oct 27 11:06:35 sstpc[245506]: RECV SSTP DATA PKT(60)
Oct 27 11:06:35 sstpc[245506]: PPP LCP ID: 0 CONFREQ MRU: 4091 AUTH: PAP MAGIC: 0x40311748 CALLBACK: 06 MRRU: 1614 EPDISC: 01 E8 61 37 D2 2E EB 4E C4 BF 67 15 80 86 C0 8F 21 00 00 00 00
Oct 27 11:06:35 sstpc[245506]: RECV SSTP DATA PKT(28)
Oct 27 11:06:35 sstpc[245506]: PPP LCP ID: 1 CONFACK ASYNCMAP: 00 00 00 00 MAGIC: 0x7764C36E
Oct 27 11:06:35 sstpc[245506]: SEND SSTP DATA PKT(19)
Oct 27 11:06:35 sstpc[245506]: PPP LCP ID: 0 CONFREJ CALLBACK: 06 MRRU: 1614
Oct 27 11:06:35 sstpc[245506]: RECV SSTP DATA PKT(53)
Oct 27 11:06:35 sstpc[245506]: PPP LCP ID: 1 CONFREQ MRU: 4091 AUTH: PAP MAGIC: 0x40311748 EPDISC: 01 E8 61 37 D2 2E EB 4E C4 BF 67 15 80 86 C0 8F 21 00 00 00 00
Oct 27 11:06:35 sstpc[245506]: SEND SSTP DATA PKT(53)
Oct 27 11:06:35 sstpc[245506]: PPP LCP ID: 1 CONFACK MRU: 4091 AUTH: PAP MAGIC: 0x40311748 EPDISC: 01 E8 61 37 D2 2E EB 4E C4 BF 67 15 80 86 C0 8F 21 00 00 00 00
Oct 27 11:06:35 sstpc[245506]: SEND SSTP DATA PKT(14)
Oct 27 11:06:35 sstpc[245506]: PPP LCP ID: 0 ECHOREQ MAGIC: 0x7764C36E
Oct 27 11:06:35 sstpc[245506]: SEND SSTP DATA PKT(40)
Oct 27 11:06:35 sstpc[245506]: PPP PAP ID: 1 CONFREQ NAME="USER", PASSWORD: "PASSWORD"
Oct 27 11:06:35 sstpc[245506]: RECV SSTP DATA PKT(14)
Oct 27 11:06:35 sstpc[245506]: PPP LCP ID: 0 ECHOREP MAGIC: 0x40311748
Oct 27 11:06:38 sstpc[245506]: SEND SSTP DATA PKT(40)
Oct 27 11:06:38 sstpc[245506]: PPP PAP ID: 2 CONFREQ NAME="USER", PASSWORD: "PASSWORD"
Oct 27 11:06:41 sstpc[245506]: RECV SSTP DATA PKT(37)
Oct 27 11:06:41 sstpc[245506]: PPP PAP ID: 2 CONFACK RESULT="Success. Logging you in..."
Oct 27 11:06:41 sstpc[245506]: Sending Connected Message
Oct 27 11:06:41 sstpc[245506]: SEND SSTP CRTL PKT(112)
Oct 27 11:06:41 sstpc[245506]: TYPE(4): CONNECTED, ATTR(1):
Oct 27 11:06:41 sstpc[245506]: CRYPTO BIND(3): 104
Oct 27 11:06:41 sstpc[245506]: Connection Established
Oct 27 11:06:41 sstpc[245506]: SEND SSTP DATA PKT(34)
Oct 27 11:06:41 sstpc[245506]: PPP IPCP ID: 1 CONFREQ COMPRESSTYPE: VJ [0x0F 0x01] ADDR: 0.0.0.0 MS_DNS1: 0.0.0.0 MS_DNS2: 0.0.0.0
Oct 27 11:06:41 sstpc[245506]: SEND SSTP DATA PKT(20)
Oct 27 11:06:41 sstpc[245506]: RECV SSTP DATA PKT(16)
Oct 27 11:06:41 sstpc[245506]: PPP CCP ID: 3 CONFREQ MPPC [ +H -M -S -L -D +C ]
Oct 27 11:06:41 sstpc[245506]: RECV SSTP DATA PKT(16)
Oct 27 11:06:41 sstpc[245506]: PPP IPCP ID: 4 CONFREQ ADDR: 10.60.20.252
Oct 27 11:06:41 sstpc[245506]: SEND SSTP DATA PKT(22)
Oct 27 11:06:41 sstpc[245506]: PPP LCP ID: 2 PROTOREJ CCP
Oct 27 11:06:41 sstpc[245506]: SEND SSTP DATA PKT(16)
Oct 27 11:06:41 sstpc[245506]: PPP IPCP ID: 4 CONFACK ADDR: 10.60.20.252
Oct 27 11:06:41 sstpc[245506]: RECV SSTP DATA PKT(16)
Oct 27 11:06:41 sstpc[245506]: PPP IPCP ID: 1 CONFREJ COMPRESSTYPE: VJ [0x0F 0x01]
Oct 27 11:06:41 sstpc[245506]: RECV SSTP DATA PKT(26)
Oct 27 11:06:41 sstpc[245506]: PPP LCP ID: 5 PROTOREJ 80570073
Oct 27 11:06:41 sstpc[245506]: SEND SSTP DATA PKT(28)
Oct 27 11:06:41 sstpc[245506]: PPP IPCP ID: 2 CONFREQ ADDR: 0.0.0.0 MS_DNS1: 0.0.0.0 MS_DNS2: 0.0.0.0
Oct 27 11:06:41 sstpc[245506]: RECV SSTP DATA PKT(28)
Oct 27 11:06:41 sstpc[245506]: PPP IPCP ID: 2 CONFNAK ADDR: 10.60.20.74 MS_DNS1: 10.60.20.10 MS_DNS2: 10.60.20.15
Oct 27 11:06:41 sstpc[245506]: SEND SSTP DATA PKT(28)
Oct 27 11:06:41 sstpc[245506]: PPP IPCP ID: 3 CONFREQ ADDR: 10.60.20.74 MS_DNS1: 10.60.20.10 MS_DNS2: 10.60.20.15
Oct 27 11:06:41 sstpc[245506]: RECV SSTP DATA PKT(28)
Oct 27 11:06:41 sstpc[245506]: PPP IPCP ID: 3 CONFACK ADDR: 10.60.20.74 MS_DNS1: 10.60.20.10 MS_DNS2: 10.60.20.15
Oct 27 11:07:05 sstpc[245506]: SEND SSTP DATA PKT(14)
Oct 27 11:07:05 sstpc[245506]: PPP LCP ID: 1 ECHOREQ MAGIC: 0x7764C36E
Oct 27 11:07:05 sstpc[245506]: RECV SSTP DATA PKT(14)
Oct 27 11:07:05 sstpc[245506]: PPP LCP ID: 1 ECHOREP MAGIC: 0x40311748
Oct 27 11:07:31 sstpc[245506]: RECV SSTP DATA PKT(333)
Oct 27 11:07:35 sstpc[245506]: SEND SSTP DATA PKT(14)
Oct 27 11:07:35 sstpc[245506]: PPP LCP ID: 2 ECHOREQ MAGIC: 0x7764C36E
Oct 27 11:07:35 sstpc[245506]: RECV SSTP DATA PKT(14)
Oct 27 11:07:35 sstpc[245506]: PPP LCP ID: 2 ECHOREP MAGIC: 0x40311748
Oct 27 11:08:05 sstpc[245506]: SEND SSTP DATA PKT(14)
Oct 27 11:08:05 sstpc[245506]: PPP LCP ID: 3 ECHOREQ MAGIC: 0x7764C36E
Oct 27 11:08:05 sstpc[245506]: RECV SSTP DATA PKT(14)
Oct 27 11:08:05 sstpc[245506]: PPP LCP ID: 3 ECHOREP MAGIC: 0x40311748
Oct 27 11:08:35 sstpc[245506]: SEND SSTP DATA PKT(14)
Oct 27 11:08:35 sstpc[245506]: PPP LCP ID: 4 ECHOREQ MAGIC: 0x7764C36E
...
我确信我已经成功连接到 VPN,原因如下:
- 我在手机上收到 Duo Mobile 推送通知,该通知是由我的公司设置的,需要连接。
- 我可以 ping vpn.WEBSITE.com IP 地址 abxy 或内部 VPN 服务器地址 10.60.20.252,然后我会收到数据包。
- 将 VPN 详细信息和属性与已设置并运行 VPN 的 Windows 计算机进行比较时,所有 IP 和 DNS 地址都匹配。
但是,当我尝试 ping google.com 或访问 VPN 后面的资源(特别是位于 gitlab.WEBSITE.net 的 git 存储库)时,终端只是挂起并且没有任何反应(终端中没有日志记录的输出)。
综上所述,我认为我的路由表很可能以某种方式关闭,尽管我不确定是什么。路由表看起来像这样(使用ip route show
):
default via 10.0.0.1 dev enp4s0
10.0.0.0/24 dev enp4s0 proto kernel scope link src 10.0.0.246
10.60.20.252 dev ppp0 proto kernel scope link src 10.60.20.78
a.b.c.d via 10.0.0.1 dev enp4s0 src 10.0.0.246
我通过我运行的--save-server-route
许多命令之一中的参数添加到表中的最后一条路线。sstpc
如果您在路线表或其他任何地方看到任何异常,请告诉我,并感谢您的帮助。
答案1
在与我公司的 IT 人员合作后,我解决了这个问题。 VPN 已连接,但我的路由未设置,以便我可以访问 VPN 另一端的网络。仍然不完全理解所有内容,但是一旦我运行以下命令在另一端添加网络,我就能够访问内部资源以及互联网:
sudo -- ip r add 10.60.0.0/16 via a.b.c.d dev ppp0
每次连接 VPN 时都需要运行此命令。