解决Windows Server路由和远程访问服务无法启动

问题描述

背景

我们将在一台域名为dc1.jx.local的Windows Server上安装路由和远程访问服务(Routing and Remote Access Services,RRAS),因为我们将用其作为VPN服务器。我们还会在同一台服务器上安装网络策略服务器(Network Policy Server,NPS)角色,这样它就能用自己作为远程认证拨号用户服务(Remote Authentication Dial-In User Service,RADIUS)器,通过活动目录域里(Active Directory Domain)里各账户的凭据认证来访连接VPN。

现象

我们满心欢喜地安装了RRAS和NPS角色。
之后,我们在服务器管理器的工具中打开路由和远程访问,来配置VPN服务器。
我们在RRAS控制台中右键本服务器,并配置。我们勾选了自定义Custom),并仅勾选了VPN来告诉Windows Server我们只想用它作为VPN服务器,而非诸如站点对站点(Site-to-site)VPN服务器和直接访问(Direct Access)之类的其它角色。
然而,到了最后要启动RRAS服务时,我们却看到了这一大长串丑陋的错误。
在这里插入图片描述
RRAS声称它无法启动,并指出可能的原因是因为“没能在防火墙中开启端口”。

诡异现象持续

此时如果你点击确定,会发现它仍然能够启动,而且在控制台中显示“已启动”,就好像毫无问题。
在这里插入图片描述
但如果你查看所有已开启的(虚拟逻辑)端口(Ports),就会发现只有9个,而非正常应有的数百个。
在这里插入图片描述
你可能好奇防火墙是否有放行RRAS所需监听的端口,结果发现并没有。
在这里插入图片描述
此时如果停用RRAS再重新配置并启用,你就会发现这次RRAS直接弹出无法启动的错误。
在这里插入图片描述在这里插入图片描述
而此时控制台内,本地服务器的状态会显示“已停止”而非刚刚虚假的“已启动”,端口数量则是0。

故障排查

放行防火墙规则?

你可能认为这个问题很简单,只需要在防火墙中手动允许对应的入站规则即可。
但其实,在安装角色后初次失败后,如果你仔细观察,就会发现之后每次试着开启RRAS时,它都会试着自动修改防火墙规则。然而每次,即使它将对应的规则启用,它仍然提示这个错误。

重启服务器?

你可能尝试过在此时重启服务器。如果你在重启服务器后立刻使用下面的命令启动RRAS,可能会惊奇地看到它工作。

net start remoteaccess

但如果你真的尝试让客户机连接VPN,就会发现无论如何连接都被拒绝。
如果你在重启服务器后选择静静地等待RRAS服务自启动,就会发现永远也等不到那一刻。此时如果你再手动重新配置并启动它,又会看到之前描述的那个错误,即那条不说明具体情况的错误。

查看日志

既然如此,也许到事件查看器查看日志会提供线索。我们进入事件查看器,在主页上滚动,查找有关RRAS和NPS的错误和警告日志。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

分析日志

这些日志的话语方式费解难懂。但如果你仔细阅读,就会将其中两条联系起来并产生猜想。似乎RRAS服务尝试连接到本地的NPS服务器,但是被拒绝了。而本地的NPS服务声称因为无法记录日志,将会丢弃一切来访请求。让我们看看情况是否真的如此。

使RADIUS服务停止丢弃请求

如果你进入NPS控制台就会发现,当NPS由于某种未可知的原因无法记录下日志时,它就会丢弃一切RADIUS客户发来的请求。我们可以取消勾选这个选项。
在这里插入图片描述
到目前为止,我尚不清楚RADIUS无法记录日志的原因。有人认为这是Windows Server的一个故障(bug),但是没人愿意回复他
在这里插入图片描述

验证猜想

那么接下来我们试着用net start remoteaccess启动RRAS服务,看看它是否仍像之前那样报错。
在这里插入图片描述
很好,它没有!
但如果重启服务器呢?它是否能够成功自启动?
在这里插入图片描述
它成功了!尽管需要等待几分钟,但这是正常的。因为RRAS是一个延迟自启动服务,意味着要先等待依赖的其它服务启动,自己才会启动。

客户连接测试

此时,看上去一切正常。
在这里插入图片描述
但为了验证这玩意儿是否真的可用,我们有必要创建一个新的网络策略(Network Policy),来测试VPN客户们是否能真的连接。
我们在创建新的网络策略时,限定只有用户组Domain Admins和ITUserGroup的成员能够连接。
在这里插入图片描述
注意此时的逻辑关系。当一个用户属于这两个用户组中的任意一个时,允许连接。
在这个界面中,很容易误将条件设置为“和”的关系——一个用户必须同时是这两个用户组的成员才允许连接。
我们用一个加入了域的客户机连接。默认,在不进行进一步配置的情况下,RRAS仅允许PPTP连接,所以我们选用PPTP协议。
成功!
在这里插入图片描述

解决

至此,我们解决了问题。

结论

由于某种未可知的原因,NPS服务默认无法写出日志,因此它拒绝一切来访请求。RRAS因为无法连接到本地的NPS服务,所以启动失败。更改NPS设置使它接纳一切来访连接,RRAS就能启动成功。

更换到L2TP/IPsec连接

PPTP是一个老旧的协议,且不是那么安全。你可能想使用L2TP/IPsec进行VPN连接。不过,让RRAS接纳L2TP/IPsec连接需要额外配置,具体请参照此文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值