阿里云上redis外网无法访问的解决方案

折磨了一天的我,现在是夜里21:45.终于把redis给弄通了。从安装到跑通可谓是一路艰辛。下边说一下情况吧。

下边这个工具是windows连接redis的*佳工具(可以说没有之一我个人认为的)。

%title插图%num

这就是问题,redis已经安装好了,而且跑起来了。阿里云服务器上可以直接操作,但是本地连接的时候就会报错mmp.

各种骚操作更改配置文件,然后各种不行。下边需要一步步去排查。

1.首先确定你的redis.conf文件配置的几点注意点:

%title插图%num

1).规则要在阿里云上 配置好

2)redis.conf配置文件需要更改几个地方,下图bind  改成0.0.0.0必须要改。改成本机的内部ip我不知道可以不。我没有尝试。

%title插图%num

3)daemonize  yes

4)  还有一个可以配置 密码 ,我给忘记在哪了,反正在该文件 ,应该是可配可不配。配的话需要在代码上或者工具连接时候加上密码

可以说如果完成了上边几步基本上百分之九十的连接不上的问题都会迎刃而解。

腾讯云公网ip访问不通的问题解决

*近实在是烦透了,本以为是腾讯云的问题,结果是自己粗心大意,不过腾讯云的服务器与阿里云的服务器还是有点差别的,相比之下腾讯云的安全性要高一下,因为高的连自己也无法访问了,进入正题,我就是拿服务器做了小测试,用tomcat挂了小的html网页,不成想用公网ip死活访问不到,用本机ip可以,捉急啊,经过查找资料和经验摸索,找到了这个跟安全性有关系的安全组,估计这是腾讯云的特色吧,在安全组中,我们可以看到,先上图把
%title插图%num

把我们的服务器的所有端口都打开就好了,
下面发个群的连接
点击链接加入群【腾讯云服务器交流群】:http://jq.qq.com/?_wv=1027&k=kCrzeM
目前只有个位数的人,希望大家来学习交流支持一下,前十五名有机会混管理员

%title插图%num

服务器外网无法访问,阿里云服务器外网无法访问解决方案,腾讯云外网无法访问

服务器外网无法访问,阿里云服务器外网无法访问解决方案,腾讯云外网无法访问

 

服务器外网无法访问可能是你外网没对外开放80端口,可以使用PHPWAMP自带的常用工具解决。

怎么知道自己有没有开放80端口呢,可以扫一下,phpwamp自带各种扫法,随便你扫,效率也很高

 

腾讯云、阿里云、服务器域名无法访问、无法用公网IP访问(一些IDC服务商的服务器80端口默认是不开放的)
该错误的表现:内网正常访问,但是外网确无法访问站点里的网站。
端口扫描可以查看外网是否能通过此端口访问你服务器,通常会有防火墙和安全组规则两层保护。
安全规则组可以在服务器控制台上开启,防火墙可以在你服务器上开启。

阿里云服务器:在安全组规则的设置里面开启80。在服务器使用,记得扫描一下端口,运营商是否关闭端口。
腾讯云服务器:腾讯云后台开放安全组选择放行的端口就可以了。具体设置位置:云服务器-安全组-管理云主机。

 

强大高效的端口扫描工具,可以查询服务器是否开启80等端口,或者某些敏感端口是否关闭等

默认提供四大扫描方案,1、精准快速扫描 2、多个端口扫描 3、端口范围扫描 4、在线扫描端口

%title插图%num

(右键新标签打开图片可查看高清大图)

 

注意事项:多个扫描和范围扫描在使用的时候请查询完毕后再切换到其他扫描方式

服务器典型的测试工具大盘点

服务器整机系统性能测试工具

一台服务器系统的性能可以按照处理器、内存、存储、网络几部分来划分,而针对不同的应用,可能会对某些部分的性能要求高一些。

Iometer:存储子系统读写性能测试

Iometer是Windows系统下对存储子系统的读写性能进行测试的软件。可以显示磁盘系统的*大IO能力、磁盘系统的*大吞吐量、CPU使用 率、错误信息等。用户可以通过设置不同的测试的参数,有存取类型(如sequential,random)、读写块大小(如64K、256K),队列深度 等,来模拟实际应用的读写环境进行测试。

Iometer操作简单,可以录制测试脚本,可以准确有效的反映存储系统的读写性能,为各大服务器和存储厂商所广泛采用。

SisoftSandra:WINDOWS下基准评测

SiSoft发行的Sandra系列测试软件是Windows系统下的基准评测软件。此软件有超过三十种以上的测试项目,能够查看系统所有配件的信 息,而且能够对部分配件(如CPU、内存、硬盘等)进行打分(benchmark),并且可以与其它型号硬件的得分进行对比。另外,该软件还有系统稳定性 综合测试、性能调整向导等附加功能。

SisoftSandra软件在*近发布的Intelbensley平台上测试的内存带宽性能并不理想,不知道采用该软件测试的FBD内存性能是否还有参考价值,或许软件应该针对FBD内存带宽的测试项目做一个升级。

Iozone:linux下I/O性能测试

现在有很多的服务器系统都是采用linux操作系统,在linux平台下测试I/O性能可以采用iozone。

iozone是一个文件系统的benchmark工具,可以测试不同的操作系统中文件系统的读写性能。可以测试Read,write,re- read,re-write,read backwards,read strided,fread,fwrite,randomread,pread,mmap,aio_read,aio_write等等不同的模式下的硬盘 的性能。测试所有这些方面,生成excel文件,另外,iozone还附带了用gnuplot画图的脚本。

该软件用在大规模机群系统上测试NFS的性能,更加具有说服力。

Netperf:网络性能测试

Netperf可以测试服务器网络性能,主要针对基于TCP或UDP的传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批 量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。Netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统 发送数据,以及另外一个系统能够以多块的速度接收数据。

Netperf工具以client/server方式工作。server端是netserver,用来侦听来自client端的连接,client 端是netperf,用来向server发起网络测试。在client与server之间,首先建立一个控制连接,传递有关测试配置的信息,以及测试的结 果;在控制连接建立并传递了测试配置信息以后,client与server之间会再建立一个测试连接,用来来回传递着特殊的流量模式,以测试网络的性能。

对于服务器系统来说,网络性能显得尤其重要,有些服务器上为了节省成本,采用了桌面级的网络芯片,性能怎样,用这个软件一测便知了。

以上介绍的这几款测试工具都是可以免费从网上下载的非商业软件,但是其测试结果和认可程度均是为大多数使用者所认同的。你可以根据自己的应用需求选择不同的软件进行测试。

针对应用的测试工具

随着web应用的增多,服务器应用解决方案中以Web为核心的应用也越来越多,很多公司各种应用的架构都以web应用为主。一般的web测试和以往 的应用程序的测试的侧重点不完全相同,在基本功能已经通过测试后,就要进行重要的系统性能测试了。系统的性能是一个很大的概念,覆盖面非常广泛,对一个软 件系统而言包括执行效率、资源占用率、稳定性、安全性、兼容性、可靠性等等,以下重点从负载压力方面来介绍服务器系统性能的测试。系统的负载和压力需要采 用负载测试工具进行,虚拟一定数量的用户来测试系统的表现,看是否满足预期的设计指标要求。负载测试的目标是测试当负载逐渐增加时,系统组成部分的相应输 出项,例如通过量、响应时间、CPU负载、内存使用等如何决定系统的性能,例如稳定性和响应等。

负载测试一般使用工具完成,有LoadRunner,Webload,QALoad等,主要的内容都是编写出测试脚本,脚本中一般包括用户常用的功能,然后运行,得出报告。

使用压力测试工具对web服务器进行压力测试。测试可以帮助找到一些大型的问题,如死机、崩损、内存泄漏等,因为有些存在内存泄漏问题的程序,在运行一两次时可能不会出现问题,但是如果运行了成千上万次,内存泄漏得越来越多,就会导致系统崩滑。

Loadrunner:预测系统行为和性能的负载测试工具

目前,业界中有不少能够做性能和压力测试的工具,Mercury(美科利)Interactive公司的Load Runner是其中的佼佼者,也已经成为了行业的规范,目前*新的版本8.1。

Load Runner是一种预测系统行为和性能的负载测试工具,通过模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够 对整个企业架构进行测试,Load Runner适用于各种体系架构,能支持广范的协议和技术(如Web、Ftp、Database等),能预测系统行为并优化系统性能。它通过模拟实际用户 的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。Loadrunner是一个强大有力的压力测试工具,它的脚本可以录制生成,自动关联。测 试场景面向指标,实现了多方监控。而且测试结果采用图表显示,可以自由拆分组合。

通过Loadrunner的测试对比,你可以寻找出系统瓶颈的原因,一般来说可以按照服务器硬件、网络、应用程序、操作系统、中间件的顺序进行分析。

Loadrunner是一款收费软件,根据测试项目和虚拟用户数目的不同而花费不同的费用。不过你可以下载到免费使用10天的测试版本。

Webload:WEB性能压力测试

webload是Rad View公司推出的一个性能测试和分析工具,它让web应用程序开发者自动执行压力测试;webload通过模拟真实用户的操作,生成压力负载来测试web的性能。

用户创建的是基于js的测试脚本,称为议程agenda,用它来模拟客户的行为,通过执行该脚本来衡量web应用程序在真实环境下的性能。当前*高 版本是6.0。webload提供巡航控制器cruisecontrol的功能,利用巡航控制器,可以预定义web应用程序应该满足的性能指标,然后测试 系统是否满足这些需求指标;cruisecontrol能够自动把负载加到web应用程序,并将在此负荷下能够访问程序的客户数量生成报告。

webload能够在测试会话执行期间对监测的系统性能生成实时的报告,这些测试结果通过一个易读的图形界面显示出来,并可以导出到excel和其他文件里。

这两个软件的功能虽然强大,并且可以自动生成测试报告,但其终究是一个工具,如果你想真正的定位服务器性能的好坏和性能的瓶颈所在,需要使用工具的人对于测试软件的方方面面都要有了解,比如软件体系构架,网络拓扑,服务器硬件等知识。

服务器性能测试典型工具介绍

众所周知,服务器是整个网络系统和计算平台的核心,许多重要的数据都保存在服务器上,很多网络服务都在服务器上运行,因此服务器性能的好坏决定了整个应用系统的性能。

现在市面上不同品牌、不同种类的服务器有很多种,用户在选购时,怎样从纷繁的型号中选择出所需要的,适合于自己应用的服务器产品,仅仅从配置上判别是不够的,*好能够通过实际测试来筛选。而各种的评测软件有很多种,你应该选择哪个软件测试?下面就介绍一些较典型的测试工具

 (一)服务器整机系统性能测试工具

一台服务器系统的性能可以按照处理器、内存、存储、网络几部分来划分,而针对不同的应用,可能会对某些部分的性能要求高一些。

Iometer(www.iometer.org):存储子系统读写性能测试

Iometer是Windows系统下对存储子系统的读写性能进行测试的软件。可以显示磁盘系统的*大IO能力、磁盘系统的*大吞吐量、CPU使用率、错误信息等。用户可以通过设置不同的测试的参数,有存取类型(如sequential ,random)、读写块大小(如64K、256K),队列深度等,来模拟实际应用的读写环境进行测试。

Iometer 配置界面

Iometer操作简单,可以录制测试脚本,可以准确有效的反映存储系统的读写性能,为各大服务器和存储厂商所广泛采用。

Sisoft Sandra(www.sisoftware.co.uk):WINDOWS下基准评测

SiSoft发行的Sandra系列测试软件是Windows系统下的基准评测软件。此软件有超过三十种以上的测试项目,能够查看系统所有配件的信息,而且能够对部分配件(如CPU、内存、硬盘等)进行打分(benchmark),并且可以与其它型号硬件的得分进行对比。另外,该软件还有系统稳定性综合测试、性能调整向导等附加功能。

Sisoft Sandra软件在*近发布的Intel bensley平台上测试的内存带宽性能并不理想,不知道采用该软件测试的FBD内存性能是否还有参考价值,或许软件应该针对FBD内存带宽的测试项目做一个升级。

Iozone(www.iozone.org):linux下I/O性能测试

现在有很多的服务器系统都是采用linux操作系统,在linux平台下测试I/O性能可以采用iozone。

iozone是一个文件系统的benchmark工具,可以测试不同的操作系统中文件系统的读写性能。可以测试Read, write, re-read, re-write, read backwards, read strided, fread, fwrite, random read, pread ,mmap, aio_read, aio_write 等等不同的模式下的硬盘的性能。测试所有这些方面,生成excel文件,另外, iozone还附带了用gnuplot画图的脚本。

该软件用在大规模机群系统上测试NFS的性能,更加具有说服力。

Netperf(www.netperf.org):网络性能测试

Netperf可以测试服务器网络性能,主要针对基于TCP或UDP的传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。Netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统发送数据,以及另外一个系统能够以多块的速度接收数据。

Netperf工具以client/server方式工作。server端是netserver,用来侦听来自client端的连接,client端是 netperf,用来向server发起网络测试。在client与server之间,首先建立一个控制连接,传递有关测试配置的信息,以及测试的结果;在控制连接建立并传递了测试配置信息以后,client与server之间会再建立一个测试连接,用来来回传递着特殊的流量模式,以测试网络的性能。

对于服务器系统来说,网络性能显得尤其重要,有些服务器上为了节省成本,采用了桌面级的网络芯片,性能怎样,用这个软件一测便知了。

以上介绍的这几款测试工具都是可以免费从网上下载的非商业软件,但是其测试结果和认可程度均是为大多数使用者所认同的。你可以根据自己的应用需求选择不同的软件进行测试。

(二)针对应用的测试工具

随着web应用的增多,服务器应用解决方案中以Web为核心的应用也越来越多,很多公司各种应用的架构都以web应用为主。一般的web测试和以往的应用程序的测试的侧重点不完全相同,在基本功能已经通过测试后,就要进行重要的系统性能测试了。系统的性能是一个很大的概念,覆盖面非常广泛,对一个软件系统而言包括执行效率、资源占用率、稳定性、安全性、兼容性、可靠性等等,以下重点从负载压力方面来介绍服务器系统性能的测试。系统的负载和压力需要采用负载测试工具进行,虚拟一定数量的用户来测试系统的表现,看是否满足预期的设计指标要求。负载测试的目标是测试当负载逐渐增加时,系统组成部分的相应输出项,例如通过量、响应时间、CPU负载、内存使用等如何决定系统的性能,例如稳定性和响应等。

负载测试一般使用工具完成,有LoadRunner,Webload,QALoad等,主要的内容都是编写出测试脚本,脚本中一般包括用户常用的功能,然后运行,得出报告。

使用压力测试工具对web服务器进行压力测试。测试可以帮助找到一些大型的问题,如死机、崩损、内存泄漏等,因为有些存在内存泄漏问题的程序,在运行一两次时可能不会出现问题,但是如果运行了成千上万次,内存泄漏得越来越多,就会导致系统崩滑。

Loadrunner:预测系统行为和性能的负载测试工具

目前,业界中有不少能够做性能和压力测试的工具,Mercury(美科利)Interactive公司的LoadRunner是其中的佼佼者,也已经成为了行业的规范,目前*新的版本8.1。

LoadRunner 是一种预测系统行为和性能的负载测试工具,通过模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试,LoadRunner 适用于各种体系架构,能支持广范的协议和技术(如Web、Ftp、Database等),能预测系统行为并优化系统性能。它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。Loadrunner是一个强大有力的压力测试工具,它的脚本可以录制生成,自动关联。测试场景面向指标,实现了多方监控。而且测试结果采用图表显示,可以自由拆分组合。

通过Loadrunner的测试结果图表对比,你可以寻找出系统瓶颈的原因,一般来说可以按照服务器硬件、网络、应用程序、操作系统、中间件的顺序进行分析

Loadrunner是一款收费软件,根据测试项目和虚拟用户数目的不同而花费不同的费用。不过你可以下载到免费使用10天的测试版本。

Webload:WEB性能压力测试

webload是RadView公司推出的一个性能测试和分析工具,它让web应用程序开发者自动执行压力测试;webload通过模拟真实用户的操作,生成压力负载来测试web的性能。

用户创建的是基于javascript的测试脚本,称为议程agenda,用它来模拟客户的行为,通过执行该脚本来衡量web应用程序在真实环境下的性能。当前*高版本是6.0。webload提供巡航控制器cruise control的功能,利用巡航控制器,可以预定义web应用程序应该满足的性能指标,然后测试系统是否满足这些需求指标;cruise control能够自动把负载加到web应用程序,并将在此负荷下能够访问程序的客户数量生成报告。

webload能够在测试会话执行期间对监测的系统性能生成实时的报告,这些测试结果通过一个易读的图形界面显示出来,并可以导出到excel和其他文件里。

这两个软件的功能虽然强大,并且可以自动生成测试报告,但其终究是一个工具,如果你想真正的定位服务器性能的好坏和性能的瓶颈所在,需要使用工具的人对于测试软件的方方面面都要有了解,比如软件体系构架,网络拓扑,服务器硬件等知识。

时间戳引起的网站访问不了的问题

针对有些用户能ping通我们的网站,但是连接时超时服务器没有任何响应,怀疑问题处在了了http的三次握手环节,这是决定通过抓包进行分析:

1、有问题机器的截图:

2、正常机器的截图:

3、发现问题

从抓包数据发现,web服务器对出问题机器和正常机器系统的tcp syn包都返回ACK包,但存在问题发出的tcp syn包有时候响应,有时候不响应。不响应时,终端与web服务器之间的tcp连接无法正常建立,导致页面不能打开。对比这两种数据包,就在时间戳上有差异,存在问题的机器发出的tcp syn包带有时间戳,因此怀疑时间戳问题导致的故障。

4、解决问题

既然怀疑是时间戳导致的,那我们就着手分析如果将出现问题的机器的时间戳去掉会不会解决问题。针对带有时间戳的tcp syn包不响应的问题,查阅了相关资料得知产生问题的原因是出问题系统中的注册表中有Tcp1323opts这个选项,会导致其在发包时加入时间戳,经过nat之后,如果前面相同的端口被使用过,且时间戳大于这个链接发出的syn中的时间戳,服务器上就会忽略掉这个syn,不返会syn-ack消息,表现为用户无法正常完成tcp3次握手,从而不能打开web页面。在业务闲时,如果用户nat的端口没有被使用过时,就可以正常打开;业务忙时,nat端口重复使用的频率高,很难分到没有被使用的端口,从而产生这种问题。

目前看有两种方法解决:

(1)    是在服务器上修改变量

首先我们先查看一下我们服务器net.ipv4.tcp_timestamps的默认值,如果该值为0测说名不是该问题导致,如果是1我们需要将该值设置为1。

查看默认值的方法:[root@localhost ~]# cat /proc/sys/net/ipv4/tcp_timestamps

修改该值的方法:vim /etc/sysctl.conf  添加 net.ipv4.tcp_timestamps=0

(2)修改客户端的注册表Tcp1323Opts设置为0。

 

备注:

Tcp1323Opts

说明:该参数控制 RFC 1323 时间戳与窗口缩放选项。默认情况下,启用时间戳与

窗口缩放,但是可以使用标志位进行控制。0 位控制窗口缩放,1 位控制时间戳。

值为0(禁用 RFC 1323 选项)

值为1(仅启用窗口缩放)

值为2(仅启用时间戳)

值为3(两个选项均启用)

 

net.ipv4.tcp_timestamps=0

说明:时间戳可以避免序列号的卷绕。一个1Gbps的链路肯定会遇到以前用过的序列号。时间戳能够让内核接受这种“异常”的数据包。这里需要将其关掉。

值为0(禁用时间戳)

值为1(启用时间戳)

 

只有客户端和服务端都开启时间戳的情况下,才会出现能ping通不能建立tcp三次握手的情况,所以做为提供服务的公司,不可能保证所有的用户都关闭时间戳,这个功能,所以我们必须关闭时间戳,这样才能给所用用户提供正常的服务。

使用该命令使其立马生效:/sbin/sysctl-p

linux时间总是跳变

问题描述:新装了几台虚拟机,用date -s设置好日期和时间后总是调变

解决方法:

tzselect选择时区

将选择好的时区追加到/etc/profile

TZ=’Asia/Shanghai’; export TZ
source /etc/profile使其生效

date -s设置日期和时间

clock -w将操作系统时间写入CMOS

—完成

 

linux 系统时间隔一段时间,总会被还原问题

*近,在Linux使用过程中,系统时间与实际时间间隔8小时,并且修改过后隔一段时间就会被还原,且时间间隔为1分钟左右。为解决该问题尝试过多种修改时间的方法,包括设置系统时间和硬件时间,*后发现utc时间不正确,和实际时间相同(本应要提早8小时),于是采用本地时间更新成 UTC 时间解决了该问题(没有找到原因,只解决了问题)。

Linux服务器执行时发现系统时间不对,所以查找资料,首先用到了 date 来修改系统日期

1,使用 tzselect 来设置时区  选了 Asia/China/Beijing,无效;

2,修改Linux时间:date -s 时间

这种方式只是临时修改系统时间,当系统重新启动的时候就会还原。

3,而后使用 timedatectl 指令来修改时间

timedatectl set-time  ‘2019-03-16 10:10:00’
4,此时发现时间仍旧会被还原,而且是过一分钟左右,系统时间会自动更新,相隔8小时,

猜测系统时间读取的是硬件时间,于是使用 hwclock 设置硬件时间

hwclock –set –date ‘2019-03-16 10:10:00’
这是修改硬件的时间 也就是永久性修改Linux的时间

hwclock –show 查看硬件的时间
hwclock –set –date ‘2019-03-16 10:10:00’ 设置硬件时间为19年3月16日10点10分00秒
hwclock –hctosys 设置系统时间和硬件时间同步
clock -w 保存时钟
5,经过以上操作,发现LINUX系统时间仍然会定时更新,

猜测:觉得是有地方设置了定时同步,只是同步时间源不对。

尝试方法:根据网上资料,尝试网络时间同步的方式,使用 timedatectl 开启 ntp 同步,timedatectl set-ntp 1

#timedatectl
……
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
6,此处与网友贴出的信息有所不一致, ntp enabled 虽然开启,,但是 synchronized 仍然关闭(使用 ntp update [serverip]仍无效),就算设置了 RTC in local TZ 开启也没有效果,没有找到出现此问题的原因所在

Warning: Ignoring the TZ variable. Reading the system’s time zone setting only.
Local time: 五 2019-03-29 09:05:38 UTC
Universal time: 五 2019-03-29 09:05:38 UTC
RTC time: 五 2019-03-29 00:57:06
Time zone: Universal (UTC, +0000)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
猜测:看到UTC的时间一直不正确,猜想是由于UTC时间导致的

解决方法:将 localtime时间重置,并将utc时间设置为localtime时间

rm /etc/localtime
#Step 4:从/usr/share/zoneinfo/中创建软连接以替换当前的时区信息,直接选择Universal:

ln -s /usr/share/zoneinfo/Universal /etc/localtime