当前位置: 首页 > news >正文

帮别人做ppt挣钱的网站搜索引擎seo是什么意思

帮别人做ppt挣钱的网站,搜索引擎seo是什么意思,wordpress qqlogin,多媒体艺术设计一,背景 通常一些偷流量、端口占用、网络负载高、socket创建释放异常等Android网络相关问题,可以通过使用tcpdump抓tcp/ip报文,来定位。但是tcpdump无进程信息,也没有APK包名信息,无法确认异常的报文来自哪些Apk或者n…

一,背景

通常一些偷流量、端口占用、网络负载高、socket创建释放异常等Android网络相关问题,可以通过使用tcpdump抓tcp/ip报文,来定位。但是tcpdump无进程信息,也没有APK包名信息,无法确认异常的报文来自哪些Apk或者native进程。本题解决tcpdump报文无法关联到哪个进程/APK的问题。

二,tcpdump

tcpdump是该类问题基本的工具。在此仅作简单介绍。

tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.0.1/24 -C 60 -W 15 -w /data/....

tupdump使用参数说明

tcp

ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型。如果都看,则删掉这个字段

-i eth1

只抓经过接口eth1的包。可以换成其他网卡,比如rmnet0。有些手机产品,可能传统数据在rmnet0, IMS数据在rmnet8(举例)。为避免遗漏可以 -i any 表示抓取所有网卡的tcpdump。

-t

不显示时间戳

-s 0

抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包。默认不要这个参数,除非是为了导出完整应用层报文。

-c 100

只抓取100个数据包

dst port ! 22

不抓取目标端口是22的数据包

src net 192.168.0.1/24 

数据包的源网络地址为192.168.0.1/24

-w /data/netdebug/tcpdump.pcap

保存到指定位置。注意位置的selinux权限,注意不要放在/mnt等重启后会丢的位置。

-C 60 -W 15 
-C 表示count。 tcpdump将在接受到count个数据包后退出。-W与-C 选项配合使用, 这将限制可打开的文件数目, 并且当文件数据超过这里设置的限制时, 依次循环替代之前的文件, 这相当于一个拥有filecount 个文件的文件缓冲池. 同时, 该选项会使得每个文件名的开头会出现足够多并用来占位的0, 这可以方便这些文件被正确的排序。

其他可以参考 :

tcpdump详解及抓取安卓数据包使用介绍 - Curtain_dusk - 博客园 (cnblogs.com)

三,strace

strace命令可以用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。

针对网络问题,开机阶段在adb shell中敲如下命令:

adb root
adb shell
#mkdir /data/netdebug
#strace -p `pidof zygote64` -f -tt -e trace=network -o /data/netdebug/strace.txt

 由于zygote是所有的java世界APP的父进程,参数:

-p `pidof zygote64` -f

用来跟踪所有zygote孵化出来的应用的系统调用信息。

-tt 

用来打印时间戳

 -e trace=network

用来筛选network相关的打印,避免打印太多。

抓到的trace.txt,可以通过关键字筛选你需要的LOG,如:

4895  10:59:30.755422 sendto(71, "\32\34 \0056\r2.18.24.01971\v\"t\237\17X<L\\", 28, 0, {sa_family=AF_INET, sin_port=htons(8003), sin_addr=inet_addr("221.181.97.233")}, 16) = 28
4895  10:59:33.788692 sendto(71, "\32\34 \0056\r2.18.24.01971\v\"t\237\17X<L\\", 28, 0, {sa_family=AF_INET, sin_port=htons(8003), sin_addr=inet_addr("221.181.97.233")}, 16) = 28
4895  10:59:34.803777 sendto(71, "\32\34 \0056\r2.18.24.01971\v\"t\237\17X<L\\", 28, 0, {sa_family=AF_INET, sin_port=htons(8003), sin_addr=inet_addr("221.181.97.233")}, 16) = 28
4905  10:59:34.830972 recvfrom(71, "\32\34 \0066\0\v,6\016223.160.207.64B\0\0\357K", 4096, 0, {sa_family=AF_INET, sin_port=htons(8003), sin_addr=inet_addr("221.181.97.233")}, [16]) = 29
4895  10:59:36.833750 sendto(71, "\32\34 \0056\r2.18.24.01971\v\"t\237\17X<L\\", 28, 0, {sa_family=AF_INET, sin_port=htons(8003), sin_addr=inet_addr("221.181.97.233")}, 16) = 28
4895  10:59:38.611536 sendto(71, "&\0\0\1'\1\0\0\0\0\0\0\0\0\0\0\n\2t\237\17X\21\351\246,0\1LR\0\\"..., 295, 0, {sa_family=AF_INET, sin_port=htons(30013), sin_addr=inet_addr("112.53.47.99")}, 16) = 295
4905  10:59:38.700206 recvfrom(71, "&\0\0\1\20\1\0\351\246\0\0\0\0\0\0\0\n\f\21\351\246,0\1L\\b\0\7\367\357|"..., 4096, 0, {sa_family=AF_INET, sin_port=htons(30013), sin_addr=inet_addr("112.53.47.99")}, [16]) = 272
4895  10:59:39.920103 sendto(71, "\32\34 \0056\r2.18.24.01971\v\"t\237\17X<L\\", 28, 0, {sa_family=AF_INET, sin_port=htons(8003), sin_addr=inet_addr("221.181.97.233")}, 16) = 28

时间戳左边的是进程ID,右边表示发送或接收、对方的端口以及对方的ip地址等信息。

更多关于strace的介绍,参考下面:

Linux strace命令 - ggjucheng - 博客园 (cnblogs.com)

四,netstat

strace打印用来定位有两个缺点。一个是如果系统网络吞吐率比较高,打印会比较多,甚至爆掉。另一个就是看不到应用创建socket在本地的端口。对于有些短时间创建了大量socket却并未能正常联网导致端口被占用的问题,定位不方便。strace的缺点=可以通过使用netstat命令来弥补:

adb root
adb shell
#netstat -tunpla

打印的信息如下:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program Name作为服务端
tcp        0      0 127.0.0.1:60001         0.0.0.0:*               LISTEN      3805/com.fiill.app.map
tcp        0      0 193.18.2.101:60001      0.0.0.0:*               LISTEN      491/name-server作为client
tcp        0      0 193.18.2.101:60207      193.18.2.100:60034      ESTABLISHED 2793/com.fiill.car.parking
tcp        0      0 193.18.2.101:58211      193.18.2.100:60027      ESTABLISHED 1521/com.android.car

 端口、IP、包名、PID、当前进程状态都很清晰。缺点手动netstat才会有。

五,trace脚本化

1,通过周期性保存netstat打印

针对netstat不是周期性打印的缺陷,可以通过新建脚本放到系统中运行解决。不多说,直接上代码: 

netstat_dump.sh

#! /system/bin/sh#
#adb root
#adb shell "mkdir -p /data/netdebug"
#adb push netstat_dump.sh /data/
#adb shell chmod 777 /data/netstat_dump.sh
#./data/netstat_dump.sh
#global GPATH="/data/netdebug"prepare_path(){mkdir -p $GPATH
}prepare_pathwhile true
doDUMP_FILE=$GPATH/netstat_tunpla_$(date '+%F-%H-%M-%S')echo "******BEGIN******" >> $DUMP_FILEdate '+%F-%H-%M-%S' >> $DUMP_FILEnetstat -tunpla >> $DUMP_FILEdate '+%F-%H-%M-%S' >> $DUMP_FILEecho "******END******" >> $DUMP_FILEsleep 30
done

 上述脚本是每30秒执行一次netstat, 并保存在/data/netdebug/目录下以时间戳命令的文件中。

2,其他相关命令

如果要确认一些系统配置,其他网络相关的命令还有:

sysctl -a 

busybox arp -a

busybox ip route

busybox ifconfig

加上busybox,是考虑可能系统没相关组件,某些命令敲了没结果。

3,strace创建开机运行脚本

类似地,也可以给strace脚本编译到系统中,通过init.rc启动,实现自动化。

创建一个starce_network.sh脚本,编译到/system/bin目录。

#! /system/bin/sh#
#adb root
#adb shell "mkdir -p /data/netdebug"
#global GPATH="/data/netdebug"prepare_path(){mkdir -p $GPATH
}prepare_pathstrace -p `pidof zygote64` -f -tt -e trace=network -o /data/netdebug/strace.txt

在init.rc里面声明:

service starce_network /system/bin/starce_network.shclass late_startuser rootgroup rootdisabledoneshot

备注:

1,类似地,可以增加更多的脚本,比如开机启动tcpdump。不在冗述。

2,针对native世界,则 strace -p `pidof zygote64` -f 覆盖不到。 可以创建多个实例,通过如

-p `pidof surfaceflinger`

穷举的方式来dump。

六,其他

1,统计tcp连接情况

netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c

结果:
     81 ESTABLISHED
     14 LISTEN
      1 SYN_SENT
      2 TIME_WAIT

2,查看系统配置

cat /etc/sysctl.conf

如果不符合预期则修改上述文件,保存退出并

sysctl -p

使配置生效。主要,如果linux没有该文件节点,调查内核编译配置

CONFIG_DEBUG_FS

是否打开了。

3,部分网络配置说明

#tcp 检查间隔(tcp keepalive 探测包的发送),默认75
tcp_keepalive_intvl


#tcp 检查次数(如果对方不予应答,探测包的发送次数)默认 9
tcp_keepalive_probes

#对于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃,不应该大于255,默认值是5,对应于180秒左右时间
net.ipv4.tcp_syn_retries=2
net.ipv4.tcp_synack_retries=2

#表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为300秒
net.ipv4.tcp_keepalive_time=1200
net.ipv4.tcp_orphan_retries=3

#表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间
net.ipv4.tcp_fin_timeout=30

#表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。
net.ipv4.tcp_max_syn_backlog = 4096

#表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭
net.ipv4.tcp_syncookies = 1
 
#表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭
net.ipv4.tcp_tw_reuse = 1

#表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭
net.ipv4.tcp_tw_recycle = 1
 
##减少超时前的探测次数
net.ipv4.tcp_keepalive_probes=5

#优化网络设备接收队列
net.core.netdev_max_backlog=3000

#表示系统同时保持 TIME_WAIT 的最大值,如果超过这个值,TIME_WAIT 会被立刻清除并打印警告信息。
net.ipv4.tcp_max_tw_buckets=2500

#表示用于向外连接的端口范围。默认情况是32768 61000。注意不要将最低值设得太低,否则可能会占用正常的端口。
net.ipv4.ip_local_port_range=10000 65000

4, android运行在QNX中

如果android运行在QNX中,QNX的网络状况也要拿来做参考:
cat vm/images/linux-la.config
arp -a
netstat -r
route show
netstat -as
netstat -im
sysctl -a

tracelogger -r -s3 -b1024 -k4096 -w -f/xxx.kev
slog2info -b io_pkt_v6_hc -b iopkt -W >/iopkt_slog.log
tcpdump -i vp0 -n -ee -vv -w /qnx.pcap -s 0 &

#For dumper to create a core file, you must start io-pkt with "-S".

pidin  | grep io-pkt
dumper -p <pid of io-pkt>

http://www.ritt.cn/news/29243.html

相关文章:

  • 大连网站建设谁家好新区快速seo排名
  • 美食地图网站开发百度搜索入口网址
  • 国外军事新闻最新消息上海网站排名优化怎么做
  • 宁城网站建设黄页引流推广网站软件免费
  • 网站数据修改seo网络排名优化哪家好
  • 网站建设 找客户软文范例大全1000字
  • 呼和浩特建设委员会网站现在什么网络推广好
  • 任务平台网站建设国内it培训机构排名
  • 部委网站建设管理职责百度识图搜索网页版
  • 中山网站建设seo135谷歌chrome安卓版
  • 长沙品牌网站建设西安网站制作推广
  • 网站建设公司有多少安仁网络推广
  • 新网站建设需要什么同城发广告的平台有哪些
  • 网站建设河南人工智能培训班收费标准
  • 我做外贸要开国际网站吗网站运营策划书
  • 怎么做乞讨网站湖南长沙今日疫情
  • 哪些网站可以做网站线上电脑培训班
  • 建设网站制作武汉做搜索引擎推广的公司
  • 网站建设及运维合同北京网站制作400办理多少钱
  • 如何做一个个人网站seo搜索引擎优化工程师招聘
  • 南宁网站开发价格网盘网页版
  • 做网站一屏一屏的百度网址安全中心怎么关闭
  • 电商网站的数据库设计百度 搜索热度
  • 荷城网站设计百度推广开户联系方式
  • 荆门做网站百度推广优化中心
  • 网站主页的布局方式百度公司注册地址在哪里
  • shopex网站百度收录刷排名
  • 做seo是要先有网站吗广州关键词seo
  • 美食网站开发的难点策划网络营销方案
  • 毕业设计做健身房网站的意义廊坊seo排名