怎么测试linux下搭建的ntp服务器
三、什么是NTP
为了实现时间同步,我们就需要用户NTP(Network Time Protocol)这个协议。如图1所示。简单地说,NTP是用来使系统和一个精确的时间源保持时间同步的协议。笔者建议管理员最好在自己管理的网络中建立至少一台时间服务器来同步本地时间。
如 果在一个公司的局域网中,如果让每个员工通过手动的方式每隔一段时间去校准时间,不但不利于管理,而且校准目标时间源也不一定准确。公司局域网络中不同计 算机的时间偏差尤其是客户机/服务器之间的时间偏差,就会对一些要求时间同步的服务产生影响。比如,为了管理方便,服务器设置了一到下班时间便 账号过期,用户无法访问Internet网络。而如果你的电脑时间与服务器的时间不同步,当你为你下班时间未到,正准备发送邮件时,或许在服务器的时间 上,你的账号便过期了,从而导到无法发送邮件。解决这种问题的方法很简单,就是建立一个能提供精确时间的服务器,局域网内的所有电脑统一通过这台时间服务 器进行时间同步、校准。
四、NTP服务器安装
现在,我们就来介绍一下,如何在Linux系统下,建立一个NTP服务器吧。在本文中,我们采用的是Fedora 2操作系统作为例子 (其它版本Linux也可以,系统的配置类似)。
使用 RPM 安装
首先输入如下指令
rpm -q ntp
查询本机是否安装了NTP软件包。如果没有安装的话,找到您的 Linux 的安装光盘,mount 上后,查找以NTP开头的软件包名,然后安装上去,就可以了!
rpm –ivh ntp-412-5i386rpm
五、NTP服务的设置
1.NTP软件包的结构
NTP服务的配置文件:
/etc/ntpconf :这个是 NTP 服务的主要配置文件,不同的Linux版本文件所在的目录可能会不同!
与NTP服务有关的Linux 系统文件及目录:
/usr/share/zoneinfo:这是个目录,在这个目录下是规定了各主要时区的时间设定文件,例如中国大陆地区的时区设置文件是 /usr/share/zoneinfo/Asia/Shanghai 。
/etc /sysconfig/clock:这个文件是Linux 的主要时区设定文件。每次启动后,Linux 会自动读取这个文件来设定系统预设要显示的时间!比如这个文件内容为“ZONE=Asia/Shanghai”,这表示我们的时间设定使用 /usr/share/zoneinfo/Asia/Shanghai 这个文件!
/etc/localtime:这个文件是本地系 统的时间设定文件! 假设clock 文件里面规定了使用的时间设定文件为 /usr/share/zoneinfo/Asia/Shanghai, Linux 系统就会将 Shanghai那个文件复制一份为 /etc/localtime ,所以系统的时间显示就会以 Shanghai 那个时间设定文件为准。假设这台主机到了美国纽约,您只要将 /etc/sysconfig/clock 里面的ZONE 设定成为ZONE="America/New_York" 并且将/usr/share/zoneinfo/America/New_York复制成为 /etc/localtime ,其它什么设置都不需要改动,系统的显示时间就是美国纽约当地的时间了!
与 NTP 及系统时间有关的执行文件:
/bin/date: Linux 系统上面的日期与时间修改及输出命令。
/sbin /hwclock:因为主机的 BIOS 时间与 Linux 系统时间是分开的,所以使用 date 这个指令调整了时间之后,只是调整了linux的系统时间,还需要使用 hwclock 才能将修改过后的时间写入 BIOS。这个命令必须root用户才能执行 。
/usr/sbin/ntpd:NTP服务的守护进程文件,需要启动它才能提供NTP服务。
/usr/sbin/ntpdate:NTP客户端用来连接NTP服务器命令文件。
2.NTP服务端的设置
编辑 /etc/ntpconf 文件
关于权限设定部分
权限的设定主要以 restrict 这个参数来设定,主要的语法为:
restrict IP地址 mask 子网掩码 参数
其中 IP 可以是IP地址,也可以是 default ,default 就是指所有的IP
参数有以下几个:
ignore :关闭所有的 NTP 联机服务
nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。
notrust :客户端除非通过认证,否则该客户端来源将被视为不信任子网
noquery :不提供客户端的时间查询
注意:如果参数没有设定,那就表示该 IP (或子网)没有任何限制!
上级时间服务器的设定
由于我们配置的NTP 服务器需要网络上面时间比较准确的NTP服务器来更新自己的时间,所以在我们的 NTP 服务器上面要配置一部上级时间服务器来进行校准!在 Internet 上面提供了许多时间服务器,从下面地址找一个离你最近的
http://wwweecisudeledu/~mills/ntp/clock1ahtml
用server这个参数设定上级时间服务器,语法为:
server IP地址或域名 [prefer]
IP地址或域名就是我们指定的上级时间服务器,如果 Server 参数最后加上 prefer,表示我们的 NTP 服务器主要以该部主机时间进行校准。
解决NTP服务器校准时间时的传送延迟
使用driftfile参数设置:
driftfile 文件名
在与上级时间服务器联系时所花费的时间,记录在driftfile参数后面的文件内。
注意: driftfile 后面接的文件需要使用完整的路径文件名,不能是链接文件,并且文件的权限需要设定成 ntpd守护进程可以写入。
ntpconf文件举例:
设置要求:不对 Internet 提供服务,仅对内部子网 19216800/24 提供服务,NTP 服务器的上级时间主机为:clockncfukuoka-uacjp和ntpnasagov,内部子网的客户端不能修改NTP服务器的时间参数。
在ntpconf中增加以下内容:
restrict default ignore # 关闭所有的 NTP 要求封包
restrict 127001 # 开启内部递归网络接口 lo
restrict 19216800 mask 2552552550 nomodify #在内部子网里面的客户端可以 进行网络校时,但不能修改NTP服务器的时间参数。
server 13310092 prefer #用13310092做上级时间服务器
server 19812330132 #19812330132作为上级时间服务器参考
restrict 13310092 #开放server 访问我们ntp服务的权限
restrict 19812330132
driftfile /var/lib/ntp/drift
保存退出后。启动NTP服务
service ntpd start
如果想每次系统启动,NTP服务自动启动,请输入下面命令: chkconfig -level 35 ntpd on 注意:
1NTP服务的端口是123,使用的是udp协议,所以NTP服务器的防火墙必须对外开放udp 123这个端口。
2Ntpd启动的时候通常需要一段时间进行时间同步,所以在ntpd刚刚启动的时候还不能正常提供时钟服务,最长大概有5分钟吧,如果超过了这个时间请检查一下您的配置文件。
六、NTP客户端的使用
Linux系统
在Linux 上面进行网络校时非常简单,执行 ntpdate 即可:
ntpdate 19216801 #19216801是NTP服务器的IP
不要忘了使用hwclock命令,把时间写入bios
hwclock -w
如果想定时进行时间校准,可以使用crond服务来定时执行。
编辑 /etc/crontab 文件
加入下面一行:
30 8 root /usr/sbin/ntpdate 19216801; /sbin/hwclock -w #19216801是NTP服务器的IP地址
然后重启crond服务
service crond restart
这样,每天 8:30 Linux 系统就会自动的进行网络时间校准。
Windows 系统
在 Windows XP上面使用NTP进行时间校准也很简单:
双击桌面任务栏上的时间,弹出“日期和时间”属性窗口,如图所示:
选择Internet时间,在服务器中填入你的NTP服务器的IP地址或者域名,然后点击立即更新,您的系统时间就会立即更新。如果想定时更新,把左上角的自动与Internet时间服务器同步选中,然后点击右下角的应用即可。
yy-2-3tif
如 果不是Windows XP系统,但是NTP服务器同时也是samba服务器的话,则对Windows来说,不需要安装任何时间同步软件,因为Windows客户端可以用net time\\时间服务器IP或服务器netbios名/set/yes来同步。可以把该命令放在开始菜单的启动项中,启动windows时自动同步。
由于net time命令是利用Netbios over TCP/IP协议来同步时间,所以NTP服务器不同时是samba 服务器的话,就需要Windows客户端安装时间同步软件。这方面的软件很多,使用也很简单,读者可以上网查找一下。
1分钟解决前后端联调问题

GeekCode
GeekCode Cloud IDE 下一代云编程环境
王泰, 吴阳怿
相比于Jenkins来讲,极大简化了CI流程,无缝联调,这是最吸引我们的地方。之前没法在自己的电脑上调试的,一旦变成了URL,一切问题就都解决了。
前后端分离的开发几乎是非常常见的一种模式,几乎每一个项目都是采用这种模式进行开发。 前后端联调离不开中间的API接口。基于API接口的联调过程大家都很喜欢,但怎么搭建一套可以运行API接口和后端服务,最好可以把前端的页面也同时可以运行的环境?
现状
仔细观察工程师的开发测试过程,以下三块最重要:本地的手动测试,前后端联调测试和自动化的继承测试。
选自lyft的开发过程资料
本地手动测试要求web环境的启动速度快且容易完成。是测试中最高频的环节。
前后端的联调测试中,工程师们在面对独立的feature/staging测试,合作的可以更加容易、安全,并且测试的流量独立。这个过程的特点,频次略高,对团队协作的要求强。
自动化的集成测试,是上线前必须依赖的环节,需要保证过程的完整性,因为不需要人力的参与且低频,只要保证稳定和完整即可。
搭建一套联调环境并不是拥有一台服务这么简单。从前端工程师的hosts文件修改开始,到浏览器的缓存,webpack的反向代理,nginx配置,到测试服务器websocket配置,https/ssl证书配置。还有特定场景的定制化,比如:app页面的真机调试等待。
当前解决方案
目前解决方案一般分为三种
本地端口打通
Jenkins CI
API管理工具
本地端口打通
打通本地端口,就是指大家的测试环境在本地电脑搭建完成,电脑之间打通端口互相访问。这种方式的实现成本最低,因为原本的开发机上本来就已经具备了相关环境,打通了大家的端口,就可以互相访问测试了。但是这种方式只能在局域网内完成,而且缺少安全性。
推荐指数:2颗星
适合个人开发或者临时的项目,虽然是最方便的方式,但是安全性和维护性都不适合长期使用。
优势:
联调的互动性便利,开发环境和测试环境一致,对个人开发者来说容易维护
劣势
安全性低,不易在团队内分享和团队维护,不能在公网实现
Jenkins CI
Jenkins 或其他CI工具无疑仍然目前是开发团队最普遍使用的方式,主要原因是这种方式的稳定性和易于维护的特点。不过Jenkins 的专业性和复杂的流程也让一部分人用不起来,而且jenkins主要解决了部署服务器,服务器的配置问题以及网络环境的问题并没解决,还是需要专门的运维人员解决。
集成测试阶段:
推荐指数:4颗星
适合中大型团队,已经有多台测试环境管理和专业运维人员的团队。
前后端联调阶段:
推荐指数:3颗星
对于联调场景使用Jenkins有点大炮打蚊子的意思,不是不能用,但是面对敏捷过程时,繁琐的流程显得有点笨重,有优化空间。
优势:
容易维护
劣势:
成本大,流程长,专人维护Jenkins;联调中每次代码修改的时间需要增加10分钟以上,频繁的git push。
API 管理工具
现在很多API管理工具都被API mock的功能,这个功能不是单独存在的,需要配合独立的服务器并与API文档共存。mock的API是在前期demo阶段使用的接口,并不能满足真正的联调需求。
所以目前API 管理工具解决前后端联调问题还不够完整
推荐指数:25颗星(因为讨论的联调场景,目前还不完善)
优势:
与API文档绑定,支持mock,可以做到面向接口编程
劣势:
联调场景暂时还不够完善,依然需要独立维护
Dev URL
Dev URL 是GeekCode上专门为解决云端协同开发和前后端联调场景的功能。工程师可以设置在workspace内监听的端口,GeekCode 提供虚拟URL 让用户在公网上直接访问API,或者在浏览器中渲染页面。前后端工程师在同域的url,解决了前端调试跨域问题,不用配置DNS/hosts等过程。
我们的GeekCodeCloud 产品就是在这个平台上开发完成。我们的工程师团队异地办公,前后端的工程师通过Dev URL方式快速的进行产品联调和验证,快速提高研发效率。 我们团队自己说:相比于Jenkins来讲,极大简化了CI流程,无缝链条,这是最吸引我们的地方。之前没法在自己的电脑上调试的,一旦变成了URL,一切问题就都解决了。
一般来说,在线考试系统的服务器应按照如下要求配置:
1、考生总体规模
在免费版的软件中,开发商通常会提供10-30人左右的基础规模,如果用户的实际考生规模超出了这个限制,那么就需要收费。规模越大,价格越高,因为更大的考生规模会占用更多的资源。用户可以根据自身的实际情况,选择合适的解决办法。但是在购买时,不需要“一次到位”选择最大规模,而是可以循序渐进,当以后有规模提升的需求时再去扩充即可。
2、同时考试的人数
很多用户会将同时考试的人数与考生总体规模混为一谈,其实这两者还是有区别的。以学校为例,假定有1000个考生,那么考生总体规模就是1000,因为每个考生都需要有自己的独立账号。但是这1000个考生,可能是300个一年级、300个二年级、400个三年级,每个年级的考试时间都不一样,那么同时考试的人数最多就只有400人而已。
同时考试的人数用专业点的术语来讲就是并发性,即在某一段时间内计算机系统对于多个计算同时执行的能力。在线考试系统支持的同时考试人数越多,则并发性越强,需要的系统性能就越高,价格自然就越贵。
建议用户在购买产品时,选择同时考试的人数档次稍大一些,不光能够避免一些临时性的突发状况,对于考生实际参加考试的过程中体验也会较好一些。过低的并发性可能会导致考试过程中出现延迟、卡顿、宕机甚至服务器崩溃的状况。
3、具体的考试功能
大多数在线考试系统除基础的考试功能外,还有很多拓展性的功能,而这些功能不一定全都免费。购买具体的功能使用权,一方面看自身的预算,另外一方面也可以详细阅读在线考试系统平台的帮助手册,了解相关的具体功能,然后判断自身是否需要使用。
如果预算允许,通常在功能上建议购买最全面的,在日后的使用过程中会有十分不错的体验。如果是仅包含基础免费功能的版本,可能会十分不便,从而浪费时间。
4、平台的稳定性和历史案例
网络上的在线考试系统平台现在也有不少,虽然使用上大同小异,但关键时刻不同平台之间还是有差异的。以并发性这项需求来说,平台提供的并发性数据是否真实有效其实有待商榷。因为用户没有条件尝试后再买,毕竟平台说并发性支持5万考生,用户不可能真的组织5万考生先去测试。在这种情况下不容失误,所以参考平台的历史案例就十分重要。
0条评论