网络穿透/动态组网工具EasyNTS报错connect refused该如何处理?

目前我们的EasyNTS已经回归到了更加轻便的小设备,功能上支持网络穿透和动态组网,视频拉转推功能在硬件设备上暂不可行,回归到了纯软件形式。对于有网络穿透需求的用户来说,EasyNTS的小型硬件设备仍然是大家的首选。

 

在我们某个客户的现场中,EasyNTS出现了无法使用的问题,后台日志中出现大量的 connect refused。

 

由于出现connect refused报错可能是很多原因造成的,所以我们开始逐一排查。首先怀疑是端口不通,这是最常见的问题,在其他机器上测试访问此接口,发现可以正常使用,因此判定端口是不通的。

然后再本机访问该接口,发现确实出现连接被拒绝的现象。但是不使用公网地址,使用本机地址直接访问该接口,发现可以使用。因此确定问题点:本机无法访问本机对应公网ip的地址,只要访问就会出现拒绝连接,只能使用本机内网地址才能够访问。该种问题是环境问题,主要是路由器不支持回访导致的问题。

该问题可以采用以下两种解决方案:

解决方案一
使用支持数据回访的路由器可以解决该问题。

解决方案二
代码中全部不使用公网地址,全部使用内网地址访问对应的端口,代码如下:

ntstAddr := ntst.Addr
if esys.IniConf().CommonLocalHost {
ntstAddr = consts.LocalIP
}
addr := fmt.Sprintf("http://%s:%s", ntstAddr, string(strconv.Itoa(int(ntst.DashBoardPort))))
ret, err := http.PostForm(fmt.Sprintf("%s/api/trafficByName", addr), url.Values{"Name": {ntst.UserName}, "Pass": {ntst.PassWord}, "proxyName": {proxyName}})


根据配置文件是否启用内网端口,如果启用内网端口则直接使用本地IP 127.0.0.1,目前修改后客户可正常使用。

网络穿透/动态组网设备EasyNTS上云网关可应用在多种场景中,如远程办公、在线课堂、虚拟直播等,当然也可以进行各种上云服务,如果大家还想了解更多相关内容,欢迎持续关注我们的更新,也欢迎大家联系我们探讨更多内容。

原文地址:https://www.cnblogs.com/TSINGSEE/p/14892160.html