完美者(wmzhe.com)网站以软件下载为基础,改版后的网站对功能性板块进行扩充,以期能够解决用户在软件使用过程中遇见的所有问题。网站新增了“软件百科”、“锦囊妙技”等频道,可以更好地对用户的软件使用全周期进行更加专业地服务。
CheckNetStats是一款实时监控网络状态的低消耗可驻留程序。 实时的网络状态查看,智能错误识别系统,让你可以解决网络疑难问题。"锦囊妙技"栏目是聚合全网软件使用的技巧或者软件使用过程中各种问题的解答类文章,栏目设立伊始,小编欢迎各路软件大神朋友们踊跃投稿,在完美者平台分享大家的独门技巧。
本站文章素材来源于网络,大部分文章作者名称佚失,为了更利于用户阅读和使用,根据需要进行了重新排版和部分改编,本站收录文章只是以帮助用户解决实际问题为目的,如有版权问题请联系小编修改或删除,谢谢合作。
软件大小:738.00 KB
伪造IP包,禁止TCP连接 大家是否想过在局域网内如何禁止别人访问web server,pop3,ftp等。那么如何禁止呢?大家都知道TCP是面向连接的,连接时有三次握手,之后才能确认连接成功。那么我们就应该能在第一次握手之后伪造一个服务方的握手返回,从而达到TCP连接不成功,无法访问某端口。程序如下: void DeCodeIP(buf,iBufSize) //解析侦听到的IP数据包 { IPHEADER * pIPhdr; TCPHEADER * pTCPhdr; pIPhdr=(IPHEADER * )buf; //获得TCP header的起始位置 int iIphLen = sizeof(unsigned long) * (pIPhdr->h_lenver & 0xf); pTCPhdr = (TCPHEADER* )(buf+iIphLen); //判断是否为第一次握手IP数据包,pIPhdr->th_flag=2 即("-s----") if (iBufSize==48) && (pIPhdr->iProtocol==IPPROTO_TCP) && (pIPhdr->th_flag==2) sendTCP_SYNACK(szDestIP,szSourceIP,pTCPhdr->destPort,pTCPhdr->srcPort,pTCPhdr->seq); } void sendTCP_SYNACK(char * szSrcIP, char * szDestIP,unsigned short srcPort,unsigned short destPort,unsigned int iAck) { int iErrorCode; SOCKET s; IP_HEADER ip_header; TCP_HEADER tcp_header; PSD_HEADER psd_header; struct sockaddr_in remote; char * ptr=NULL; //创建socket s=socket(AF_INET, SOCK_RAW, IPPROTO_IP); if (CheckSockError(s, "socket-tcp")) return FALSE; BOOL bOpt = TRUE; iErrorCode = setsockopt(s, IPPROTO_IP, IP_HDRINCL, (char *)&bOpt, sizeof(bOpt)); if (CheckSockError(iErrorCode, "setsockopt-TCP")) { closesocket(s); return FALSE; } //---end­ //伪装连接 unsigned short iTotalSize=44; unsigned short iTCPSize=24; char *sendBuf=new char[iTotalSize]; ip_header.h_lenver=(4<<4 | sizeof(ip_header)/sizeof(unsigned long)); //高四位版本号,低四位首部长度 ip_header.total_len=htons(iTotalSize); //16位总长度 ip_header.tos=0; ip_header.ident=htons(17393); //16??±êê? ip_header.frag_and_flags=0; //3??±ê????,13??offset ip_header.ttl=57; //8??éú′?ê±??TTL ip_header.proto=IPPROTO_TCP; //8??D­òé(TCP,UDP?­) ip_header.checksum=0; //16位校验和 ip_header.sourceIP=inet_addr(szSrcIP); //32位远地址? ip_header.destIP=inet_addr(szDestIP 查看原帖>>
RHEL/CentOS 7最低的安装版本都是默认安装了许多服务的,比如 邮件转移代理daemon, Avahi mdns daemon (multicast Domain Name System) 和Chrony 服务Remove Services in CentOS 7不过也遇到了新的问题.因为有的服务感觉我们是不需要的,所以我们获得会禁用/启用一些服务.要求CentOS 7 最低安装版RHEL 7最低安装版如果你想把最新安装的RHEL/CentOS 7 加入到主机去, 也就是说一个你不需要执行Postifx MTA daemon的比如运行一个Apache或Nginx网站,或者提供DNS, DHCP, PXE boot, FTP server网络服务器, 那么就要安装这些没必要服务,甚至要运行起来.对外部来说,一个小的安装服务器运行后可能需要ssh进程,方便外部管理.禁用/删除Postfix MTA, Avahi和Chrony服务1. 安装玩系统后,root登录或者其他非root用户登录切换更新系统,保证你系统的资源是最新的.# yum upgradeUpgrade System2. 接下里就是使用yum安装一些必要的东西,比如net-tools (这个软件包比较的旧但的确是一个很好的ifconfig命令), nano文本编辑, wget 或curl, lsof (列出打开的文件) 和bash-completion, 需要执行# yum install nano bash-completion net-tools wget curl lsofInstall System Utilities3. 现在就可以开始禁用和删除预安装的不想要的服务.首先列出你已经安装或者正在运行的服务,执行netstat命令反向TCP, UDP和监听socket断开.# netstat -tulpn ## To output numerical service sockets# netstat -tulp ## To output literal service socketsList Enabled Services4. 看到了吧,Postfix是开启的,然后监听的是本地端口25, Avahi daemon绑定到了所有的网络接口,Chronyd服务绑定到了本地和所有的不同端口网络接口. 通过下面的命令来删除Postfix MTA 服务.# systemctl stop postfix# yum remove postfixRemove Postfix Service5. 接下来删除Chronyd服务,我们用NTP服务替换掉.# systemctl stop chronyd# yum remove chronyRemove Chronyd Service6. 接下来删除Avahi daemon守护进程. RHEL/CentOS 7的Avahi daemon越来依靠网络管理服务了. 把Avahi daemon删除之后,可以然系统不会链接任何网络.注意这步,如果你想要自动配置网络或者你需要通过nmtui网编辑网络接口,那么你需要停止和禁用Avahi 进程才能全部删除.如果你还是想完全删除这个服务的话,你必须手动的编辑网络配置文件/etc/sysconfig/network-scripts/ifcfg-interface_name,然后启动的启用网络服务.删除Avahi mdns daemon的时候可能会遇到些问题. 注意:如果你ssh登录的情况下别删除Avahi daemon .# systemctl stop avahi-daemon.socket avahi-daemon.service# systemctl disable avahi-daemon.socket avahi-daemon.service--------- 如果你不想删除的话到这里就别执行了 --------- # yum remove avahi-autoipd avahi-libs avahiRemove Avahi Daemon7. 这步只有在你真想删除Avahi daemon服务和你断开网络连接并且你需要手动重新配置网络接口卡的时候.想使用IPv6和静态IP编辑你的NIC, 进入 /etc/sysconfig/network-scripts/ , 打开NIC 接口文件爱你 (一般来说第一张卡名是ifcfg-eno1677776 默认网络管理器就配置好了的) ,如果你网络接口还没配置的话就参考下面的向导.IPV6INIT=noIPV6_AUTOCONF=yesBOOTPROTO=noneDEVICE=eno16777736ONBOOT=yesUUID=c3f0dc21-d2eb-48eb-aadf-10a520b13df0TYPE=Ethernet#DEFROUTE=noIPV4_FAILURE_FATAL=noIPV6_DEFROUTE=noIPV6_FAILURE_FATAL=noNAME="System eno16777736"IPV6_PEERDNS=yesIPV6_PEERROUTES=yesHWADDR=00:0C:29:E2:06:E9 IPADDR=192.168.1.25 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=192.168.1.1 DNS2=8.8.8.8Configure Network Interface一些重要的设置说明:BOOTPROTO – 设置为空或者静态IP – 适合配置静态IP.ONBOOT – 设置为yes – 重启后启动接口.DEFROUTE – 使用 #可以注视或者全部删除也行 – 不要使用默认配置 (如果你使用默认的,那你需要给所有网络接口添加一个 “DEFROUTE: no”).8. 如果你的机器配置有自动分配IP的DHCP服务器的话, 使用下面的读来配置网络接口.IPV6INIT=noIPV6_AUTOCONF=yesBOOTPROTO=dhcpDEVICE=eno16777736ONBOOT=yesUUID=c3f0dc21-d2eb-48eb-aadf-10a520b13df0TYPE=Ethernet##DEFROUTE=noIPV4_FAILURE_FATAL=noIPV6_DEFROUTE=noIPV6_FAILURE_FATAL=noNAME="System eno16777736"IPV6_PEERDNS=yesIPV6_PEERROUTES=yesHWADDR=00:0C:29:E2:06:E9Configure DHCP Interface跟配置静态IP地址一样,假设BOOTPROTO设置到了dhcp,DEFROUTE是注视或者删除了设备并需要重启才行,如果你没有IPv6,你阿九删除或者注视所有含有IPV6的配置.9. 为了让新的接口配置生效,你需要重启电脑或者网络服务,重启之后使用ifconfig或者ip命令来查看你设置的网络是否生效.# service network restart ## Use this command before systemctl# chkconfig network on# systemctl restart network# ifconfig# ping domain.tldConfirm Network Settings10. 最后确保你使用了hostnamectl系列命令给系统设置了hosetname名字,查看你的hostname配置使用下面的命令.# hostnamectl set-hostname FQDN_system_name# hostnamectl status# hostname# hostname -s ## Short name# hostname -f ## FQDN nameSetup System Hostname11. 好了,最后使用一下netstat来看看系统允许的是那个网络.# netstat -tulpn# netstat -tulpVerify Running Services12. 处理SSH服务外,如果你的网络使用的是DHCP来拉去静态IP配置,那么需要运行一个DHCP客户端,然后启用UDP端口.# netstat -tulpnVerify DHCP Service13. 另外可以选的,你也可以使用ofSockets Statistics命令来打印出正在运行的socket网络.# ss -tulpn ss Command to Check Network14. 重启电脑,执行systemd-analize来检测你的系统boot-time是否正常,同时,使用free和Disk Free 命令可以用来显示RAM和HDD统计情况,top命令可以来查看系统资源使用情况.# free -h# df -h# top Chec
使用 emma 2.1 (emma-stable-2.1.5320-lib) 1. 新建 /home/q/java/emmalib 目录, 将emma.jar 与 emma_ant.jar 放入 2. 复制 /server/bin/mobileserver/runServer.sh 到 runServer_emma.sh 修改启动语句。 使用 emma 2.1 (emma-stable-2.1.5320-lib) 1. 新建 /home/q/java/emmalib 目录, 将emma.jar 与 emma_ant.jar 放入 2. 复制 /server/bin/mobileserver/runServer.sh 到 runServer_emma.sh 修改启动语句 nohup java -Xmx1800M -Xms800m -Xbootclasspath/p:/home/q/java/emmalib/emma.jar -Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.EPollSelectorProvider -XX:+AggressiveOpts -XX:+UseParallelGC -server -classpath "$jarFile" com.qunar.common.mobileArc.MobileServer conf/TaLog.property conf/TripServer.property >> $LOG_HOME/error.log 2>&1 & 复制 /server/bin/mobileserver/stopServer.sh 到 stopServer_emma.sh 添加覆盖率导出命令 插入 emma 统计代码 使用root账号 1. 备份mobileserver.jar cp /server/TripAssistant/mobile-server.jar $MOB_JAR_BAK/mobile-server.jar.{$timestamp} 2. 执行插入命令 java -cp /home/q/java/emmalib/emma.jar emma instr -m overwrite -cp mobile-server.jar -out coverage.em 输出如下: EMMA: processing instrumentation path ... EMMA: instrumentation path processed in 3117 ms EMMA: [1000 class(es) instrumented, 126 resource(s) copied] EMMA: metadata merged into [/server/TripAssistant/coverage.em] 3. 运行mobileserver runServer_emma.sh sudo sh /server/bin/mobileserver/stopServer.sh && sudo sh /server/bin/mobileserver/runServer_emma.sh 在 /server/mobileserverlog/error.log中可见: EMMA: collecting runtime coverage data ... EMMA: runtime controller started on port [47653] emma control 进程已启动 [root@l-wap4.beta.cn1.qunar.com /server/mobileserverlog]# netstat -na | grep 47653 tcp 0 0 0.0.0.0:47653 0.0.0.0:* LISTEN 20926/java 4. 执行 覆盖率文件导出命令 java -cp /home/q/java/emmalib/emma.jar emma ctl -connect localhost:47653 -command coverage.get,coverage.ec 可见输出: EMMA: processing control command sequence ... EMMA: executing [coverage.get (coverage.ec,true,true)] ... EMMA: coverage.get: local copy of coverage data merged into [/server/TripAssistant/coverage.ec] EMMA: coverage.get: command completed in 79 ms EMMA: control command sequence complete 并且当前目录生成文件 coverage.ec 5. 生成报告 java -cp /home/q/java/emmalib/emma.jar emma report -r html -in coverage.em,coverage.ec 指定源代码生产覆盖率报告(需先上传源码) java -cp /home/q/java/emmalib/emma.jar emma report -r html -in /server/TripAssistant/coverage.em,/server/TripAssistant/coverage.ec -Dreport.html.out.file=mycoverage/coverage.html -sp /home/liang.zhou/mob_code_dir/mobs_trunk/src/main/java emma 方式启动 mobserver ================================== 1. 判断mobserver.jar size, 大于5M 为已插入过, 小于5M为未插入(需要执行插入) 2. 执行插入 3. 启动 4. 检查启动状态 47653 端口打开 mobileserver 进程打开 emma 方式停止 mobserver ================================== 1. 检查47653端口打开状态, 检查coverage.em是否存在 2. 导出覆盖率文件 coverage.ec, 备份coverage.em (加上时间戳) 3. 导出覆盖率HTML report (加上对应时间戳) 4. kill mobserver 进程 ls -lt mobile-server.jar 判断 $? == 0 判断mobile-server.jar size是否大于 5M #!/bin/bash function stop_mob_server(){ #!/bin/bash function stop_mob_server(){ pid=`ps aux | grep MobileServer | grep -v grep | awk ' Unknown macro: {print $2} '` ` kill -9 $ Unknown macro: {pid} ` sleep 1 echo "Stop mobileserver success." } #判断 emma ctl 是否启动 port_check_result=`netstat -na | grep 47653 | awk ' Unknown macro: {print $1} '` if [ -z $ Unknown macro: {port_check_result} ]; then echo "Emma ctl port 47653 is not LISTEN. Coverage.ec export operation aborted." else #emma ctl 为启动状态,导出 coverage.ec, 并备份至 /home/q/mobsrv_cov if [] fi
使用 emma 2.1 (emma-stable-2.1.5320-lib) 1. 新建 /home/q/java/emmalib 目录, 将emma.jar 与 emma_ant.jar 放入 2. 复制 /server/bin/mobileserver/runServer.sh 到 runServer_emma.sh 修改启动语句。 使用 emma 2.1 (emma-stable-2.1.5320-lib) 1. 新建 /home/q/java/emmalib 目录, 将emma.jar 与 emma_ant.jar 放入 2. 复制 /server/bin/mobileserver/runServer.sh 到 runServer_emma.sh 修改启动语句 nohup java -Xmx1800M -Xms800m -Xbootclasspath/p:/home/q/java/emmalib/emma.jar -Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.EPollSelectorProvider -XX:+AggressiveOpts -XX:+UseParallelGC -server -classpath "$jarFile" com.qunar.common.mobileArc.MobileServer conf/TaLog.property conf/TripServer.property >> $LOG_HOME/error.log 2>&1 & 复制 /server/bin/mobileserver/stopServer.sh 到 stopServer_emma.sh 添加覆盖率导出命令 插入 emma 统计代码 使用root账号 1. 备份mobileserver.jar cp /server/TripAssistant/mobile-server.jar $MOB_JAR_BAK/mobile-server.jar.{$timestamp} 2. 执行插入命令 java -cp /home/q/java/emmalib/emma.jar emma instr -m overwrite -cp mobile-server.jar -out coverage.em 输出如下: EMMA: processing instrumentation path ... EMMA: instrumentation path processed in 3117 ms EMMA: [1000 class(es) instrumented, 126 resource(s) copied] EMMA: metadata merged into [/server/TripAssistant/coverage.em] 3. 运行mobileserver runServer_emma.sh sudo sh /server/bin/mobileserver/stopServer.sh && sudo sh /server/bin/mobileserver/runServer_emma.sh 在 /server/mobileserverlog/error.log中可见: EMMA: collecting runtime coverage data ... EMMA: runtime controller started on port [47653] emma control 进程已启动 [root@l-wap4.beta.cn1.qunar.com /server/mobileserverlog]# netstat -na | grep 47653 tcp 0 0 0.0.0.0:47653 0.0.0.0:* LISTEN 20926/java 4. 执行 覆盖率文件导出命令 java -cp /home/q/java/emmalib/emma.jar emma ctl -connect localhost:47653 -command coverage.get,coverage.ec 可见输出: EMMA: processing control command sequence ... EMMA: executing [coverage.get (coverage.ec,true,true)] ... EMMA: coverage.get: local copy of coverage data merged into [/server/TripAssistant/coverage.ec] EMMA: coverage.get: command completed in 79 ms EMMA: control command sequence complete 并且当前目录生成文件 coverage.ec 5. 生成报告 java -cp /home/q/java/emmalib/emma.jar emma report -r html -in coverage.em,coverage.ec 指定源代码生产覆盖率报告(需先上传源码) java -cp /home/q/java/emmalib/emma.jar emma report -r html -in /server/TripAssistant/coverage.em,/server/TripAssistant/coverage.ec -Dreport.html.out.file=mycoverage/coverage.html -sp /home/liang.zhou/mob_code_dir/mobs_trunk/src/main/java emma 方式启动 mobserver ================================== 1. 判断mobserver.jar size, 大于5M 为已插入过, 小于5M为未插入(需要执行插入) 2. 执行插入 3. 启动 4. 检查启动状态 47653 端口打开 mobileserver 进程打开 emma 方式停止 mobserver ================================== 1. 检查47653端口打开状态, 检查coverage.em是否存在 2. 导出覆盖率文件 coverage.ec, 备份coverage.em (加上时间戳) 3. 导出覆盖率HTML report (加上对应时间戳) 4. kill mobserver 进程 ls -lt mobile-server.jar 判断 $? == 0 判断mobile-server.jar size是否大于 5M #!/bin/bash function stop_mob_server(){ #!/bin/bash function stop_mob_server(){ pid=`ps aux | grep MobileServer | grep -v grep | awk ' Unknown macro: {print $2} '` ` kill -9 $ Unknown macro: {pid} ` sleep 1 echo "Stop mobileserver success." } #判断 emma ctl 是否启动 port_check_result=`netstat -na | grep 47653 | awk ' Unknown macro: {print $1} '` if [ -z $ Unknown macro: {port_check_result} ]; then echo "Emma ctl port 47653 is not LISTEN. Coverage.ec export operation aborted." else #emma ctl 为启动状态,导出 coverage.ec, 并备份至 /home/q/mobsrv_cov if [] fi转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦