计费系统教程

1、硬件的要求

1-1:推荐配置(建议选用TamronOS搏虎服务器)

硬件配置直播服务器点播服务器
处理器E5645*2以上志强处理器E5645*2以上志强处理器
内存64G以上内存64G以上内存
硬盘32G以上SSD硬盘60G以上系统盘+10TB以上数据盘
网卡intel 82580千兆网卡*4 82599万兆网卡*2intel 82580千兆网卡*4 82599万兆网卡*2
阵列卡对阵列卡无要求H200以上阵列卡推荐使用H700
推荐硬件Dell R710

Dell R510

1-2:最低配置

硬件配置直播服务器点播服务器
处理器intel 三代i3已上处理器intel 三代i3已上处理器
内存16G以上内存(不超过70频道的情况下)32G以上内存
硬盘16G以上SSD硬盘16G以上系统盘+4TB以上数据盘
网卡intel 82583v千兆网卡*4 intel 82580千兆网卡*4 
阵列卡对阵列卡无要求系统支持软阵列
主板不低于B75芯片的主板

不能建议使用工控机主板

2、系统安装

TamronOS的安装包采用ISO模式,既可支持U盘安装,也可通过刻录光盘的方式安装。这里我们介绍一下如何通过U盘安装系统。
需要的工具:UltraISO 软碟通 4G以上U盘 软件安装包ISO一份

1:打开软碟通并载入TamronOS的ISO;

格式化完成后,打开制作好的U盘然后再将下载的ISO(安装包),copy到U盘的根目录,到此TamronOS的安装U盘就算制作完成。

安装过程

利用上面制作好的U盘引导系统启动(我相信所有民营宽带的技术和老板们不需要我教你们如何设置Bios),即可进入TamronOS的安装界面。

根据中文提示选择进入正常安装模式(系统会等待3秒钟,如果没有输入则自动进入正常安装模式)

系统将自动启动至安装引导程序,选择安装TamronOS系统回车即可。

这里给出三个选项,全新安装或者修复安装(如遇系统损坏,可通过修复安装模式修复系统)

这里输入“Y”即可自动安装

安装结束后,系统会提示设置上网口的IP 子网掩码和默认网关,根据实际情况设置即可。

至此系统安装结束(整个安装过程大约1-2分钟),按回车键系统将自动重启并进入TamronOS IPTV。启动完成会提示按回车键进入控制台,在系统控制台可以设置和修改一些系统的基本参数。

这里需要注意,控制台显示的web管理登陆地址和用户名密码是较早期的iptv使用的,新的系统已经将默认密码修改为“123456”。至此,系统安装和首次启动的操作都已经完成,通过安装时设置的上网口IP即可进入系统的web管理后台。 例如http://192.168.1.1


3、系统注册

系统安装结束后需要首先进入后台对系统进行注册,当系统处于未注册状态时后台将仅显示网卡绑定和注册授权相关的页面,系统注册需要联网;

注意:系统注册前要先配置上网口IP(安装程序执行到最后配置的IP即为上网口IP,如果配置不正确请先阅读关于网卡配置的教程内容。)

点击上图中的授权信息按钮,即可进入系统注册授权页面。

注册前需要提供系统CID给我们,注册系统处理后会提供授权码,授权码填写到上图“授权码的文本框中”然后点击注册授权即可。

至此系统注册完成。


4、网卡绑定和配置

TamronOS系统中网卡分为四种接口类型,分别是上网口对接口输入口输出口。其中上网口和对接口只能有1个,输入口和输出口可以有多个。

4-1:绑定网卡

点击下图中的网卡绑定配置,进入网卡绑定页面

此时系统中已经默认绑定好了上网口,如果不需要修改直接使用默认即可。

点击“新增规则”按钮添加网卡。

在接口类型中选择你要绑定的类型,这里一般需要设置的就是对接口、输入口、输出口

选择好接口类型后,在选择一张对应的网卡进行绑定(如果该网卡已经被绑定为其他接口,网卡列表中会给出提示)

在MAC地址选项中可以更改当前网卡的MAC地址,一般情况下是不需要更改的。

当选择为输入口或者输出口时会要求输入一个接口编号,例如当接口类型选择为输入口 接口编号为数字1,绑定成功后就是输入口1

上图中是已经绑定好所有接口类型的列表,在上表中系统会详细的展示出接口类型、对应网卡、mac地址、以及当前的连接状态(断开或者当前的连接速度)

4-2 上网口的相关设置:

上网口仅支持两种工作模式(固定IP模式或者DHCP模式),TamronOS系统采用在线验证机制所以必须保证上网口可以24小时正常联网,断网超过48小时系统会自动删除授权并锁定所有功能。同时采集互联网节目源默认情况下也是通过上网口 进行采集。

4-3 对接口设置:

对接口用于对接点播存储服务器,对接口不需要设置网关,设置IP与点播服务器的对接口在同一个网段即可。(点播服务器与直播服务器之间通过网线直接联机即可)

4-4 输入口设置:

输入口在整个系统中作为节目源的输入和采集,任何节目源、或者前端设备都可以通过输入口将节目源引入系统。

输入口支持多种工作模式:

固定IP模式:直接设置IP即可,可以设置网关,如果该输入口的节目源为单播源则需要为对应网关添加静态路由。

DHCP模式:通过DHCP方式自动获取IP

固定IP VLAN模式:支持通过vlan交换机扩展,并为每一个虚拟端口设置一个固定IP,交换机的上联口设置为Trunk模式

DHCP VLAN模式:支持通过vlan交换机扩展,并为每一个虚拟端口设置为自动获取IP模式,交换机的上联口设置为Trunk模式

PPPOE VLAN模式:支持通过vlan交换机扩展,并为每一个虚拟端口设置一个PPPOE的用户名和密码,交换机的上联口设置为Trunk模式

注意:为了确保输入口的稳定性,我们建议使用Intel82580或者I350网卡做为输入口,交换机推荐使用华为(不建议使用H3C之类的交换机,别特是在输入组播源的情况下。)

4-5 输出口设置:

输出口仅支持一种工作模式“固定IP模式”,根据网络部署模式的不同,输出口一般接核心路由的WAN口作为一条wan线路使用,在没有核心路由的环境中,需要单独部署一个DHCP server

输出口可以有多个,但每个输出口IP不可以相同。同时输出口IP即作为客户端APK登陆服务器的地址。

输出口不需要设置网关,我们建议输出口使用intel82599万兆网卡。

4-5 输出口设置:

输出口仅支持一种工作模式“固定IP模式”,根据网络部署模式的不同,输出口一般接核心路由的WAN口作为一条wan线路使用,在没有核心路由的环境中,需要单独部署一个DHCP server


5、转发设置

在配置完网卡后首先需要配置的就是转发设置;转发设置中的设置项会影响到整个系统的输入和输出。

缓存位置:默认设置为保存到内存,如果内存严重不足(不足64G)可以选择保存到硬盘,保存到硬盘需要硬盘剩余空间大于64G,同时保存到硬盘会影响系统带机量。

流媒体输出端口:不能是80、443。一般情况下默认为880端口,也可以更改为你认为合适的接口。

组播IP设置:这里需要设置一个组播段IP(225-239),该IP主要用于系统内部网卡的默认组播组IP,必须设置。(在后期节目源采集中不能出现与这个IP相同的IP)

组播类型:默认选择为系统内部组播,如果该系统作为前端设备时可以设置为组播到局域网。

刷新缩略图间隔时间:这里的单位为秒一般建议不少于300秒刷新一次,刷新缩略图会占用大量系资源。


6、部署服务器

通过下图的连接来部署IPTV系统。

在部署系统时需要注意的问题

1:直播服务器和点播服务器的输出口都要做为wan方式接入到核心路由(或者通过核心交换机接入)

2:两台服务器的C段IP不能相同,例如直播设置为172.16.50.254,那么点播可以设置为172.16.51.254

3:直播服务器和点播服务器之间通过双端的对接口直连,例如直播对接口IP设置为192.168.1.1,那么点播可以设置为192.168.1.2,也可以使用其他IP端。

4:路由的wan口设置,例如当直播系统的输出口IP为172.16.50.254那么wan口可以设置IP172.16.50.1 255.255.255.0 172.16.50.254


7、添加节目源和故障排查

抓取运营商组播节目源需要准备一条运营商宽带线路并开通好IPTV业务,一个运营商提供的机顶盒,一台支持端口镜像的交换机。各地运营商IPTV业务采用的接入方式不同,我们的抓包方式也要有所不同,但在这些 工作之前,我们首先需要判断该线路是组播方式还是单播方式(一般来说组播方式的可以百分百支持,而单播方式可能会存在一些单播的硬件解码加密措施就无法使用。)

7-1 如何判断线路是组播还是单播,如何判断接入方式:

1、一般来说机顶盒直接连接光猫第二口的为组播线路。机顶盒通过路由器连接的为单播线路。

2、组播线路的接入方式一般分为三种:DHCP方式固定IP方式PPPOE模式。一般我们只需要判断是否为PPPOE模式即可,判断方法也很简单电脑直接连接光猫第二口创建一个宽带连接 ,任意填写用户名密码看反馈691还是678,如果是691则为PPPOE模式。

7-2 如何构建抓包环境:

1、构建组播抓包环境(非PPPOE认证模式),根据下面的拓扑图来构建抓包环境,可以直接用服务器的抓包功能,也可以使用电脑通过wireshark软件来抓取

我们需要抓取的内容是:组播源地址组播源端口编码长度

通过遥控器不断的变换频道,将所有频道的源地址、源端口、编码长度都抓取出来从而得到一份完整的运营商组播节目单。

下图中是系统提供的组播抓包分析功能:

根据实际连接选择对应的输入口作为抓包监控接口,此时电视上播放一个电视频道,点击开始获取,系统会自动获取到当前频道的相关数据,上图中获取到的239.253.246.1为源地址 8000为源端口 1328为编码长度,可以通过你这个方法把所有频道都抓取出来,当然也可以使用wireshark软件方法也是一样的。

2、构建组播抓包环境(PPPOE认证模式),根据下面的拓扑图来构建抓包环境,可以直接用服务器的抓包功能,也可以使用电脑通过wireshark软件来抓取

由于PPPOE承载TCP连接,所以在PPPOE认证的组播模式中需要配置镜像的方式来获取节目单,其他操作与非PPPOE模式完全一致。

7-3 如何添加组播源到系统内:

在获取到运营商的组播节目单后,我们就需要把这些节目源地址全部添加到系统中,然后输出给客户端。

系统的直播设置中找到自定义节目源----运营商组播节目源(v4更改为网络源频道管理)。

排序ID:默认可以为空,这里的排序ID并不是最终节目单的排序,仅作为管理后台的排序。

频道ID/中文名:每一个频道都需要有一个独立的频道ID,不支持中文不支持特殊符号一般我们建议用频道的中文名拼音来做,频道中文名即最终显示在节目单中的名称(注意截图中有错误ID和中文名的顺序颠倒了)

选择输入口:该频道从哪个输入口采集这里就选择哪个输入口,如果该输入口包含vlan则需要选择vlan ID,关于vlan的操作请参考网卡绑定部分。

源地址/端口/编码长度:这里填写6-2中抓包获取到的内容。

输出地址/端口:这里我们需要注意的是输出地址不能跟源地址在同一网段,且必须为组播段IP(225.0.0.1-239.254.254.254),每一个频道都需要有一个独立的输出IP。输出端口可以所有频道共用一个。

输出网卡:这里默认选择为内部网卡,如果需要输出给其他设备可以选择输出口网卡(一般情况下不存在这种输出给第三方设备的可能性)

编码模式:视频编码一般选择直接COPY,如果本系统作为编码器使用可以选择为H264(强制编码会大量消耗CPU资源),音频编码在绝大多数情况下选择FAAC,如果源为H264格式也可以考虑选择直接COPY,AAC编码会占用较多系统资源一般不推荐。

音频采样率/比特率:默认为空即可,如果需要指定可输入一个相应的参数(一般不需要指定音频采样率和比特率,错误的数值会导致声音不正常)。

极速转发模式:启用极速转发模式会降低系统采集该频道所占用的系统资源,但该模式仅支持源编码为H264的源,具体可通过vlc播放器播放源地址来判断是否为H264.

码率智能纠正:该功能仅针单播源和少部分特殊的组播源,绝大多数运营商IPTV源不需要开启码率智能纠正。

是否激活:选择激活后在保存成功后系统会马上开启该频道的采集和转发。

频道定时重启:部分地区的运营商会检测频道连续在线时间来判断是否被复用,使用频道定时重启功能可有效避免这种检测。


使用专家模式快速导入频道:


序号,频道ID,频道名称,输入口,vlan,节目源ip,节目源端口,输出ip,输出端口,编码长度,输出网卡,视频编码,音频编码,是否激活,是否定时重启,重启时间设置

1,CCTV-1,CCTV-1,lan5,0,239.253.246.1,8000,234.5.246.1,4000,1328,lo,copy,faac,yes,yes
2,CCTV-3,CCTV-3,lan5,0,239.253.246.4,8000,234.5.246.4,4000,1328,lo,copy,faac,yes,yes
3,CCTV-5,CCTV-5,lan5,0,239.253.246.6,8000,234.5.246.6,4000,1328,lo,copy,faac,yes,yes
4,CCTV-6,CCTV-6,lan5,0,239.253.246.7,8000,234.5.246.7,4000,1328,lo,copy,faac,yes,yes

通过专家模式可以快速导入导出频道,但这里需要注意的是用于分隔符的逗号必须是英文逗号。

7-4 添加第三方设备源&单播源:

通过添加其他节目源页面,可以添加其他第三方设备输出的源以及单播源,其他节目源支持udp、rtsp、rtmp、http等。

在添加频道上与添加组播源是没有什么大区别的,唯一不同的是节目源地址有所变化;具体可以根据我们下面的例子来添加。

UDP源的写法:udp://@239.0.0.1:8000 IP+端口的写法(这里指的是第三方设备输出的未加扰的流)

http源的写法:http://xxx.xxx.xxx/xxx(在添加http单播源的时候需要先验证该源在vlc是否播放正常)

rtsp/rtmp的写法:rtsp://xxx.xxx.xxx rtmp://xxx.xxx.xxx

注意:一般情况下http源可以尝试开启码率智能纠错,特别是在源网络较差的环境中开启后会更加稳定。

默认情况下http开头的单播源会走默认上网口采集,如果要指定从输入口采集,则需要添加相应的静态路由。

例如输入口1获取的IP是192.168.1.1 255.255.255.0 (网关)192.168.1.254,我们要添加的单播源地址是http://150.200.1.19/xxxx 我们需要这个源走输入口1的网关获取。可以按照如下方法添加静态路由

注意:需要先添加好静态路由在添加或者启用该频道,否则依然会走上网口采集。当服务器重启时,需要先禁用这些对应的频道,重启完成后在启用。

7-5 检查频道是否添加成功:

通过直播设置中的频道状态监控功能可以获取到当前频道的状态。

通常情况下,某个频道在添加并激活后的1-3分钟内系统会自动生成状态截图,如果没有生成可以通过列表最后的生成缩略图按钮来生成。也可以通过vlc播放器来播放频道的输出地址,观看频道是否正常。 这里我们需要注意一个问题,系统是监听所有网卡的,换句话说你可以通过任意一个接口的IP+端口+路径的方式来观看该频道。

例如输出口IP为172.16.51.254 端口880 频道路径为/cctv-1.m3u8那么当你此时能连接输出口时他的播放地址为http://172.16.51.254:880/cctv-1.m3u8(注意这里是区分大小写的)

同时如果我的上网口IP为10.0.0.1,那么此时你处于上网口也可以通过http://10.0.0.1:880/cctv-1.m3u8来观看该频道

7-6 添加频道时的常见问题与解决方法:

频道状态一直是黑屏:一般是由于你添加的频道源地址 源端口不对或者选择的采集输入口不对导致的,需要重新核对数据,或者利用组播抓包工具兼差该输入口是否有这个对应组播IP的广播数据。

频道出现花屏:大多数情况是因为编码长度不对导致的,重新抓包检查编码长度,常见的编码长度为 1328 1348 1368 1380 1396

同一光猫同一输入口有的正常有的花屏、有的无法输出:在确定源地址 源端口 编码长度都正常的情况下,出现此类问题多半是组播组并发数量限制或者组播带宽不足引起的,限制线路输出频道数量的两个 基本参数也是如此,例如运营商不限制组播带宽,但限制了组播组最大并发数为4的时候,此时不论是高清还是标清,最多只能输出4个频道,当运营商不限并发数但限制组播带宽时,例如限制为30兆,根据经验一个标清频道的码流大约为4-5兆 一个高清频道的码率大约为6-12兆,当你输出频道的需求带宽大于实际限制带宽时就会出现花屏现象。

之前正常忽然出现花屏现象:多半是光猫或者交换机长时间运行导致的死机或者组播风暴,尝试重启设备并重启频道一般都是可以解决的。

频道使用vlc播放正常使用客户端播放出现花屏或者音视频不同步:客户端在直播的时候一般是调用机顶盒或者电视的系统播放器,目前已知的部分型号的乐视电视其系统播放器偶发性花屏,这种现象并不常见。一般上下换台后可以自行处理。导致音视频不同步的问题多半出现在高清频道或者卫星频道,出现此类问题是盒子或者电视的解码能力不够,卫星频道大多都是mpeg2编码对设备的解码能力要求较高。


8、导入节目单

完成频道的配置和调试后,我们就需要编辑节目单,节目单直接影响到客户端所能观看的节目。

绝大多数情况下直接根据自己的节目配置情况一键导入节目单即可。

节目单导入后默认是禁用的,我们首先需要通过修改排序功能对节目单进行排序,系统提供了简单的拖拽方法来调整,也可以通过新排序的文本框输入新的排序ID来调整。

调整排序后需要对所有频道进行分组和分类,一个频道可以属于多个分组但只能属于一个分类。(频道分组用于在直播账号管理中为不同的用户下发不同的节目单,同时如果加载分区广告模块后也用来区分不同的分区

完成上述工作后选择启用所有频道,完成所有节目单的编辑工作。节目单也可通过专家模式快速导入与导出,具体可参考专家模中的提示操作。


9、直播账号管理

直播账号管理用于创建和管理客户端APK的登陆账号,包括简单的计费,控制到期时间和该帐号对应的节目单。

账号/用户组:账号支持英文+数字,用户组即为节目单的分组,在节目单管理中创建分组即可。

MAC地址绑定模式:如果选择自动绑定客户端APK在第一次登录时会自动上报设备的MAC地址,绑定成功后该账号不能在其他设备上登陆

开通/到期时间:到期后不能登陆。

配送设备/保修到期:记录作用。

关联宽带账号/收费:记录作用

免认证设置:如果开启免认证设置后任意账号可以登陆系统。


10、APK配置和版本推送

TamronOS v4版APK客户端采用更为灵活的数据配置模式,所以需要先对基础数据进行配置才可以正常使用。

APK启动LOGO:启动APK时加载的LOGO图片,可以设置该图片的展示时间,最多上传10张每次系统会随机抽取一张。

点播映前广告:必须为MP4格式的影片Url连接,添加时需要注意展示时间大于等于广告影片的总时长。可以添加多个系统每次随机抽取一个播放。

直播字幕广告:在直播过程中展示在屏幕顶部的滚动字幕广告。

APK首页字幕广告:在APK首页选择功能页面展示的滚动字幕广告。

APK按钮管理:必须添加否则APK进入后四个功能按钮将显示为空白页面。

APK更新推送:这里需要注意的是APK在推送更新的时候会检测系统下发的版本号和上传的版本号是否一致,例如当前安装的是4.1版本,推送4.2版本且上传4.2版本的APK包才可以正常推送。


11、配置点播服务器

11-1 主动式缓存所需的系统

TamronOS全新主动式缓存系统采用Linux开发,可以从官方网站下载ISO直接安装即可(安装U盘的制作方法和安装步骤参考直播系统安装教程。)

关于服务器配置:我们建议使用存储型服务器来安装点播缓存系统,推荐Dell R510配置64G内存 16G已上固态硬盘 不少于10TB的数据存储硬盘 建议配置H700或同级别阵列卡。

安装系统前的注意事项:如果服务器带有磁盘阵列卡,在安装系前先做好磁盘阵列,建议使用Raid0或者Raid5,如果没有阵列卡系统也支持软阵列模式。

10-2 安装过程:

1、在配置完10-1的内容后,通过U盘引导系统启动进入安装向导(与直播完全一样)

2、安装结束后,系统会提示你设置上网口的IP地址、子网掩码、默认网关.

为了方便区分,可以手动在网络属性中---更改适配器设置---对本地连接的名称进行修改,方便后期维护。

当前我的配置为:

上网口:10.0.0.200 255.255.255.0 10.0.0.254 DNS运营商提供的DNS地址

输出口:172.16.52.254 255.255.255.0

对接口:192.168.1.2 255.255.255.0

提示:点播系统的网卡绑定接口类型中是没有输入口的。

3、安装完成后通过设置的上网口IP即可登录到系统后台(如果需要修改绑定上网口的网卡或者IP请在控制台进行操作


选择上图中第二项,修改lan口的网卡/IP地址/子网掩码/网关,进行对应修改即可。

4、登录系统后台并进行相关设置。

默认登录账号:admin 默认密码:123456

5、系统设置,登录系统后首先进行默认系统设置(非常重要)

后台访问端口/流媒体输出端口系统后台访问地址默认为80(不建议修改),默认流媒体输出端口为880(可以默认也可以修改为其他端口)

如果不需要修改的话直接点击“保存”按钮即可(非常重要)


5、系统注册和升级


注册前仍然需要提供系统CID,提交CID后我们会提供相应注册码,输入注册码后点击获取授权按钮即可。

6、格式化数据盘


点击上图中的磁盘管理选项,进入磁盘管理工具。

初始化硬盘参数:如果服务器内存在磁盘阵列卡并且已经做好磁盘阵列,这里选择“使用硬阵列处理”,然后点击格式化磁盘按钮。

创建软阵列:如果系统中没有磁盘阵列卡并且有多快硬盘,可以选择对应的软阵列功能来创建软阵列,选择后直接格式化磁盘即可完成软阵列的创建工作。

注意事项:未格式化的磁盘系统不会显示剩和磁盘使用率。

7、内置FTP功能

内置的FTP上传功能是为了用户可以上传一些自定义的影片,但这里注意上传自定义影片时不能使用中文路径。

8、配置对接口

点播对接口需要与直播对接口在同一IP段,对接口之间直接连接。

我这里配置点播对接口IP为192.168.99.200 子网掩码 255.255.255.0

9、配置输出口

点播和直播的输出口IP建议C段不要相同网段,例如可以这样配置,直播输出口172.16.50.254 点播输出口172.16.51.254

10、与直播系统进行对接:

点击下图中的视频采集按钮进入对接设置(在直播系统中)

点击“采集规则设置”

采集启用:选择开启

点播服务器对接地址:这里填写点播服的对接口IP

直播输出口1对接点播IP:这里填写点播输出口IP+点播流媒体输出端口(当直播和点播存在多个输出口时需要在这里一一对应)

API最大解析出错次数:最大为5,建议设置2-5均可

下载最大出错次数:最大为5

内存盘文件过期时间:建议设置3600(最好不要随意修改,使用我们的建议设置即可)

保存文件扩展名:一般为mp4,也可以修改为其他的,一般情况下不建议修改。

默认下载分辨率:3为最高清晰度

内存盘大小:如果系统服务器内存为64G,这里建议设置为32G(主动式缓存系统的内存我们建议是大于等于64G

最小下载速度和最长下载时间自动护绿:一般情况下可以设置为0表示不启用,如果网络环境较差可以根据实际情况自主设置。

缓存模式:点播下载线路建议独立一条100M已上的,对上行没有要求(建议使用联通或电信,不要使用移动或者其他线路)。建议设置为全天候自动下载。

缓存规则设置:缓存规则设置,是针对各大分类影片的过滤规则和下载配置。

标签过滤:针对该分类影片中哪些标签(例如网剧、短片、微电影等)的影片进行不缓存处理。

评分过滤:如果设置4.0,则表示低于4.0分的影片不缓存

年代过滤:如果设置为2010则表示2010年以前的影片不缓存

无评分处理:可以设置为正常缓存或者不缓存,如果设置为不缓存则表示无评分的影片不在缓存,这里不建议设置为不缓存(某些影片可能本身就是没有评分的比如综艺)。

进程数:电影、电视剧、综艺、动漫四个分类的下载进程数相加不能超过15,具体可根据自己的需求调整。

自动清理:两个百分比表示硬盘空间小于20%时开始清理,大于30%时清理结束

小视频自动删除:单位是M,设置200M时表示小于200M的影片会被自动删除,一般情况下建议设置为100-150M即可.

完成已上设置后点击保存设置按钮,然后刷新页面(可能需要多刷新几次),采集服务器运行状态显示正在运行表示配置成功.

注意:保存设置后一般需要15-30分钟的数据准备时间,数据准备结束后才会开始下载。只要通过直播输出口IP登录系统才能在已完成页面看到海报。


12、系统更新和高级操作

12-1 系统升级操作:

TamronOS IPTV系统采用ISO在线升级机制,直接复制系统ISO的连接Url到升级文本框中即可完成升级操作。

通过网站获取到最新ISO的Url直接复制到上图中红色标记的文本框中,点击开始升级,系统会自动执行升级操作并打印相应的日志,升级后需要重启服务器才可生效。

12-2 系统高级操作:

通过系统设置页面可以进行一些系统高级设置,例如关闭v2版APK的广告接口,初始化、备份、导入点播和直播的数据库,重启和关闭服务器等等。

系统提供了定时重启功能,可以按照计划任务设置每间隔几天重启一次服务器,有助于释放系统缓存。

系统提供的ping检测工具可以用于检测各个接口的连接状态。


13、常见问题的解决

对于一些常见问题的排查和解决方案;

点播服务器正常但直播提示采集服务未运行或相关设置页面卡住:有两个原因可能导致此问题;1、点播采集系统死进程,解决方法是重启服务器或者重启服务。2、点播服务器的防火墙被打开,进入点播服务器的网络属性窗口关闭windows防火墙即可(只是关闭防火墙,不要关闭防火墙服务。)

后台页面显示不正常或者某些按钮不能点击: 系统不支持IE以及使用IE内核的浏览器,如果是双核浏览器请切换到极速模式。

直播账号管理中创建账号是多了一行空白行: 同样是浏览器兼容性问题,直接删除空白行即可。

APK安装时提示解包失败: TamronOS v4版APK采用Android SDK17开发不支持低于此版本的老旧设备,解决方法是安装v2版本或者升级设备的Android系统。

IPTV系统部署后出现卡顿或加载中: 此问题有两种原因导致,1、客户端小路由的无线性能问题,可尝试更换小路由或使用网线直连机顶盒测试。2、内网部署缓存导致,解决方法是在缓存的忽略名单中添加对直播和点播的输出口IP做不缓存。

观看IPTV占用用户带宽: 这是由于计费下发死限速导致,如果核心路由是Panabit可以更改限速模式针对IPTV的直播和点播IP进行不限速操作。

部分卫星频道出现几天后无声音的问题: 此类情况多因为卫星前端设备码流输出存在错误导致,可配置频道定时重启的方法来解决。

配置自办频道第二个视频不能正常播放的问题: 自办频道播放的视频文件起编码格式和分辨率必须一致否则会出现该问题。

APK启动LOGO不清晰的问题: 图片要求最低尺寸为1920*1080 150DPI低于该分辨率的图盘会被强制拉伸全屏。

第一次安装系统提示SQLSTATE [HY200] [2002] No such file or directory : 下载的ISO损坏,制作U盘存在问题,或者使用的软碟通软件版本太低导致。

多个输出口如何配置节目单: 系统具备来路判断功能,只需要在客户端写入对应的输出口IP即可自动下发对应的节目单给APK。

点播系统如何多输出口: 原理一样可以通过路由劫持一个假域名来添加不同的路由劫持策略,此时需要在直播服务器的点播配置---点播输出地址中写入这个假域名即可。


16、时移回看配置教程

TamronOS IPTV系统9.03版本后已经支持时移回看,但需要注意开启时移回看需要对硬件配置有所更改,具体视开启时移回看的频道数量而定。

1、对硬件的要求:

开启时移:时移数据可以保存到内存,也可以保存到缓存磁盘,如果带机用户量较大(超过5000用户的环境)建议保存到内存,如果用量低于5000用户可以保存到缓存磁盘,缓存磁盘需要高速固态硬盘,容量不小于120G(支持阵列)

开启回看:回看数据只能保存到存储磁盘,存储磁盘建议不小于4T,如果带机量超过5000用户建议使用RAID0或者RAID5,容量不小于8T

2、配置缓存磁盘、存储磁盘:

打开系统设置---磁盘管理(如下图)

1532433144726534.png

选择添加磁盘;

image.png

分别创建缓存磁盘和存储磁盘(注意磁盘类型中的VOD磁盘可以用于单机部署直播点播,这里相关的设置以后在更新教程)

image.png

选择创建某个磁盘类型后,会提示选择磁盘成员,建议使用阵列卡创建好磁盘阵列后直接选择阵列盘,如果没有阵列卡可以在磁盘成员列表中选择多个磁盘,系统会自动创建软阵列。创建完成后点击开始格式化,格式化成功表示创建该磁盘类型完成。

注意如果回看数据选择保存到内存,那么在这里则不需要创建缓存磁盘。

3、转发设置:

配置好磁盘后则进入系统设置---转发设置中对时移和回看的相关参数进行设置。

image.png

时移存储路径时移存储路径可以选择保存到内存或者缓存磁盘,如果保存到内存需要增加内存的容量,例如当前系统为64G内存,每个频道开启20分钟时移,大约可开启20-30个直播频道的时移。

轮播存储位置轮播存储位置是用于创建轮播频道使用的并不参与时移回看的设置这里注意。

时移时长时移时长的单位为分钟,上图中设置为10表示时移10分钟。(一般时移不建议设置过长时间,建议10-30分钟以内)

4、频道相关设置:

image.png

要对某个频道开启时移、回看需要先停用该频道,然后直接编辑频道选择启用时移、启用回看开关即可,频道可以选择同时开启时移回看,也可以单独开启时移或者单独开启回看。

注意:启用回看需要设置一个回看录制时间,单位为小事,上图中设置24表示24小时。如果开启回看的频道较多一般建议回看时间不超过48小时。回看数据每小时生成一次,每个整点开始更新。如果要删除某个频道的回看数据可在直播设置--回看数据管理中进行对应的删除。同时也可看到不同频道每小时回看数据的大小。支持回看时移设置结束。

14、手动添加影片

TamronOS VOD Cache系统支持用户手动添加影片到系统具体方法如下;

1、配置点播系统FTP服务并启动:打开点播系统--磁盘管理--FTP服务

注意事项:正常情况下,打开FTP设置后系统已经内置好了参数,直接点击保存按钮即可(必须点击保存设置否则不会启用服务)。FTP密码可以根据需求自行修改。

FTP上传:系统默认监听所有IP,可以使用FTP工具如CuteFTP、FlashFTP等工具访问,即可方便的上传影片。

上传文件注意事项:正常打开FTP后会停留在点播系统数据影片的根目录,上传影片时需要自行创建一个目录,并将影片上传到该目录(目录名和影片名不能使用中文)

上传文件的访问路径:例如创建一个文件夹为test,上传文件名为1.mp4那么它的URL访问路径则为http://输出口IP:880/data/test/1.mp4

影片入库操作:打开直播系统后台---点播设置--视频采集--已经完成--选择添加影片按钮;

影片名称/分类:输入影片名称并选择一个分类(电影、电视剧、综艺、动漫、美剧)

年代/地区:年代为xxxx年(例如2015),从下拉菜单中选择一个地区。

主演/评分:如果要输入多个主演名称,请用英文逗号隔开,评分从1.0-9.9分

影片分类标签:如果有多个分类标签请用英文逗号隔开

上传影片海报:海报尺寸为120*170,可以更大但建议是竖图否则APK展示时会丢失比例

影片介绍:300字以内的影片介绍,太多字数可能导致APK展示时不够美观

视频文件:这里写添加影片的URL,IP需要用点播服务器的输出口IP,上图中url地址最后的",1"是必填,如果只有一个影片则,1第二个影片,2以此类推(如果分类选择为电影则只能添加一条记录)。 ,每条记录的占用一行。添加完成后点击保存该影片添加成功。


15、智能桌面的配置

TamronOS腾龙智能桌面可以更方便的管理客户端机顶盒,推送和管控相关APK,具体设置方法如下

1、全局设置:全局设置中主要针对特定用户分组的全局配置进行设置

APK安装全局设置:针对该分组的用户中,是否允许用户自行安装APK。

允许所有用户安装APK:针对该分组的用户中,允许所有用户通过网络或者U盘安装APK。

需要独立授权:针对该分组中可以指定某些用户允许安装APK(选择该选项后再直播账号管理中会多一个是否允许安装APK的开关)

禁止所有用户安装APK:禁止该分组的所有用户安装APK

是否允许用户执行高级系统设置:改功能会禁止用户通过启动器的高级系统设置进入到机顶盒原生系统设置页面,但无法限制某些盒子遥控器自带设置按钮来进入。

禁止卸载的应用包名称:注意这里一行为一条,指定某个应用不能被卸载,需要在此处填写应用包名称,包名称可以下载一个APK包名称查看器来获得。

2、主题管理:用于设置桌面启动器背景、按钮等图片和主题切换管理(注意主题需要自行上传图片生成,如果没有主题则桌面启动器不会启动)

添加主题:添加主题所需的图片必须为PNG格式,背景图尺寸为1920*1080 大按钮图尺寸473*719 小按钮尺寸314*215 单位都是像素

注意事项:每次只能启用一个主题,不能同时启用多个主题,添加完成的主题可以通过预览按钮预览主题效果,如下图

3、默认应用管理:默认应用管理用于创建机顶盒做必须的默认应用,每一个按钮都可以锁定为默认应用且不允许用户变更应用。

按钮控制:如果要在某个按钮上锁定一个默认应用则必须设置为“锁定APK”。

要启动的APK包名称:这里的包名称要跟你上传到该按钮的应用包名一致,否则会无限提示下载,以TamronOS纯直播APK为例,它的包名称就是"com.neo.tvlive"

上传默认应用:点击上传按钮上传对应的APK(一定要跟要启动的APK包名称一致)上传成功后点击保存按钮

删除默认应用:将对应的按钮控制选项设置为“不锁定”,如果之前上传了默认应用需要先点击删除按钮删除原有的默认应用在点击保存

不锁定按钮:当某个按钮状态设置为不锁定时,用户点击该按钮可以自行设置一个应用通过该按钮启动,如果要更换应用可以在该按钮上点击遥控器的菜单键并选择“替换应用”

4、应用替换:主要作用为卸载已经安装的A应用并推送一个B应用给机顶盒

应用名称:这里的应用名称指的是B应用的名称,上图中我要将VST全聚合替换为QQ音乐。

要替换的应用包名称:这里指的是A应用的包名称,比如我这里要卸载的是VST全聚合,那么VST全聚合的包名称为"net.myvst.v2"

上传新应用:上传B应用的安装包

要推送的应用包名称:在这里设置B应用的包名称,比如我设置的QQ音乐,它的包名称为"com.tencent.qqmusictv"

要推送的应用版本号:这里指的是B应用的版本号,注意这里的版本号不能写错,如果错误可能会导致应用反复推送。版本号自己安装应用后再应用中对应查询。

5、推送新应用:将一个全新的应用推送到客户端机顶盒

应用名称:要推送的应用名称,例如我这里要推送的应用是“乐播投屏”

包名:这里填写乐播投屏的包名称

上传新应用:上传应用的安装包

要推送的应用版本号:乐播投屏的版本号,注意这里的版本号不能写错,如果错误可能会导致应用反复推送。版本号自己安装应用后再应用中对应查询。

6、启动广告管理

广告类型:可以是图片也可以是视频,但注意如果选择为视频,填写视频地址时请确保客户端机顶盒可以访问这个地址

注意事项:广告可以有多条,当有多条广告存在时,系统每次启动会随机播放一条。如果广告类型为视频,那么广告播放时间要大于视频长度时间(一般多3-5秒即可)


17、虚拟机安装系统

如果只是测试或查看后台相关功能,可以使用虚拟机来安装TamronOS系统进行相关测试,本文主要讲解创建虚拟机时所需要注意的相关设置项;

硬件环境:宿主机必须支持64位,可创建不少于4G的虚拟机内存。

虚拟机版本:VMware12

1、创建虚拟机

1550319677671614.png

选择自定义,然后点击下一步;

2、选择硬件兼容版本;

1550319743141027.png
硬件兼容性中可以选择vmware支持的最好版本;

1550319812737757.png

选择稍候安装操作系统;

3、设置操作系统版本

1550319869438653.png

客户端操作系统选择为”Linux“,版本选择64位的Linux系统(centos Ubuntu都可以这个没有特殊要求只要是64位即可);

1550319967962977.png

设置处理器时,上图为最低要求,不能少于4个核心数量(非常重要);

4、设置虚拟机内存大小

1550320032463587.png

设置虚拟机内存不少于4G(注意少于4G内存将导致系统无法启动或者启动错误);

5、设置网络

1550320150545586.png

这里如果你要在宿主机访问虚拟机网络的话必须选择使用桥接网络;

6、I/O控制设置

1550320209861512.png

设置为推荐模式即可;

7、设置虚拟机硬盘

1550320238914928.png

默认推荐设置即可,不可选择IDE类型。

1550320281222476.png

选择创建新的虚拟磁盘,容量不小于16Gb;

8、自定义硬件

1550320364343695.png

点击自定义硬件,添加三张虚拟机网卡(默认已经创建了一张网卡,只需要在添加两张即可,网络模式都可以为桥接网络)

1550320441235446.png

9、设置载入系统ISO并启动虚拟机

1550320515584981.png

点击编辑虚拟机设置

1550320579542529.png

点击CD/DVD。选择使用ISO映像文件,点击浏览载入TamronOS系统的ISO点击确定后启动虚拟机即可(在虚拟机自检页面按ESC键可选择从光驱引导系统启动),系统具体安装步骤请参考本教程前几章的相关介绍。

1、计费系统的安装

1-1:安装U盘的制作方法

TamronOS的安装包采用ISO模式,既可支持U盘安装,也可通过刻录光盘的方式安装。这里我们介绍一下如何通过U盘安装系统。
需要的工具:UltraISO 软碟通 4G以上U盘 软件安装包ISO一份

1:打开软碟通并载入TamronOS的ISO;

格式化完成后,打开制作好的U盘然后再将下载的ISO(安装包),copy到U盘的根目录,到此TamronOS的安装U盘就算制作完成。


1-2:系统安装过程

    TamronOS全系产品的安装方法都是一样的,这里以计费系统的安装为例;讲解下系统安装的详细步骤。另外需要注意的是,TamronOS是纯64位系统,必须在64位的硬件平台上安装,32位硬件安装将导致启动失败或者直接无法安装。

    1、设置为U盘启动或光盘启动

     
    启动后会看到上图中的界面通过键盘选择对应的选项进行安装<1.安装腾龙认证计费系统(TamronOS)

     

    选择<1.全新安装腾龙认证计费系统(TamronOS)>


     
    根据屏幕的中文提示输入



     
    系统安装程序执行中,并打印安装的进度和过程。

     
    最后系统会要求设置默认IP 子网掩码和默认网关。


    安装成功提示,重新启动后即可正常启动系统。

    系统重新启动后,按回车键登陆系统控制台。


      重要提示  



            在系统安装过程中设置的IP就是,系统默认的管理IP;默认登陆地址为http://IP



2、对接Panabit

一:建立与RADIUS通讯的接口
应用路由--LAN接口 填写接口名称 选择网卡 设置好对接的IP地址;

 


二:开启Radius服务和设置NAS-IDE
用户认证--Radius 服务-- 基本配置
 Radius服务选择启用 NAS标识即NAS-IDE 这里设置成Panabit 主意大小写;

 


 


三:添加服务列表
用户认证 --- Radius服务 --- 服务列表 Pa装好就带一默认服务 如果只有一台计费 就直接修改默认的就行 如果有多台计费管理不同区域 请手动添加 计费服务  ! 服务器名字 任意写  服务器IP写计费的IP 我这的计费IP是172.16.254.250 认证端口和计费端口一般为默认 如有不同请按照实际情况填写 共享密匙也就是Radius通讯密钥,我这里写Aa@123456
主路由线路 选择刚刚添加的Radius 线路 备份线路 有时候选择相应的备份线路  没有的时候选择空线路就行;

 


 


三:建立地址池
用户认证 --- PPPOE认证 --- 地址池  编辑一个地址池 任意用户组名称 配置好你需要的地址池范围,我这里选10.4.0.1-10.4.255.254 根据实际情况来填写下面几个参数;

 


 


四:开启拨号服务
用户认证 --- PPPOE认证 --- 基本配置
将PPPOE接入服务 开启 其他参数请根据实际情况选择;

 


 


五:添加PPPOE服务列表
用户认证 --- PPPOE认证 --- 服务列表 -- 添加
服务器名 按要求任意填入 选好物理网卡 按实际情况填写PPPOE网关!认证方式选择 Radius认证 选择后 再选择后面的Radius服务 我这里是默认服务,默认地址池选择 刚刚配置好的地址池 Test 其他参数根据实际情况填写 Panabit的COA端口官方说是3799 这里我们就用3799;

 


 

到这里PA的PPPOE功能就配置完成
 
配置信息:
NAS-IDE : Panabit
Radius通讯密钥:Aa@123456
COA端口:3799
通讯IP地址:172.16.254.248


计费设置

一:设置IP
系统设置 --- ip设置
请根据实际情况联合Panabit 设置来设置TamronOS的IP和网关;

 


 

二:添加NAS
计费设置--NAS管理  NAS名称 填写刚刚Panabit 设置的NAS-IDE值,NAS类型选择Panabit ,NAS地址输入PA与计费通讯的IP地址,我这里是172.16.254.248,NAS密钥就是PA上的 Radius通讯密钥 这里是Aa@123456 ,COA端口和Panabit设置的COA端口一致! 更新时间一般是5分钟 即300秒 备注选填!

 


3、对接ROS教程

    一:增加PPPOE使用的地址池
            IP--POOL 填写名称 ,地址段;


    二:创建PPPOE用户策略文件.
    PPP--Profiles 填写名称 在local address 和 remote address 填写相应的设置,填写上相应的DNS地址;


    三:建立PPPOE服务
    PPP-PPPOE Server 选着接客户的Interface 网卡 如果同一局域网内有多台PPPOE服务器 可选填Service Name 服务名称 客户端可根据不同服务名来获得不同的PPPOE服务, MTU和MRU一般写1480  加密方式一般勾选PAP 和 CHAP 两个即可 Default Porfile 选择刚刚建立的PPPOE用户策略;

    四:为PPPOE用户启用RADIUS认证
    PPP--Secrets--PPP Authentication & Accounting 勾选 Use Radius 和 Accounting  Interim Update 一般设置为5分钟;

     

    五:增加Radius服务器地址
    Radius    Service上勾选PPP  Address 填写腾龙计费的IP ,Setret是计费通讯密钥 这里我先填写Aa@123456端口默认一般是1812 和 1813 如没必要请勿修改 其他保持默认就行;

     




    开启COA 端口
    Radius -- Incoming  勾选 Accept ! Port 默认为3799 你可以保持默认 我这里演示需要,将它修改成1700;

     


    六 修改NAS-IDE值
    ROS修改方式在 System---Identity;

     


    七:添加对接IP段
    Ip---Address
    添加与计费通讯的IP段 我这里是用独立网口对接计费的 计费的地址是192.168.152.1  接入了ROS 的Radius网卡所以ROS设置成192.168.152.2/24 .  用户请按照实际情况设置;

     


     
    到这里ROS里配置已经完成 请记住四个值 NAS-IDE ,Radius通讯密钥以及COA端口号 通讯IP地址
     
    NAS-IDE : BRAS-1
    Radius通讯密钥:Aa@123456
    COA端口:1700
    通讯IP地址:92.168.152.2
     
    计费设置设置IP
    系统设置 --- ip设置
    请根据实际情况联合ROS 设置来设置TamronOS的IP和网关 我这里是eth2独立线路通讯所以不需要填写网关;

    二:添加NAS
    计费设置--NAS管理  NAS名称 填写刚刚ROS设置的NAS-IDE值,NAS类型选择RouterOS,NAS地址输入ROS与计费通讯的IP地址,我这里是192.168.152.2 ,NAS密钥就是ROS上的 Radius通讯密钥 这里是Aa@123456 ,COA端口和ROS设置的COA端口一致! 跟新时间一般是5分钟 即300秒 备注选填!



4、对接华为BRAS

一:建立与RADIUS通讯的接口
我这里用3号业务版的14号口来作为Radius通讯
interface Ethernet3/1/14
ip address 172.16.100.230 255.255.255.0
 
设置Radius-server 通讯口
radius-server source interface Ethernet3/1/14

二:建立Radius认证配置
这里是建立认证配置ty.gm的命令 其中 radius服务器是 172.16.100.250 , radius通讯密钥是Aa@123456
radius-server group yt.gm
 radius-server authentication 172.16.100.250 1812 weight 0
 radius-server accounting 172.16.100.250 1813 weight 0
 radius-server shared-key Aa@123456
 radius-server class-as-car
 radius-server attribute translate
 undo radius-server user-name domain-included
 
添加COA支持 华为的COA默认是3799
radius-server authorization 172.16.100.250 shared-key Aa@123456 server-group yt.gm

三:建立地址池
建立地址池名称为test的地址池 其中网关为 10.2.47.254 地址池范围是255.255.248.0 添加section  这里必须是在 10.2.47.254/255.255.248.0 的范围内 我这里设置的是10.2.40.1--10.2.47.253,这请按照实际需求修改 !! DNS按照实际需要添加 
ip pool test local
 gateway 10.2.47.254 255.255.248.0
 section 0 10.2.40.1 10.2.47.253
 dns-server  119.29.29.29
 dns-server  223.5.5.5 secondary

四:建立全局认证计费策略
建立名字为global的认证策略  和 名字为 global的计费策略
aaa
authentication-scheme global
 authening authen-fail offline
 authentication-mode radius
accounting-scheme global
          accounting-mode radius
accounting start-fail online

五 建立域
建立名为test.sd 的域 将计费策略和认证策略绑定到刚刚建立的计费认证策略 绑定刚刚建立的yt.gm 配置
绑定 test 地址池
domain  test.sd
 authentication-scheme   global
 accounting-scheme   global
 radius-server group  yt.gm
 ip-pool test

六:建立PPP拨号配置
interface Virtual-Template 1
 ppp authentication-mode auto

七:开启PPPOE拨号服务
我这用Ethernet3/1/13开启PPPOE服务
interface Ethernet 3/1/13
 pppoe-server bind Virtual-Template 1
 bas
  access-type layer2-subscriber  default-domain  authentication test.sd

八:修改NAS-IDE
sysname GM-BRAS-MA5200G
 
配置信息:
NAS-IDE : GM-BRAS-MA5200G
Radius通讯密钥:Aa@123456
COA端口:3799
通讯IP地址:172.16.100.230

Panabit动态限速

为什么要做动态限速;

       通常很多人在配置机房时都选择通过计费系统下发限速模板给Bras(路由),可能有人觉得的这样做很方便可以在计费系统上自由创建套餐等。但实际上这样做就等同于下发了死限速,因为radius下发限速模板在任何路由系统中都具备最高优先级,不但限制的外网带宽的速度,也限制了内网系统和旁路系统的速度(例如缓存、IPTV、VOD等等)。同时死限速模式还会降低客户对宽带的体验度,甚至挤满整个上行通道让开网页也变得非常缓慢。使用动态限速技术就可以完美解决上述问题。


动态限速的优势;

        1:配合路由表分流,将主路带宽和策略带宽进行分别限速,让充足的线路跑的更快,不充足的线路不被吃满。

        2:DNS服务独享带宽,避免死限速模式中P2P类应用等堵塞上行通道导致网页解析速度变慢,开网页白屏时间长等。,

        3:配合流控系统针对不同应用给不同限速模板,让垃圾应用去跑垃圾线路。

        4:释放旁路限速,让缓存 IPTV VOD系统的输出量更大客户感知度更好。

        5:给网游独立通道,并配合策略路由跑独立线路,提升网游ping值。

        6:优化测速类应用,让所有策略类单独跑策略线路,随时测速随时达标。


动态限速的做法;

         1:计费系统部分的设置(以TamronOS计费系统对接panabit为例):

        计费系统中创建套餐,不同套餐给不同地址池名,例如10兆套餐地址池名PPPOE10M,20兆套餐地址池名PPPOE20M以此类推。套餐下发限速为0(TamronOS和panabit默认0为不限速)

1512200710833267.png


        2:panabit部分设置

        在panabit中修改地址池名与计费套餐中的地址池名进行对应,通过C段IP给不同地址池区分不同IP端(如果你不同套餐的用户量更大也可以使用B段IP来进行区别),地址池限速选择为不限速。下图中PPPOEEXT为过期套餐(如果设置为到期后允许拨号但不能上网时可以设置一个过期用户地址池,该地址池通过策略路由方式可以配置为允许登录内网交费平台或者银行支付宝网页。)

1512201001124658.png


        3:策略路由的配合

        在策略路由中优先级最高的首先是内网服务器,例如缓存 IPTV VOD等;

1512201256139698.png

        已缓存线路为例;

blob.png

        这里的源地址=LAN(LAN是我的IP群组,这个群组中包含了所有套餐的地址池IP,),目标地址为缓存系统的命中口IP,NAT线路为缓存的命中口线路。意思是当LAN群组的IP请求访问172.16.172.16这个时NAT到缓存命中口线路。其他的做法也是一样的。先配置好内网服务器的策略路由,然后配置路由表分流(三大运营商的路由表自己去网上找,以IP群组方式保存到PA),以联通路由表策略为例看下图

blob.png

策略解释:当LAN群组的IP请求访问联通IP时NAT到联通线路。这里需要注意的是,你在做这个策略之前先对你的外网线路进行梳理,比如你有电信联通移动三种线路,三种线路的带宽占比都差不多那么就可以不选择协议分流,如果占比悬殊很大,例如电信2G联通300兆移动500兆遇到这种情况就不能在传输协议这里选择任意了,需要配合自定义策略组来实现。例如电信线路的协议选择任意因为这个线路最多,联通线路可以选择www,移动线路可以选择web视频等。


例子:

blob.png

策略解释:当LAN群组中的IP访问联通路由表中的IP,且应用协议符合”游戏分流自定义协议分组“时 NAT到联通线路。也就是说客户玩游戏选择联通区时走联通线路。


        4:DNS请求独立配置;

        在配置好上述策略后,就需要配置DNS策略了,DNS策略要跟在内网重定向策略的后面,也要在路由表分流策略的前面,让系统优先处理DNS查询请求。

blob.png

策略解释:任意接口的任意IP请求”直出DNS“IP群组的IP时NAT到电信100M-4,同时在线路群组中配置一下电信100M-4这条线路不参与其他分流。直出DNS这个群组中的DNS可以包含三大运营商和公众DNS(当然你也可以配置各个运营商的DNS跑各自的独立线路,但这样会比较浪费)。例子中这条线路的上行为30M下行100M,这条线路做DNS查询用的话负载2万用户在线也是够用的,毕竟DNS请求的流量很小,但连结数非常大,所以你用来请求DNS的线路不能是限制连接数的,建议采用上下行对等20兆或者30兆的专线来跑DNS,当然这话是针对那些上万用户的网络来说,如果你只有几千用户,拿一条小AD不限连接数的跑也完全没问题。策略路由部分就说这么多,接下来还是说动态限速策略的配置。


        5:动态限速策略配置

        先找到panabit的策略管理--流量控制--策略组,并创建一个新的策略组

1512202755670219.png


        策略分析:1010 1020 1030这三条策略分别针对内网的缓存 IPTV和vod,我这里都是不限速的,你也可以拆分开分别加入到下面套餐的限速组中。我们重点解释套餐限速组的意思。

        上行部分

        3010--PPPOE20M地址池的IP访问移动线路时且动作为上行给1500(1.5M)动作为继续(意思是当本策略不满足时继续匹配下一条策略)

        3020--PPPOE20M地址池的IP访问联通线路时且动作为上行给1500(1.5M)动作为继续(意思是当本策略不满足时继续匹配下一条策略)

        3030--PPPOE20M地址池的IP访问电信线路时且动作为上行给1500(1.5M)动作为继续(意思是当本策略不满足时继续匹配下一条策略)

        3040--当PPPOE20M地址池IP无法匹配上行三条策略且动作为上行时,走任意线路给2000(2兆)上行带宽,动作为停止(意思是到此结束不在匹配下一条策略了)

        下行部分

        3050--PPPOE20M地址池的IP访问移动线路时且动作为下行给30000(30M)动作为继续(意思是当本策略不满足时继续匹配下一条策略)这里为什么给30M因为例子的环境移动线路很充足而且利用率比较低所以这里给的高一些。

        3060--PPPOE20M地址池的IP访问联通线路时且动作为下行给12000(12M)动作为继续(意思是当本策略不满足时继续匹配下一条策略)例子中的联通线路资源不多所以只给12M够用即可(策略路由中已经处理了联通线路只跑联通游戏和www)

        3070--PPPOE20M地址池的IP访问电信线路时且动作为下行给15000(15M)动作为继续(意思是当本策略不满足时继续匹配下一条策略)目的为了节省主路带宽

        3080--当上述测率都不能满足时匹配本条策略下行限速为30000(30M)动作为停止不在继续匹配下一条策略,这里因为已经配合了策略路由进行路由表分流和协议分流,这里的30M实际上是多条线路最高跑30M,并不会全部压到电信上。如果要对缓存和测速类也进行限速的话可以在3070之后3080之前增加跑缓存的限制速度,以及跑测速类(线路为any)应用独立限速等。


        上一个50兆和100兆的策略截图

1512203679533378.png

        

        结合上述两张截图我们重点解释一下3080 5080 6080这三条策略,这里看到我给的是标准的100兆带宽给了100兆的限速,但这里的一百兆是三种线路总相加不大于100兆,比如在这样的环境中,一家人有三部手机一个pad,一台电视和一台电脑,这堆设备在实际使用的时候不可能都干同一件事,比如手机可能就看看新闻聊聊微信,pad可能在玩游戏,电视和电脑可能在看视频或者下载文件。我们通过上述策略就把这堆应用全部分开去跑不同的线路,而避免了所有请求都挤到一种线路上。同时也满足了客户在测速和下载时的最高体验度(缓存不限速+DNS独立跑)。那么如果你下发死限速,除了可能会都挤到电信线路上,上行还可能被各种应用的请求彻底堵死导致开网页白屏时间长,图片显示不全丢失框架,玩游戏ping值高等各种问题。所有策略做完还需要去策略调度里调度一下才会生效。那么教程也到此结束,写的很粗糙也不尽详细,毕竟策略怎么做还需要结合自己实际的情况来分析,自己看下文章中的截图相信理解起来并不困难。


ADB命令相关教程

adb介绍

全称是:Android Debug Bridge,即安卓调试桥,是安卓sdk的一个工具;

B/S结构

adb工具是一个客户端-服务器的应用程序,包含三个方面: 
1. client:运行在PC上。其实就是shell,用来发送命令给Server。发送命令时,首先检测PC上有没有启动Server,如果后台没有Server,则自动启动一个Server,然后将命令发送到Server,并不关心命令发送过去以后会怎样。 
2. daemon:一个以后台进程的形式运行于模拟器或设备上的守护程序(daemon)。 
3. server:在PC机上作为后台进程运行的服务器。该服务器负责管理客户端与运行模拟器或设备上的adb守护程序(daemon)之间的通信。 
ADB Server检测USB接口何时连接或者移除设备,管理着adb client和adb daemon的通信。它维护着一个“已连接的设备的链表”,并且为每一个设备标记了一个状态:offline,bootloader,recovery或者online;Server一直在做一些循环和等待,以协调client和Server还有daemon之间的通信。

端口管理 
adb server与client通信的端口是5037;

三者之间的通信

Client<—>Server<—>Daemon

Client发送的命令分类 
不经过server处理就能够成功的,如adb version和adb help; 
和Server通信但不需要和手机通信的命令:adb devices; 
需要Daemon进行处理的命令;

adb环境搭建

操作系统

windows xp/7/8/10等

软件安装

adb工具包 
fastboot.exe、adb.exe、AdbWinApi.dll

android sdk 
Software Development Kit,软件开发工具包 
adb工具在<sdk>/platform-tools/目录下; 
usb驱动 
各个手机厂商的usb驱动 
需要在手机的开发者选项中打开usb调试;

配置环境变量

将adb可执行文件路径添加到环境变量PATH中; 
如果安装了SDK,则将SDK目录下的platform-tools文件夹路径和tools文件夹路径配置到环境变量PATH中;

命令详解

命令行语法

命令的语法格式为:

adb [-d|-e|-s <serialNumber>] <command>1

其中,[-d|-e|-s <serialNumber>]用来指定设备,后面会提到。除此之外,就是在adb后面跟上不同的命令即可。

通用命令

1 查看adb的用法:

adb help1

adb1

结果略; 
2 打印adb的版本号:

adb version1

结果:

Android Debug Bridge version 1.0.32Revision eac51f2bb6a8-android12

3 打印设备(usb设备或模拟器)列表;

adb devices1

结果:

List of devices attached19b3b70 device12

参数-l可以列出设备的限定符;

设备列表格式为:

[serialNumber] [state]1

[serialNumber] 
[serialNumber]是一个由adb创建的,由控制台端口号唯一标识设备或模拟器的字符串; 
如果连接的设备是USB设备,[serialNumber]为其序列号,如果是模拟器,[serialNumber]格式为 <type>-<consolePort>; 
[state] 
- offline 
未连接到adb或者无响应; 
- device 
已连接到adb上; 
- no device 
没有连接着的模拟器或设备;

常用命令

指定目标

命令格式:

adb [-d|-e|-s <serialNumber>]1

adb只能对一个设备执行命令,当有设备和模拟器的数量大于1时,未指定设备执行命令时会报错; 
解决的方法是指定一个设备,有三种方式: 
-d 
如果有多个模拟器和一个usb设备,就使用-d; 
-e 
如果有多个usb设备和一个模拟器,就使用-e; 
-s <serialNumber> 
通过指定的序列号对指定的设备或模拟器执行一条命令,这是指定设备更通用的方式;

使用adb devices命令可以得到各个设备的serialNumber;

数据相关

  • 从pc上拷贝文件到设备/模拟器上;

adb push1

结果

2164 KB/s (303659 bytes in 0.137s)1

使用参数-p用来显示传输进度,结果:

Transferring: 303659/303659 (100%)1202 KB/s (303659 bytes in 0.246s)12

拷贝的过程中,命令行即时显示进度;

  • 从设备/模拟器上拷贝文件到pc上

adb pull1

参数 
-p 用来显示传输进度; 
-a 拷贝时保留时间戳和模式,相当于linux命令cp的-p参数; 
- 安装一个安卓应用(.apk文件的路径要完整)到设备中;

adb install [-lrtsdg] <file>1

参数

-l 指禁止将文件移动到手机设备以外的位置; 
-r 指覆盖安装APP并保留旧数据; 
-t 指先测试安装一下; 
-s 指安装进SD卡中; 
-d 指允许版本代码降级; 
-g 允许所有运行权限;

  • 安装多个安装应用到设备中

adb install-multiple [-lrtsdpg] <file...>1

参数 
同adb install的参数;

常见错误

INSTALL_FAILED_UNKNOWN_SOURCES 
未知来源处于勾选状态 
INSTALL_FAILED_INVALID_URI apk 
名字不能是中文的 
INSTALL_FAILED_ALREADY_EXISTS 
已安装,需要用-r替换安装 
INSTALL_FAILED_INSUFFICIENT_STORAGE 
空间不足

  • 卸载软件,但需要知道包名;

adb uninstall <package>1

保留数据和缓存目录;

adb uninstall [-k] <package>1
  • 导出系统命令,包括error的堆栈和log类打出的日志

adb logcat [<option>] ... [<filter-spec>] ...1

查看logcat的用法

[adb] logcat --help1

过滤log输出(tag:priority)

adb logcat [tag:priority [tag:priority ...]]1

logcat命令支持多对tag:priority,用空格隔开,举例:

adb logcat ActivityManager:I MyApp:D *:S1

命令中的*表示除了前面列出的tag之外的所有tag。

如果在shell中执行命令可以设置环境变量,以简化命令:

export ANDROID_LOG_TAGS="ActivityManager:I MyApp:D *:S"1

tag详解 
以下tag的priority从低到高排列; 
- V — Verbose (lowest priority) 
- D — Debug 
- I — Info 
- W — Warning 
- E — Error 
- F — Fatal 
- S — Silent (highest priority,什么都不打印)

每个安卓log都有一个tag和priority,在日志中的显示为<priority>/<tag>

I/ActivityManager(  585): Starting activity: Intent { action=android.intent.action...}1

控制log输出格式(-v)

[adb] logcat [-v <format>]1

注意:-v后面只能接一个format值;

adb logcat -v thread1

参数含义 
- brief — 显示priority/tag和进程的PID(默认格式) 
- process — 仅显示PID 
- tag — 仅显示priority/tag 
- raw — 显示日志,不包含其它的元数据字段; 
- time — 显示日期、调用时间、priority/tag、进程的PID; 
- threadtime — 显示日期、调用时间、priority、tag、线程的PID和TID; 
- long — 显示所有的元数据字段,用空行分割;

查看缓冲区(-b) 
除了tag和priority,安卓日志还有其他的元数据字段; 
Android日志系统为日志消息保持了多个循环缓冲区,而且不是所有的消息都被发送到默认缓冲区; 
用法 
要想查看这些附加的缓冲区,可以使用-b选项

[adb] logcat [-b <buffer>]1

举例

adb logcat -b radio1

adb logcat -b all查看所有的缓冲区

缓冲区 
radio — 查看包含在无线/电话相关的缓冲区消息 
events — 查看事件相关的消息 
main — 查看主缓冲区 (默认缓冲区) 
在/dev/log/下面,有main,radio,event,system,ksystem等

其它命令行参数 
设置存储日志的文件

adb logcat -f file1

设置保存的日志文件名称,也可以使用>和>>,后面加上&就可以拔掉数据线了;

将之前的所有日志信息清空并退出:

adb logcat -c 1

设置日志输出的最大数目, 需要 -r 参数,默认是4;

adb logcat -n <count> 1

输出日志到屏幕上并退出;

adb logcat -d1

打印最近的n条log,需要-d参数;

adb logcat -t <count>1

以二进制方式输出日志;

adb logcat -B1

获取log设备的ring buffer的大小并退出;

adb logcat -g1

结果:

main: ring buffer is 2Mb (1Mb consumed), max entry is 5120b, max payload is 4076b
system: ring buffer is 256Kb (255Kb consumed), max entry is 5120b, max payload is 4076b12

设置默认的过滤器为silent,等同于adb logcat *:s

adb logcat -s 1

服务器管理

adb start-server1

检查adb server是否在运行中,没有则启动它;

adb kill-server1

中止adb server进程;

进阶命令

远程连接

adb通常使用usb进行连接,也可以无线连接; 
前提是:安卓设备和adb主机电脑在一个网络中; 
1 用usb数据线将设备和adb主机电脑连接起来,可以使用adb devices命令确认目标设备已连接; 
如:

adb devices1

结果:

List of devices attached19b3b70 device12

2 设备目标设备监听TCP/IP连接,默认端口为5555,执行命令:

adb tcpip 55551

命令返回:

restarting in TCP mode port: 555512

此时usb线可以断开了。

如果没有连接的设备,则会返回:

error: device not found1

3 获取安卓设备的ip地址,命令格式:

adb connect <device-ip-address>1

如:

adb connect 172.29.75.211

命令返回:

connected to 172.29.75.21:555512

此时再执行adb devices显示:

List of devices attached172.29.75.21:5555       device12

连接丢失处理 
如果发生连接丢失,请优先确认设备和主机依然是在同一网络下; 
然后再使用adb connect重连,或者adb kill-server后重头再来; 
断开链接 
如果希望主动断开连接,命令格式:

disconnect [<host>[:<port>]]1

执行命令:

adb disconnect 172.29.75.211

再使用adb devices,之前连接的设备就不存在了:

List of devices attached12

此时执行adb connect 172.29.75.21可以直接再次连接上。

有个安卓软件adbWireless,实现的也是无线连接的功能,而且需要root权限,目前并未发现必须使用它的理由。

ADB shell commands

adb提供了一个可以在模拟器/连接着的设备上运行多种命令的unix shell; 
shell执行的命令 
命令的二进制文件在模拟器/连接着的设备的文件系统中,/system/bin/… 
可以执行命令查看:

ls /system/bin/1

结果:

ATFWD-daemon
PktRspTest...略...ylsecureserver
yulong_tw_test12345

BTW: 
adb shell中ls的结果与linux ls结果格式的差异;

运行shell命令的两种方式 
- adb shell shell_command 
每次执行一个单独的shell命令,然后退出shell; 
命令格式:

adb [-d|-e|-s <serialNumber>] shell <shell_command>1
  • 先进入shell,再在shell中执行命令;

adb [-d|-e|-s <serialNumber>] shell1

结束shell的方式 
使用快捷键CTRL-D; 
使用命令exit;

常用shell命令

  • logcat 
    同adb logcat的用法;

  • screencap 
    截图

usage: screencap [-hp] [-d display-id] [FILENAME]1

参数: 
-h: 显示帮助; 
-p: 保存为一个png文件; 
-d: 指定要捕捉的显示id,默认为0; 
文件名是由.png结尾,则保存为一个png文件;如果由.bmp或.jpg结尾,则保持成对应的文件格式,但会比png文件大很多; 
如果没有指定文件名,则显示到标准输出中;

  • screenrecord 
    录制视频,mp4格式 
    语法

screenrecord [options] <filename>1
adb shell screenrecord [options] <filename>1

screenrecord选项 
–help 
显示命令语法和选项; 
–size 
设置录像大小,格式: 1280x720.如果支持的话,默认值是设备自身的显示分辨率,否则是1280x720。 最好的情况是使用设备的高级视频编码(AVC)解码器; 
–bit-rate 
设置路线的位比率,单位是兆位每秒。默认是4Mbps。增加位比率可以提升录像质量,但也会使文件变大。 
screenrecord –bit-rate 6000000 /sdcard/demo.mp4 
–time-limit 
设置最大的录制时间,单位是秒。默认且最大录制时间是3分钟;使用ctrl+c也可以中断录制 
–rotate 
将输出结果旋转90度,此功能是实验性功能,不一定支持; 
–verbose 
在命令行窗口显示日志信息。默认情况下命令行窗口不显示任何内容;

注意 
当保持屏幕长宽比时,screenrecord能够录制你设定的任何码比率和分辨率; 
该工具按默认的方向和分辨率录制,且最长录制3分钟; 
一些手机并不能录制它们自身的分辨率,如遇此问题,可以录制更小一些的分辨率; 
录制过程中不支持屏幕旋转,旋转可能会中断录制;

  • am 
    活动管理器命令,功能非常强大;

比如,可以启动一个app,但需要知道包名和活动名:

am start -n 包(package)名/包名.活动(activity)名称1

介绍一个间接的方法:

monkey -p app.greyshirts.sslcapture -c android.intent.category.LAUNCHER 11

其它命令:

am start -n com.android.camera/com.android.camera.Camera 运行照相机
am start -a android.intent.action.CALL -d tel:10086 拨打电话
am start -a android.intent.action.VIEW -d  http://www.so.cn/ 启动浏览器123
  • pm 
    包管理器,同样功能非常强大; 
    列出设备中所有包的名称和路径;

pm list packages [-f]1

列出指定包名的apk路径:

pm path com.qihoo.map360.auto1

结果:

package:/data/app/com.qihoo.map360.auto-2/base.apk1
  • 查看设备ip

比如无线连接需要查看手机ip,可以直接使用命令:

ifconfig wlan01

结果:

wlan0: ip 172.29.75.21 mask 255.255.0.0 flags [up broadcast running multicast]1
  • busybox 
    adb shell中支持的命令跟linux shell相差很远,比如想知道adb shell中支持的命令数量,使用命令:

ls /system/bin | wc -l1

结果:

/system/bin/sh: wc: not found1

如何解决?可以使用busybox:

ls /system/bin | busybox wc -l1

结果:

3011

单独执行命令busybox显示busybox的用法及支持的命令:

BusyBox v1.21.1 (2013-07-08 10:26:30 CDT) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2012.Licensed under GPLv2. See source distribution for detailedcopyright notices.
Usage: busybox [function [arguments]...]
   or: busybox --list[-full]
   or: busybox --install [-s] [DIR]
   or: function [arguments]...
        BusyBox is a multi-call binary that combines many common Unix
        utilities into a single executable.  Most people will create a
        link to busybox for each function they wish to use and BusyBox
        will act like whatever it was invoked as.
Currently defined functions:
        [, [[, acpid, add-shell, addgroup, adduser, adjtimex, arp, arping, ash,
        awk, base64, basename, beep, blkid, blockdev, bootchartd, brctl,
        bunzip2, bzcat, bzip2, cal, cat, catv, chat, chattr, chgrp, chmod,
        chown, chpasswd, chpst, chroot, chrt, chvt, cksum, clear, cmp, comm,
        conspy, cp, cpio, crond, crontab, cryptpw, cttyhack, cut, date, dc, dd,
        deallocvt, delgroup, deluser, depmod, devmem, df, dhcprelay, diff,
        dirname, dmesg, dnsd, dnsdomainname, dos2unix, du, dumpkmap,
        dumpleases, echo, ed, egrep, eject, env, envdir, envuidgid, ether-wake,
        expand, expr, fakeidentd, false, fbset, fbsplash, fdflush, fdformat,
        fdisk, fgconsole, fgrep, find, findfs, flock, fold, free, freeramdisk,
        fsck, fsck.minix, fsync, ftpd, ftpget, ftpput, fuser, getopt, getty,
        grep, groups, gunzip, gzip, halt, hd, hdparm, head, hexdump, hostid,
        hostname, httpd, hush, hwclock, id, ifconfig, ifdown, ifenslave,
        ifplugd, ifup, inetd, init, insmod, install, ionice, iostat, ip,
        ipaddr, ipcalc, ipcrm, ipcs, iplink, iproute, iprule, iptunnel,
        kbd_mode, kill, killall, killall5, klogd, last, less, linux32, linux64,
        linuxrc, ln, loadfont, loadkmap, logger, login, logname, logread,
        losetup, lpd, lpq, lpr, ls, lsattr, lsmod, lsof, lspci, lsusb, lzcat,
        lzma, lzop, lzopcat, makedevs, makemime, man, md5sum, mdev, mesg,
        microcom, mkdir, mkdosfs, mke2fs, mkfifo, mkfs.ext2, mkfs.minix,
        mkfs.vfat, mknod, mkpasswd, mkswap, mktemp, modinfo, modprobe, more,
        mount, mountpoint, mpstat, mt, mv, nameif, nanddump, nandwrite,
        nbd-client, nc, netstat, nice, nmeter, nohup, nslookup, ntpd, od,
        openvt, passwd, patch, pgrep, pidof, ping, ping6, pipe_progress,
        pivot_root, pkill, pmap, popmaildir, poweroff, powertop, printenv,
        printf, ps, pscan, pstree, pwd, pwdx, raidautorun, rdate, rdev,
        readahead, readlink, readprofile, realpath, reboot, reformime,
        remove-shell, renice, reset, resize, rev, rm, rmdir, rmmod, route, rpm,
        rpm2cpio, rtcwake, run-parts, runlevel, runsv, runsvdir, rx, script,
        scriptreplay, sed, sendmail, seq, setarch, setconsole, setfont,
        setkeycodes, setlogcons, setserial, setsid, setuidgid, sh, sha1sum,
        sha256sum, sha3sum, sha512sum, showkey, slattach, sleep, smemcap,
        softlimit, sort, split, start-stop-daemon, stat, strings, stty, su,
        sulogin, sum, sv, svlogd, swapoff, swapon, switch_root, sync, sysctl,
        syslogd, tac, tail, tar, tcpsvd, tee, telnet, telnetd, test, tftp,
        tftpd, time, timeout, top, touch, tr, traceroute, traceroute6, true,
        tty, ttysize, tunctl, udhcpc, udhcpd, udpsvd, umount, uname, unexpand,
        uniq, unix2dos, unlzma, unlzop, unxz, unzip, uptime, users, usleep,
        uudecode, uuencode, vconfig, vi, vlock, volname, wall, watch, watchdog,
        wc, wget, which, who, whoami, whois, xargs, xz, xzcat, yes, zcat, zcip1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556

可以看到它支持的命令实用了很多。

比如在adb shell中无法用命令拼接的方式杀死一个后台运行的logcat,但用busybox下的命令就可以搞定:

ps | grep logcat | busybox awk '{print $2}' | busybox xargs kill -91

SHELL脚本

shell脚本是一个更大的话题,此处略;

logcat -v time -f /sdcard/$(date +%Y%m%d-%H%M%S).log *:V &ls -l /sdcard/$(date +%Y%m%d)*.log12

终端工具

使用终端工具可以在手机上用命令操作手机等等,推荐工具:超级终端;

获取apk文件的包名

获取apk包名的方式有很多,这里介绍常用的几种: 
1. 借助第三方工具,如apk-info: 

这里写图片描述

  1. 如果按照了sdk,可以使用aapt工具(在sdk的build_tools目录下),

aapt dump badging *.apk1

结果的前几行:

package: name='com.qihoo.map360.auto' versionCode='18' versionName='1.1.8' platformBuildVersionName='5.0-1521886'sdkVersion:'8'targetSdkVersion:'19'123

常见问题

  1. daemon not running. starting it now on port 5037

执行命令后出现:

* daemon not running. starting it now on port 5037 *
ADB server didn't ACK
* failed to start daemon *123

一般是端口绑定失败。 
使用命令:

netstat -ano | findstr 50371

结果:

  TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       <PID>1

最后一列是PID,再从tasklist中找到该PID对应的进程,结束掉;

tasklist  |  findstr <PID>


华为交换机端口镜像

如果我们要对交换机下面的数据流量进行抓包的话;那么就需要在交换机上配置镜像端口;

也就是说24端口镜像了23端口的所有数据;然后你吧电脑接在24端口上就能抓包到23端口的所有数据;

下面我们就用华为S5700交换机来演示如何配置端口镜像

华为S5700交换机配置怎么端口镜像?











  1. 演示环境中是通过电脑的com接口连接华为交换机的

    你也可以通过telnet来操作

  2. 2

    先确认你电脑的com接口编号

    华为S5700交换机配置怎么端口镜像?
  3. 然后运行超级终端工具

    华为S5700交换机配置怎么端口镜像?
  4. 选择你电脑的com接口编号

    华为S5700交换机配置怎么端口镜像?
  5. 设置比特率

    华为S5700交换机配置怎么端口镜像?
  6. 成功登陆交换机

    华为S5700交换机配置怎么端口镜像?
  7. 在系统视图下配置端口镜像

    先配置观察端口

    [Quidway]observe-port 1 interface GigabitEthernet 0/0/24

    华为S5700交换机配置怎么端口镜像?
  8. 然后再进入需要镜像的端口

    [Quidway]interface GigabitEthernet 0/0/23

    华为S5700交换机配置怎么端口镜像?
  9. 在配置镜像端口模式

    [Quidway-GigabitEthernet0/0/23]port-mirroring to observe-port 1 both

    华为S5700交换机配置怎么端口镜像?
  10. 配置完成之后用display current 查看下配置

    华为S5700交换机配置怎么端口镜像?
  11. 剩下的就是你吧电脑接入到24端口来观察23端口的数据了


JDK安装与环境变量配置

很多时候我们在使用华为HITOOL或者APK反编译工具是都需要JAVA运行环境,这里重点讲解下JAVA环境的系统变量配置;

  1. 安装JDK 选择安装目录 安装过程中会出现两次 安装提示 。第一次是安装 jdk ,第二次是安装 jre 。建议两个都安装在同一个java文件夹中的不同文件夹中。(不能都安装在java文件夹的根目录下,jdk和jre安装在同一文件夹会出错)

    如下图所示

    JDK安装与环境变量配置
  2. 1:安装jdk 随意选择目录 只需把默认安装目录 \java 之前的目录修改即可

    2:安装jre→更改→ \java 之前目录和安装 jdk 目录相同即可

    注:若无安装目录要求,可全默认设置。无需做任何修改,两次均直接点下一步。

    JDK安装与环境变量配置
    JDK安装与环境变量配置
  3. 安装完JDK后配置环境变量  计算机→属性→高级系统设置→高级→环境变量

    JDK安装与环境变量配置
  4. 系统变量→新建 JAVA_HOME 变量 。

    变量值填写jdk的安装目录(本人是 E:\Java\jdk1.7.0)

  5. 系统变量→寻找 Path 变量→编辑

    在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

    (注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)

    JDK安装与环境变量配置
  6. 系统变量→新建 CLASSPATH 变量

    变量值填写   .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点)

    系统变量配置完毕

    JDK安装与环境变量配置
  7. 检验是否配置成功 运行cmd 输入 java -version (java 和 -version 之间有空格)

    若如图所示 显示版本信息 则说明安装和配置成功。

    JDK安装与环境变量配置


wireshark 入门教程

Wireshark(前称Ethereal)是一个网络数据包分析软件。网络数据包分析软件的功能是截取网络数据包,并尽可能显示出最为详细的网络数据包数据。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

网络管理员使用Wireshark来检测网络问题,网络安全工程师使用Wireshark来检查资讯安全相关问题,开发者使用Wireshark来为新的通讯协定除错,普通使用者使用Wireshark来学习网络协定的相关知识。当然,有的人也会“居心叵测”的用它来寻找一些敏感信息……。Wireshark相对于tcpdump而言,界面更友好,功能更强大。

基本使用

以下的介绍都是以mac下的wireshark 1.12.2版本为基础。

认识界面

说明:

常用按钮从左到右的功能依次是:

1、列出可用接口。

2、抓包时需要设置的一些选项。一般会保留最后一次的设置结果。

3、开始新的一次抓包。

4、暂停抓包。

5、继续进行本次抓包。

6、打开抓包文件。可以打开之前抓包保存后的文件。不仅可以打开wireshark软件保存的文件,也可以打开tcpdump使用-w参数保存的文件。

7、保存文件。把本次抓包或者分析的结果进行保存。

8、关闭打开的文件。文件被关闭后,就会切换到初始界面。

9、重载抓包文件。

设置数据抓取选项

点击常用按钮中的设置按钮,就会弹出设置选项对话框。在这个对话框中我们可以选中需要监听的接口,设置混杂模式,设置抓取数据包的过滤条件。如下图:

首先,选中需要监听获取数据包的接口。接口列表区列出了所有可以使用的接口。如果接口前面的复选框被选中,说明对这个接口监听捕获数据包。

其次,设置混杂模式。设置混杂模式的作用是将网卡设置到混杂模式。如果不设置混杂模式,你的计算机只能获取数据包发往的目标是你计算机和从你计算机出去的数据包。如果设置了混杂模式,你就可以捕获局域网中所有的数据包。如果窗口中的 "Use promiscuous mode on all interfaces"前面的复选框被选中,说明对所有的接口使用混杂模式。如果想单独设置,可以双击接口列表中的接口,会弹出如下的对话框。然后选中或者去掉“Capture packets in promiscuous mode”前面复选框。然后点ok按钮。

再次,设置捕获过滤条件。在点设置按钮弹出的主设置对话框中和双击接口列表弹出的对话框中都会有“Capture Filter”项。在文本框中我们可以设置捕获过滤条件。如,我们只捕获http相关的数据包,我们就可以设置捕获条件为“port 80”。因为http使用的是80端口。

最后,所有的设置完毕后,点击设置主窗口中的“Start”按钮,开始捕获数据。数据捕获完后,可以点常用按钮中的“保存”按钮保存数据。

使用显示过滤器

显示过滤器应用于捕获文件,用来告诉wireshark只显示那些符合过滤条件的数据包。显示过滤器比捕获过滤器更常用。他可以用来过滤不想看到的数据包,但是不会把数据删除。如果想恢复原状,只要把过滤条件删除即可。

过滤器表达式对话框,是的wireshark的可以很简单的设置过滤表达式。点击“Expression”按钮就可以打开这个对话框。如下图:

对话框分左中右三部分。左边为可以使用的所有协议域。右边为和协议域相关的条件值。中间为协议域与条件值之间的关系。过滤器表达式对于初学者很有用。如上图,我们创建的表达式的作用是,只显示http协议包中包含关键词“bo56.com”的所有数据包。

Field name说明:
这个列表中展示了所有支持的协议。点击前面的三角标志后,可以列出本协议的可过滤字段。当选中“Field name”列表中的任何一项,只需要输入你想要的协议域,就会自动定位到相应的协议域选项。

Relation说明:
is present    如果选择的协议域存在,则显示相关数据包。
contains     判断一个协议,字段或者分片包含一个值
matches             判断一个协议或者字符串匹配一个给定的Perl表达式。

Value(Protocol)说明:
此处输入合适的值。如果选择的协议域和这个值满足Relation中指定的关系,则显示相关数据包。

Predefined values说明:
有些协议域包含了预先定义的值,有点类似于c语言中的枚举类型。如果你选择的协议域包含这样的值,你可以在这个列表中选择。

Function函数说明:
过滤器的语言还有下面几个函数:
upper(string-field)-把字符串转换成大写
lower(string-field)-把字符串转换成小写
upper((和lower((在处理大小写敏感的字符串比较时很有用。例如:
upper(ncp.nds_stream_name) contains "BO56.COM"
lower(mount.dump.hostname) =="BO56.COM"

如果你熟悉了这个规则之后你就会发现手动输入表达式更有效率。当时手动在flter文本框中输入表达时,如果输入的语法有问题,文本框的背景色会变成红色。这时候,你可以继续输入或者修改,知道文本框中的表达式正确后,文本框的背景色又会变成绿色。

使用着色规则

你经常会在数据包列表区域中看到不同的颜色。这就是wireshark做的很人性化的一方面。它可以让你指定条件,把符合条件的数据包按指定的颜色显示。这样你查找数据包会更方便些。下面我们说一下如何设置颜色规则。

点击“view”菜单,然后选择“Coloring Rules”选项就会弹出设置颜色规则设置对话框。你点击颜色规则设置的快捷按钮也可以打开颜色设置对话框。如下图:

打开的对话框中默认已经有一些规则。我们抓取的数据包中经常会看到一些不同的颜色,就是应用的这些默认的规则。点击“New”按钮可以添加规则。如下图:

name字段中填写规则的名称,方便记忆。

string字段中填写过滤规则。这里的语法和显示规则表达式一致。点击 上图中的“Expression”按钮,你就会看到熟悉的规则表达式对话。

Foreground Color按钮用于选择前景色。

Background Color按钮用于选择背景色。

Disabled按钮用于指示是否禁用这条规则。

点击ok按钮后,规则自动会添加到规则列表中的最前端。

注意:wireshark在应用规则的时候,是按自上而下的顺序去应用规则。因此刚添加的规则会优先应用。如果你想调整顺序,可以选中要调整顺序的规则,然后点击右边的“UP” 或则 “Down” 按钮。

颜色规则设置好后,只需要点apply按钮就可以应用规则了。规则效果应用如下图:

 

使用图表

图形分析是数据分析中必不可少的一部分。也是wireshark的一大亮点。wireshark有不同的图形展现功能,以帮助你了解捕获的数据包。下面我们对经常使用的IO图,双向时间图做下介绍。

IO图

wireshark的IO图让你可以对网络上的吞吐量绘图。让你了解网络数据传输过程中的峰值和波动情况。通过“Statistics”菜单中的“IO Graphs”选项可以打开这个IO图对话框。如下图:

可以看到IO图表对话框中会分为三个区。

过滤器区:设置过滤条件,用于图形化展示过滤条件相关数据包的变化情况。而且可以为每个不同的条件指定不同的颜色。过滤条件的语法和之前介绍的显示过滤器的语法一致。过滤条件为空,此图形显示所有流量。

坐标区:在这里可以设置图表的x轴和y轴。x轴为时间,y轴为包的数量。如图,我们设置Y轴的单位是Bytes/Tick。

趋势图区:根据过滤器设置的条件和坐标区设置,数据分析后回在这个区域以图形化方式展示。点击图形中的点,会自动定位到相应的数据包。点击趋势图中的低谷点,你会发现大量的数据包重传。

IO图表还可以通过函数对数据进行聚合处理。

点击Y轴中Unit选项中的Advanced后,就会再过滤器区就会增加Calc选项。如下图:

相关函数说明:

MIN( ), AVG( ), MAX( ) 分别是统计协议域中数值的最小,平均和最大值。注意,这三个聚合函数只对协议域的值为数字的才有效。

Count( ) 此函数计算时间间隔内事件发生的次数,在查看TCP分析标识符时很有用,例如重传。

Sum( ) 该函数统计事件的累加值。和MIN()函数一样,这个也只有协议域的值为数字的情况下才有效。

双向时间图

wireshark还有一个功能就是可以对网络传输中的双向时间进行绘图。双向时间(round-trip time, RTT),就是一个数据包被确认正常接收所花费的时间。以tcp协议为例,就是你push一个数据到一台主机,主机回应一个ack给你的主机,你的主机并成功接收ack回应。这两个过程花费的时间总和就是双向时间。双向时间通常用来寻找网络传输过程中的慢点和瓶颈,用以判断网络传输是否有延迟。

通过“Statistics”菜单中的“Tcp  StreamGraph”中的“Round Trip Time Graph”选项可以打开这个双向时间图对话框。如下图:

这个图表中的每个点代表一个数据包的双向时间。你可以单机图表中的任何一点,然后在数据包列表区就会自动定位到相应的数据包。从数据表来看,我们下载压缩包还是比较稳定的。数据包的rtt时间大多数在0.05s以下,其他大多数在0.1s左右,少数超过了1.5s。

跟踪tcp流


Wireshark分析功能中最不错的一个功能是它能够将TCP流重组。重组后的数据格式更容易阅读。跟踪TCP流这个功能可以将接收到的数据排好顺序使之容易查看,而不需要一小块一小块地看。这在查看HTTP、FTP等纯文本应用层协议时非常有用。

我们以一个简单的HTTP请求举例来说明一下。打开wireshark_bo56_pcap.pcapng,并在显示过滤器中输入“http contains wireshark”,点击“apply”按钮后,在数据包列表框中就会只剩下一条记录。如下图。

右键单击这条记录并选择Follow TCP Stream。这时TCP流就会在一个单独的窗口中显示出来。如下图:

wireshark_tcp_follow_dialog

我们看到这个窗口中的文字会有两种颜色。其中红色用于表示从源地址到目标地址的流量。在我们的例子里面就是从我们本机到web服务器的流量。你可以看到最开始的红色部分是一个GET请求。蓝色部分是和红色部分相反的方向,也就是从目标地址到源地址的流量。在我们的例子中,蓝色部分的第一行是“HTTP/1.1 200 OK”,是来自服务器的一个http成功响应。

在这个窗口中除了能够看到这些原始数据,你还可以在文本间进行搜索,将其保存成一个文件、打印,或者以ASCII码、EBCDIC、十六进制或者C数组的格式去查看。这些选项都可以在跟踪TCP流窗口的下面找到。


服务咨询热线

0536-8619798

移动服务热线:

13791663000(徐)