当前位置: 首页 > news >正文 济南海绵城市建设官方网站春雨app直播免费版下载 news 2025/11/5 2:39:51 济南海绵城市建设官方网站,春雨app直播免费版下载,厦门免费自助建站模板,天元建设集团有限公司商业承兑汇票拒付管辖在哪里文章目录1.TCP底层三次握手详细流程2.TCP洪水攻击介绍和ss命令浅析3.Linux服务器TCP洪水攻击入侵案例4.TCP洪水攻击结果分析和解决方案5.TCP底层四次挥手详细流程1.TCP底层三次握手详细流程 TCP的可靠性传输机制#xff1a;TCP三次我手的流程 一次握手#xff1a;客户端发送一… 文章目录1.TCP底层三次握手详细流程2.TCP洪水攻击介绍和ss命令浅析3.Linux服务器TCP洪水攻击入侵案例4.TCP洪水攻击结果分析和解决方案5.TCP底层四次挥手详细流程1.TCP底层三次握手详细流程 TCP的可靠性传输机制TCP三次我手的流程 一次握手客户端发送一个SYN数据包到服务端用来请求建立连接状态变为SYN_SEND。 报文首部中的同位置SYN1同时生成随机序列号seqx。 二次握手服务端收到客户端的SYN数据包并回复一个SYNACK数据包用来确认连接状态变为SYN_RECEIVED。 确认报文中应该ACK1SYN1确认号是ackx1同时随机初始化一个序列号seqy。 三次握手客户端收到服务端的SYNACK数据包并且回复一个ACK数据包用来确认连接建立完成状态变为ESTABLISHED。 确认报文的ACK 1acky1seqx1。出于安全的考虑第一次握手不能携带数据第三次我手是可以携带数据的。 TCP三次握手的状态变化 客户端CLOSE-SYN_SEND-ESTABLISHED服务端CLOSE-LISTEN-SYN_RECEIVED-ESTABLISHED TCP连接的数据结构 TCP是有状态的协议有多个连接存在时通过TCP的控制块 TCB Transmission Control Block来记录每一个连接的状态 通常一个TCB至少需要280个字节 通过 四元组区分不同的TCP数据报属于哪一个连接 源IP地址、源端口、目的ip、目的端口 连接对象信息存在一个容器中每次接收到报文后从容器中取出对应的控制块来处理 struct tcb // tcp 控制块 {_u32 remote_ip; // 远端ip_u32 local_ip; // 本地ip_u16 remote_port; // 远端端口号_u16 local_port; // 本地端口号int status; // 连接状态... }思考为什么要三次握手呢不是二次或者四次 两次握手案例一: 两端同步确认序列号第一步客户端发送一个起始序列号seq x的 报文段给服务器。 第二步服务器端返回向客户端发送确认号 ack x1表示对客户端的起始序列号x 表示确认并告诉客户端他的起始序列号是 seq y但不一定成功发给客户端导致服务端序列号可能丢失 两次握手只有服务器对客户端的起始序列号做了确认但客户端却没有对服务器的起始序列号做确认不能保证可靠性两次握手案例二防止失效的连接请求报文段被服务端接收若客户端向服务端发送的连接请求阻塞客户端等待应答超时就会再次发送连接请求此时上一个连接请求就是失效的 如果建立连接只需两次握手此时如果网络拥塞客户端发送的连接请求迟迟到不了服务端客户端便超时重发请求如果服务端正确接收并确认应答双方便开始通信通信结束后释放连接。 这时如果那个阻塞的连接请求抵达了服务端由于只有两次握手服务端收到请求就会进入ESTABLISHED状态等待发送数据或主动发送数据但客户端早已进入CLOSED状态服务端将会一直等待下去浪费服务端连接资源 如果 TCP 是三次握手那么客户端在接收到服务器端 seq1 的消息之后可以判断当前的连接是否为历史连接 如果判断为历史连接的话就会发送终止报文RST给服务器端终止连接 如果判断当前连接不是历史连接的话就会发送指令给服务器端来建立连接。TCP 连接可以四次握手甚至是五次握手能实现 TCP 连接的稳定性但三次握手是最节省资源的连接方式2.TCP洪水攻击介绍和ss命令浅析 ss 命令 Socket Statistics 是Linux中的一条网络工具命令用于显示当前系统的各种网络连接状态包括TCP、UDP以及Unix套接字等 显示的内容和 netstat 类似, 但ss能够显示更多更详细的有关 TCP 和连接状态的信息 使用格式ss [OPTIONS] 常用选项如下 参数说明-s显示概要信息-a显示所有网络连接状态-l显示正在监听的网络连接-n显示IP地址和端口号-t显示TCP状态-u显示UDP状态洪水攻击SYN Flood 是一种网络攻击它使用伪造的TCP连接请求来淹没服务器的资源从而使服务器无法响应正常的用户请求 这种攻击通过不断地发送同步SYN连接请求到服务器而服务器会尝试建立连接 当服务器回复 SYNACK 报文后攻击者不会发送确认ACK 那SYN队列里的连接则不会出对队逐步就会占满服务端的 SYN半连接队列 服务器会一直等待耗尽服务器的资源最终就是服务器不能为正常⽤户提供服务 攻击的背景来源 TCP 进入三次握手前服务端会从内部创建了两个队列 半连接队列SYN 队列全连接队列ACCEPT 队列 半连接队列SYN 队列 存放的是三次握手未完成的连接客户端发送 SYN 到服务端服务端收到回复 ACK 和 SYN 状态由 LISTEN 变为 SYN_RCVD此时这个连接就被放进 SYN 半连接队列 半连接队列的个数一般是有限的在SYN攻击时服务器会打开大量的半连接分配TCB耗尽服务器的资源使得正常的连接请求无法得到响应 服务器会给每个待完成的半连接设一个定时器如果超过时间还没有收到客户端的ACK消息则重新发送一次SYN-ACK消息给客户端直到重试超过一定次数时才会放弃这个操作服务器需要分配内核资源维护半连接状态 系统最大半队列大小 (半连接队列的最大长度不一定由 tcp_max_syn_backlog 值决定的Linux 内核版本实现不一样) sysctl -a|grep max_syncat /proc/sys/net/ipv4/tcp_max_syn_backlog查看系统当前半队列大小 方式一ss -s结果的 synrecv 0 就是方式二netstat -natp | grep SYN_RECV | wc -l查看 SYN队列是否有溢出 间隔执行下面命令如果有持续大量递增则是溢出netstat -s|grep LISTEN全连接队列ACCEPT 队列 存放的是完成三次握手的连接客户端回复 ACK, 并且服务端接收后三次握手就完成了 连接会等待被的应用取走在被取走之前它被放进 ACCEPT全连接队列 系统最大全连接队列大小 cat /proc/sys/net/core/somaxconn长度由 net.core.somaxconn 和 应用程序使用 listen 函数时传入的参数二者取最小值默认为 128表示最多有 129 的 ESTABLISHED 的连接等待accept查看系统当前全连接队列大小 ss -lnt 如果是指定端口 可以用 ss -lnt |grep 80 # -l 显示正在Listener的socket # -n 不解析服务名称 # -t 只显示tcp常规可以通过port端口看是哪类应用, 80端口这一行state 在LISTEN 状态下Send-Q表示listen端口上的全连接队列最大为128Recv-Q为全连接队列当前使用了多少查看 Accept 队列 是否有溢出 间隔执行下面命令如果有持续大量递增则是溢出 netstat -s | grep TCPBacklogDrop全连接队列满后发生什么 cat /proc/sys/net/ipv4/tcp_abort_on_overflow系统会根据 net.ipv4.tcp_abort_on_overflow 参数决定返回有两个值分别是 0 和 1常规推荐是00 如果全连接队列满了那么 server 扔掉 client 发过来的 ack 1 如果全连接队列满了server 发送一个 reset 包给 client表示废掉这个握手过程和这个连接 客户端连接不上服务器判断是否是服务端 TCP 全连接队列满的原因可以把 tcp_abort_on_overflow 设为 1client异常中会报 connection reset by peer大概率是由于服务端 TCP 全连接队列溢出导致的问题 TCP洪水攻击 基础缓解方案TCP SYN Cookies 延缓TCB分配 使用连接信息源地址、源端口、目的地址、目的端口等和一个随机数计算出一个哈希值SHA1 SYN-Cookie避免内存空间被耗尽但是加密会消耗CPU攻击者发送大量的ACK包过来被攻击机器将会花费大量的CPU时间在计算Cookie上造成正常的逻辑无法被执行 哈希值 被用作序列号 应答 SYNACK 包客户端发送完三次握手的最后一次 ACK 服务器就会重新计算这个哈希值确认是之前的 SYNACK 的返回包则进入 TCP 的连接状态。当开启了 syncookies 功能就可以在不使用 SYN 半连接队列的情况下成功建立连接不需要维护半连接数的限制如果是DDOS则难解决需要花钱购买流量设备 # 开启syncookies 阿里云ECS默认开启 # vim /etc/sysctl.confnet.ipv4.tcp_syncookies 10 值表示关闭该功能 1 值表示仅当 SYN 半连接队列放不下时再启用它 2 值表示无条件开启功能3.Linux服务器TCP洪水攻击入侵案例 1TCP洪水攻击环境准备 准备hping3工具hping3是一款开源的网络扫描和测试工具可用于模拟tcp洪水攻击 hping3 命令安装 # 依赖库 yum -y install libpcap yum -y install libpcap-devel yum -y install tcl-devel#安装 yum -y install hping3参数说明 参数说明-S表示发送SYN数据包-U发送UDP包-A发送ACK包-p表示攻击的端口-i u100表示每隔100微秒发送一个网络帧–flood和洪水一样不间断攻击–rand-source随机构造发送方的IP地址 使用hping3模拟tcp洪水攻击通过hping3指令向攻击目标发送大量tcp数据包从而模拟tcp洪水攻击。 2实验环境机器准备 机器A 部署Nginx 作为常规服务192.168.159.110 阿里云服务需要关闭 syn_cookie ,即net.ipv4.tcp_syncookies 0 vim /etc/sysctl.conf修改完之后需要执行 sysctl -p 配置才能生效。docker部署nginx. 自行安装docker docker run --name nginx -p 80:80 -d nginx:1.23.3机器B安装hping3 模拟 SYN 攻击192.168.159.170 hping3 -S -p 80 --flood 192.168.159.110 #-S是发送SYN数据包-p是目标端口192.168.159.110是目标机器ip3服务器出现的现象 攻击前 访问192.168.159.110 机器的Nginx可以成功。攻击时 机器192.168.159.110 服务访问超时失败使用谷歌浏览器开启隐身模式或者 curl -v 地址查看内存占用率不高、CPU平均负载和使用率等比较低CPU耗在 si 软中断 消耗时间比例升高 4流程浅析 网卡收到数据包后通过硬件中断的方式通知内核有新的数据内核调用中断处理程序把网卡的数据读取到内存中。更新一下硬件寄存器的状态在发送一个软中断信号通知从内存中找到网络数据。按照网络协议栈对数据进行逐层解析和处理然后把数据交给应用程序处理。 前部分处理硬件请求属于硬中断特点是快速执行。后部分处理内核触发属于软中断特点是延迟执行。 CPU主要用在软中断上从进程列表上看到CPU 使用率最高的也是软中断进程 ksoftirqd ksoftirqd是运行在Linux的进程专门处理系统的软中断的格式是 “ksoftirqd/CPU 编号在多核服务器上每核都有一个ksoftirqd进程经常看到ksoftirqd/0表示这是CPU0的软中断处理程序 所以软中断过多比较大可能导致问题通过文件系统 /proc/softirqs 看是哪类下软中断导致 /proc/softirqs 提供了软中断的运行情况/proc/interrupts 提供了硬中断的运行情况 命令 watch -d cat /proc/softirqs Every 2.0s: cat /proc/softirqs Sat Jan 7 12:15:45 2023CPU0 CPU1 CPU2 CPU3HI: 0 0 0 1TIMER: 346771437 154363606 304924440 150269528NET_TX: 148 7395 91 53NET_RX: 203887543 25629878 37152669 27395828BLOCK: 11007513 0 0 0 BLOCK_IOPOLL: 0 0 0 0TASKLET: 9798 38 15 7SCHED: 165941548 77615785 144222611 74794157HRTIMER: 0 0 0 0RCU: 184530769 93465836 167240016 91974099说明HI 高优先级软中断TIMER表示定时器软中断,用于定时触发某些操作NET_TX表示网络发送软中断,用于处理网络发送的数据包NET_RX表示网络接收软中断用于处理网络接收的数据包BLOCK表示块设备软中断用于处理磁盘读写请求。TASKLET任务中断用于处理任务的中断任务。SCHED 表示内核调度软中断HRTIMER高精度定时器中断用于处理高精度定时任务。RCURead-Copy Update中断用于处理读写锁的内核操作。现象 几个指标都在变化中但是NET_RX 是变化最多的 推断是网络接收软中断用于处理网络接收的数据包 导致出现问题 查看网络流量命令 sar sar -n DEV 1 -h#-n DEV 表示显示网络收发的报告间隔 1 秒输出一组数据 -h人类可读方式分析网卡数据包 ens33接收的网络帧(包) PPS较大为20387 而每秒收到的数据包大小BPS为1194。 进一步抓包分析 tcpdump -i ens33 -n tcp port 80 参数说明-i指定抓哪个网卡接口的数据包-n不解析协议名和主机名避免DNS解析tcp port 80只抓取tcp协议并且端口号位80 的网络帧-e显示mac地址-wwrite写入保存到文件-rread读取文件中的数据-c在收到指定包数目之后tcpdump就会停止对输出结果进行分析 第一列时分秒毫秒 第二列网络协议 IP 第三列发送方的ip地址 第四列箭头 表示数据流向 第五列接收方的ip地址 第六列冒号 第七列数据包内容包括Flags 标识符seq 号ack 号win 窗口数据长度 length更多标识符使用 tcpdump 抓包后会遇到的 TCP 报文 Flags有以下几种[S] : SYN开始连接 [P] : PSH推送数据 [F] : FIN 结束连接 [R] : RST重置连接 [.] : 没有 Flag 意思是除上面四种类型外的其他情况有可能是 ACK 也有可能是 URG分析 大部分数据都是从192.168.159.170 192.168.159.110.http: Flags [S] 数据包是SYN 确认是 SYN FLOOD 洪水攻击 4.TCP洪水攻击结果分析和解决方案 1分析洪水攻击结果现象 查看系统最大半连接队列大小 cat /proc/sys/net/ipv4/tcp_max_syn_backlog查看SYN半连接队列大小 方式一ss -s结果的 synrecv 0 就是方式二netstat -natp | grep SYN_RECV | wc -l查看 SYN半连接队列是否有溢出 netstat -s|grep LISTEN攻击时也可以查看 SYN_RECV 状态的连接数 netstat -n -p | grep SYN_RECV | wc -l2缓解TCP洪水攻击方案 开启tcp_cookie vim /etc/sysctl.confnet.ipv4.tcp_syncookies 1修改完之后需要执行 sysctl -p 配置才能生效。现象开启tcp_cookie之后再次攻击发现机器服务192.168.159.110可以访问成功但是会有卡顿如果是多节点DDOS攻击仍然会造成服务不可用增大半连接队列和全连接队列 半连接队列的最大长度不一定由 tcp_max_syn_backlog 值决定的 测试发现服务端最多只有 256 个半连接队列而不是 1024Linux 内核版本实现不一样和somaxconn全连接队列也有关系 增加半连接队列大小不能只增大 tcp_max_syn_backlog 的值还要一同增大 somaxconn 即增大全连接队列 #增大 tcp_max_syn_backlog半连接队列 echo 2048 /proc/sys/net/ipv4/tcp_max_syn_backlog#增大 somaxconn全连接队列 echo 2048 /proc/sys/net/core/somaxconn减少 SYNACK 重传次数(减小tcp_synack_retries的值) # 减少SYNACK 的重传次数为1加快处于SYN_REVC 状态的 TCP 连接断开 echo 1 /proc/sys/net/ipv4/tcp_synack_retries现象和思路总结 当发现服务器或者业务卡顿的时候通过top命令来查看服务器负载和cpu使用率然后排查cpu占用较高的进程。 如果发现cpu的使用率并不高但是si 软中断很高且ksoftirqd进程cpu占用率高则说明服务器持续发生软中断。 通过cat /proc/softirqs来分析是哪个类型的软中断次数最多watch命令查看变化快速的值。 多数情况下网络发生中断的情况会比较多通过sar命令来查看收包速率和收发包数据量。验证是否是网络收发包过多导致。 通过tcpdump来抓包分析数据包来源ip和抓包数据中的Flags来分析数据包类型。 如果是Flood洪水攻击可以通过调整tcp链接参数策略和防火墙封禁异常的IP。 如果是大规模的DDOS攻击则花钱招运营商购买流量封堵。5.TCP底层四次挥手详细流程 TCP通过三次握手建立连接而断开连接则是通过四次挥手详细流程如下 第一次 客户端发送FINFinish报文段用于关闭客户端到服务端的数据传输表示客户端数据发送完毕。客户端进入FIN_WAIT_1状态。 第二次 服务端收到客户端的FIN报文后发送ACK报文段确认收到了客户端的FIN报文段。服务端进入CLOSE_WAIT状态客户端接收到这个确认包后进入FIN_WAIT_2状态。 第三次 服务端发送FIN报文段用于关闭服务端到客户端的数据传输表示服务端的数据发送完毕。服务端进入LAST_ACK状态等待客户端的最后一个ACK。 第四次 客户端收到服务端的FIN报文段后发送ACK报文段确认收到了服务端的FIN报文段。客户端接收后进入TIME_WAIT状态在此阶段下等待2MSL时间两个最大段生命周期如果这个时间间隔内没有收到服务端的请求进入CLOSED状态服务端收到ACK确认包之后也进入到CLOSED状态。 思考为啥TIME_WAIT要等待2MSL时间 2MSL是报文最大生存时间是任何报文在网络上存在的最长时间超过这个时间报文将被丢弃。 假如最后一次客户端发送ACK给服务端没有收到超时后 服务端重发FIN客户端响应ACK来回就是2个MSL。 等待2MSL可以让本次连接持续的时间内所产生的所有报文都从网络中消失避免旧的报文段。 思考CLOSE-WAIT 和 TIME-WAIT 的区别 CLOSE-WAIT是等待关闭 服务端收到客户端关闭连接的请求并确认之后进入CLOSE-WAIT状态。但服务端可能还有一些数据没有传输完成不能立即关闭连接所以CLOSE-WAIT状态是为了保证服务端在关闭连接之前将待发送的数据处理完 TIME-WAIT是在第四次挥手 当客户端向服务端发送ACK确认报文后进入TIME-WAIT状态主动关闭连接的才有time_wait状态 在HTTP请求中如果connection头部的取值设置为close那么多数都由服务端主动关闭连接服务端处理完请求后主动关闭连接所以服务端出现大量time_wait状态 防⽌旧连接的数据包 如果客户端收到服务端的FIN报文之后立即关闭连接但服务端对应的端口并没有关闭客户端在相同端口建立新的连接可能导致新连接收到旧连接的数据包从而产生问题 保证连接正确关闭 假如客户端最后一次发送的ACK包在传输的时候丢失由于TCP协议的超时重传机制服务端将重发FIN报文如果客户端不是TIME-WAIT状态而直接关闭的话当收到服务端重送的FIN包时客户端会用RST包来响应服务端导致服务端以为有错误发生但实际是关闭连接是没问题的 思考TIME-WAIT状态有啥坏处 过多TIME-WAIT状态 会占用文件描述符/内存资源/CPU 和端口占满所有端口则会导致无法创建新连接 高并发短连接的TCP服务器上 当服务器处理完请求后立刻主动正常关闭连接会出现大量socket处于TIME_WAIT状态 端口有个0~65535的范围排除系统和其他服务要用的剩下的很少 查看time_wait状态连接数 netstat -an |grep TIME_WAIT|wc -l 解决方案 调整短链接为长链接HTTP 请求的头部connection 设置为 keep-alive减少TCP的连接和断开 目前版本的http协议基本上都是支持长连接 配置**SO_REUSEADDR**在 端口不够用时TCP连接位于TIME_WAIT状态时可以重用端口 对应linux系统配置 net.ipv4.tcp_tw_reuse1 导致服务端以为有错误发生但实际是关闭连接是没问题的 思考TIME-WAIT状态有啥坏处 过多TIME-WAIT状态 会占用文件描述符/内存资源/CPU 和端口占满所有端口则会导致无法创建新连接 高并发短连接的TCP服务器上 当服务器处理完请求后立刻主动正常关闭连接会出现大量socket处于TIME_WAIT状态 端口有个0~65535的范围排除系统和其他服务要用的剩下的很少 查看time_wait状态连接数 netstat -an |grep TIME_WAIT|wc -l 解决方案 调整短链接为长链接HTTP 请求的头部connection 设置为 keep-alive减少TCP的连接和断开 目前版本的http协议基本上都是支持长连接 配置**SO_REUSEADDR**在 端口不够用时TCP连接位于TIME_WAIT状态时可以重用端口 对应linux系统配置 net.ipv4.tcp_tw_reuse1 缩减 time_wait 时间设置为 1 MSL 文章转载自: http://www.morning.xdqrz.cn.gov.cn.xdqrz.cn http://www.morning.tphjl.cn.gov.cn.tphjl.cn http://www.morning.qfdmh.cn.gov.cn.qfdmh.cn http://www.morning.wnnfh.cn.gov.cn.wnnfh.cn http://www.morning.frmmp.cn.gov.cn.frmmp.cn http://www.morning.ljxxl.cn.gov.cn.ljxxl.cn http://www.morning.kpxnz.cn.gov.cn.kpxnz.cn http://www.morning.tjpmf.cn.gov.cn.tjpmf.cn http://www.morning.chzqy.cn.gov.cn.chzqy.cn http://www.morning.dkbsq.cn.gov.cn.dkbsq.cn http://www.morning.wgzzj.cn.gov.cn.wgzzj.cn http://www.morning.aowuu.com.gov.cn.aowuu.com http://www.morning.dqcpm.cn.gov.cn.dqcpm.cn http://www.morning.zfyr.cn.gov.cn.zfyr.cn http://www.morning.gmyhq.cn.gov.cn.gmyhq.cn http://www.morning.nchsz.cn.gov.cn.nchsz.cn http://www.morning.dqzcf.cn.gov.cn.dqzcf.cn http://www.morning.bzpwh.cn.gov.cn.bzpwh.cn http://www.morning.wngpq.cn.gov.cn.wngpq.cn http://www.morning.ypbdr.cn.gov.cn.ypbdr.cn http://www.morning.tdmgs.cn.gov.cn.tdmgs.cn http://www.morning.pznhn.cn.gov.cn.pznhn.cn http://www.morning.jmdpp.cn.gov.cn.jmdpp.cn http://www.morning.tddrh.cn.gov.cn.tddrh.cn http://www.morning.nnykz.cn.gov.cn.nnykz.cn http://www.morning.rbhqz.cn.gov.cn.rbhqz.cn http://www.morning.kybjr.cn.gov.cn.kybjr.cn http://www.morning.gbgdm.cn.gov.cn.gbgdm.cn http://www.morning.kbyp.cn.gov.cn.kbyp.cn http://www.morning.ksbmx.cn.gov.cn.ksbmx.cn http://www.morning.njfgl.cn.gov.cn.njfgl.cn http://www.morning.ztdlp.cn.gov.cn.ztdlp.cn http://www.morning.prxqd.cn.gov.cn.prxqd.cn http://www.morning.niukaji.com.gov.cn.niukaji.com http://www.morning.dwwbt.cn.gov.cn.dwwbt.cn http://www.morning.zwgrf.cn.gov.cn.zwgrf.cn http://www.morning.smdnl.cn.gov.cn.smdnl.cn http://www.morning.nxstj.cn.gov.cn.nxstj.cn http://www.morning.cthkh.cn.gov.cn.cthkh.cn http://www.morning.cyjjp.cn.gov.cn.cyjjp.cn http://www.morning.wjhqd.cn.gov.cn.wjhqd.cn http://www.morning.wbysj.cn.gov.cn.wbysj.cn http://www.morning.rqnzh.cn.gov.cn.rqnzh.cn http://www.morning.rbjp.cn.gov.cn.rbjp.cn http://www.morning.jwwfk.cn.gov.cn.jwwfk.cn http://www.morning.lbxcc.cn.gov.cn.lbxcc.cn http://www.morning.gpmrj.cn.gov.cn.gpmrj.cn http://www.morning.qkgwx.cn.gov.cn.qkgwx.cn http://www.morning.zpzys.cn.gov.cn.zpzys.cn http://www.morning.hqqpy.cn.gov.cn.hqqpy.cn http://www.morning.hqxyt.cn.gov.cn.hqxyt.cn http://www.morning.prmbb.cn.gov.cn.prmbb.cn http://www.morning.xnqjs.cn.gov.cn.xnqjs.cn http://www.morning.hhmfp.cn.gov.cn.hhmfp.cn http://www.morning.tzkrh.cn.gov.cn.tzkrh.cn http://www.morning.zwhtr.cn.gov.cn.zwhtr.cn http://www.morning.txtzr.cn.gov.cn.txtzr.cn http://www.morning.swkzr.cn.gov.cn.swkzr.cn http://www.morning.xtrnx.cn.gov.cn.xtrnx.cn http://www.morning.nsjpz.cn.gov.cn.nsjpz.cn http://www.morning.pxlsh.cn.gov.cn.pxlsh.cn http://www.morning.zpjhh.cn.gov.cn.zpjhh.cn http://www.morning.pmtky.cn.gov.cn.pmtky.cn http://www.morning.nkjjp.cn.gov.cn.nkjjp.cn http://www.morning.cgntj.cn.gov.cn.cgntj.cn http://www.morning.lzsxp.cn.gov.cn.lzsxp.cn http://www.morning.mdgb.cn.gov.cn.mdgb.cn http://www.morning.fqyqm.cn.gov.cn.fqyqm.cn http://www.morning.sdkaiyu.com.gov.cn.sdkaiyu.com http://www.morning.rttxx.cn.gov.cn.rttxx.cn http://www.morning.crqpl.cn.gov.cn.crqpl.cn http://www.morning.jmmz.cn.gov.cn.jmmz.cn http://www.morning.psqs.cn.gov.cn.psqs.cn http://www.morning.dhqg.cn.gov.cn.dhqg.cn http://www.morning.snygg.cn.gov.cn.snygg.cn http://www.morning.nyqb.cn.gov.cn.nyqb.cn http://www.morning.mfnsn.cn.gov.cn.mfnsn.cn http://www.morning.gtmgl.cn.gov.cn.gtmgl.cn http://www.morning.ghxtk.cn.gov.cn.ghxtk.cn http://www.morning.jhkzl.cn.gov.cn.jhkzl.cn 查看全文 http://www.tj-hxxt.cn/news/278245.html 相关文章: 网上订餐网站建设的外文文献老网站做成适合手机端的网站怎么做 孝感建设局网站建大型网站公司简介 商丘网站制作电话如何做网站链接使用 基本的网站开发技术无锡网站建设企业 靖宇东兴自助建站qianhu微建站 江汉网站建设河北省住房城乡建设局网站 国家建设部官方培训网站旅游网站建设哪家好 装饰工程 技术支持 东莞网站建设购物类型网站建设 做网站价格公司专业做根雕的网站 html源码网站建设中企业网站建设售后服务内容 英文网站营销潍坊seo排名 廉江市住房和城乡建设局网站多语言网站系统 哈尔滨自助建站软件做视频广告在哪个网站能够赚钱 课程介绍网站建设ppt模板有什么网站可以做微信支付 网上有兼职做数据网站网站建设与营销经验 微网站自助建站后台网站建设与管理找工作 高性能网站开发wordpress生成tags页面 网站首页做30个关键词重庆网站建设业务招聘 手把手教你做网站7wordpress 网银支付宝 购物网站开发需求文档互联网个人信用信息服务平台 阿里云备案网站名称北京网站建设公司现状 怎么做创意短视频网站做网站用什么软件语言 南京网站设南京网站设计计哪里有好网站设计 重庆建设网站哪家好wordpress主题免刷新 网页设计链接怎么做免费seo视频教学 惠州网站优化建设中超最新积分榜 营销推广网站推广方案住宅设计网站推荐 山西建设机械网站高校思政网站建设意义 无锡建设执业资格注册中心网站呼和浩特网络公司 h5平台网站开发服装网站建设美丽