扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
企业服务器不光要对内网资源提供网络应用与网络服务,很多时候员工不可能总是在单位进行工作,一般都会出现在家中连接单位内部服务器的应用。另外对于企业存在分支机构的情况我们也会通过VPN的方式连接内网服务器。然而在实际使用过程中外网计算机对内网服务器的访问经常会出现这样或那样的奇怪问题,今天就请各位IT168服务器频道的读者跟随笔者一起循序渐进解决内网服务器访问故障。
一,网络环境简介
笔者做在企业是区级信息中心属于教育行业,网络通过教育网连接外部internet,在网络结构上笔者所在机构处于城域网的汇聚层,对应的核心层受上级部门管理。不过上级部分已经针对网络应用权限进行了分配,企业内部每个计算机都拥有了自己的真实公网IP地址,这也为实现服务器对外网提供服务奠定了基础。
区级网络下连多个学校,有的学校连接到了教育城域网中,而有一部分学校则自己单独从其他网络出口连接网络,这样就出现了在区网络使用过程中部分下属学校属于内网,而部分下属学校属于外网。在实际工作过程中各个学校都需要访问FTP服务器,从上面获取必须资源和文件。
二,故障出现
最近一段时间笔者频频接到下属学校打来的电话,电话中得知这些学校都无法访问FTP服务器,而巧合的是这些学校都采用的是外网连接方式。综合而言外网连接的学校遇到了FTP服务器访问故障。(如图1)
三,从模式入手排查“病情”
首先笔者怀疑故障出现在FTP登录模式,众所周知FTP登录和传输使用分两种模式,一种是主动模式,另外一种则是被动模式。在外网计算机上通过FTP传输工具来修改登录该FTP服务器的模式,笔者发现当设置为“主动模式”时访问FTP服务器可以顺利通过用户名和密码验证阶段,而停留在list -al处,过一会自动断开连接。(如图2)
当我们将FTP登录工具设置为“被动模式”来访问FTP服务器时同样可以顺利通过用户名和密码验证阶段,停留在opening data connection ip: XXX.XXX.XXX.XXX PORT:3367处,等待几秒后又变化为opening data connection ip: XXX.XXX.XXX.XXX PORT:3368,之后就是中断连接了。(如图3)
使用被动模式连接中断时出现的错误提示是data socket error:connection timed out,list error。(如图4)
而当我们通过IE浏览器登录该服务器时也会在输入用户名和密码并验证成功后出现“与服务器的连接被重置”的错误提示窗口。(如图5)
通过这项查询我们得知FTP服务器登录出现问题并不是因为模式设置造成的,问题没有我们想象得那么简单,我们要进一步通过排查故障。
四,从访问控制列表排查“病情”
既然网络是畅通的而且也通过了用户名密码验证,那么为什么会出现无法列表的问题呢?可能有经验的读者会说FTP服务器上没有给对应帐户列目录的权限,但是本人并没有针对该权限进行限制,而且从FTP登录信息来看外网到达FTP服务器的路径应该是畅通的,用户名和密码也通过了验证不存在错误问题,于是笔者从端口入手检查故障。
一般来说服务器某端口无法顺利连接大部分都是因防火墙引起的,笔者查询了服务器上的防火墙配置并没有针对相应端口进行过滤,而且关闭防火墙后故障依旧。
之后笔者开始怀疑是企业内部核心路由交换设备上针对该服务器添加了访问控制列表ACL信息来过滤不必要的数据包。
第一步:访问企业核心路由交换设备,通过show current来显示当前配置。
第二步:找到该服务器连接的端口,我们发现在该端口存在ip access-group 100 in的指令,这个指令就是添加了一个访问控制列表100用来限制进入该端口的数据。(如图6)
第三步:继续查询对应配置,原来访问控制列表100中添加了对数据包的过滤命令。(如图7)
第四步:在外网计算机上查询要访问的FTP服务器域名对应的IP地址,因为访问控制列表ACL都是基于IP地址进行过滤的,执行nslookup XXX.XXX.XXX后查询到该服务器对应的IP地址。(如图8)
第五步:取消访问控制列表中针对该地址的过滤命令,当然有时我们企业内部可能有多个路由交换设备,可能核心设备上并没有开启对某服务器的过滤,但是其他设备上添加了这种过滤,那么同样也会造成内网服务器访问故障,这时我们可以通过dis ip routing-table XX.XX.XX.XX命令来查看到达该服务器的路由信息,从而找到其他连接服务器与核心设备的路由交换地址信息,再进一步完成取消访问控制过滤信息的工作。(如图9)
通过研究分析访问控制列表过滤语句并取消对应过滤指令可以解决很多因为端口问题造成无法访问的故障。
五,从内网代理入手解决服务器访问故障
当然有时我们在处理内网服务器访问故障时可能无法针对核心设备上的访问控制列表语句进行删除修改,没有登录设备的权限,那么有没有其他办法可以绕过访问控制列表对数据包的封锁和过滤呢?答案是肯定的,我们可以通过内网代理入手解决服务器访问故障。
第一步:首先确定内网某台计算机可以顺利访问FTP服务器。(如图10)
第二步:接下来我们使用一个HTTP代理工具——flos http proxy,这个工具是绿色版的代理程序,使用非常简单,就一个主程序,运行后点菜单的option选项。
第三步:在打开的Options窗口中添写本机的IP地址,这个一定要选择外网IP,而不是内网IP或本地环回IP,接下来是设置代理的端口笔者输入8000,其他保持默认即可,反正我们不需要高级应用。如果要添加用户和密码验证的话可以在proxy authorization处填写对应信息。(如图11)
第四步:确定完毕后我们这台计算机就成为了一台代理服务器,这样我们在外网的计算机可以通过这个代理地址来访问内网资源了。
第五步:笔者继续以访问内网FTP资源为例,首先打开FTP传输工具flashfxp,然后选择options->configure,在左边找到connection->proxy,添加一个代理服务器地址和端口号,类型选择HTTP PROXY,因为我们之前建立的是HTTP代理。(如图12)
第六步:之后我们在访问内网服务器资源时可以在站点管理器中的proxy server处通过下拉菜单选择内网HTTP服务器。(如图13)
第七步:设置完毕后如果代理服务器工作正常,那么我们外网计算机就可以轻松绕过访问控制列表的过滤而连接内网服务器资源了。
通过代理服务器的方法绕过路由交换上的封锁是行之有效的,不过随着使用代理服务器客户端的增多,开启代理那台计算机的负载将增大,所以这种方法只适合于数量比较少的外网客户机访问内网服务器资源的情况。
六,从端口转发入手解决服务器访问故障
当然我们还有其他方法来绕过路由交换的过滤,而且不会带来高负载问题。这个方法就是从端口转发入手解决服务器访问故障。
第一步:首先确保我们要设置端口转发的那台计算机能够顺利访问内网FTP服务器。
第二步:通过PortMap.exe端转发工具设置转发参数,打开端口映射器,点“增加”规则按钮。
第三步:为映射起一个名字然后设置输入IP地址为any ip,输入端口添写一个没有被路由交换设备过滤的端口,例如11111,接下来的输出IP地址填写内网FTP服务器地址,输出端口是21。这样当有计算机通过网络访问端口映射计算机的11111端口时相当于访问的是内网FTP服务器的21端口,从而实现了绕过封锁访问FTP服务器的目的。(如图14)
第四步:我们在外网客户端上直接访问开启端口映射那台计算机的IP以及11111端口和对应FTP服务器登录用户名,密码后将可以顺利的在外网访问内网FTP服务器。(如图15)
通过端口转发的方式实现访问内网服务器,这种方法对开启端口转发那台计算机的压力比较小,和代理服务器方式相比更适合我们在实际工作中使用,同样一台计算机可以带动更多的外网客户端。
七,总结
本文通过多种方法介绍了如何处理外网访问内网资源的问题,总的来说最好的办法还是直接通过访问控制列表来过滤,让有用数据包通过,实在不行的话再使用端口转发以及代理服务器的方式解决。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者