firewalld的简要说明: firewalld 、firewall-cmd 、firewall-offline-cmd它们Python脚本,通过定义的在/usr/lib/firewalld下面的xml配置信息, 在启动时自动载入默认iptables配置,并应用到系统中,当使用firewalld-cmd添加防火墙规则时,它实际是转换成 iptables规则后,在应用到系统中。
firewalld定义了几个概念: zone: 它是安全域的范围,就类似于Window上的域网络,工作网络,家庭网络,Internet网络等,不同的安全作用域 其安全级别不同,安全程度不同,家庭zone的安全规则就是最宽松的。 service: 它是zone里面的定义一个规则集,它将iptables中单独根据 入接口,出接口,源目端口,协议等定义单独规则 整合为一个规则集合,方便识别和管理。 protocol: 定义协议规则 port,source-port :基于端口定义规则,port我的理解:定义源和目标为指定端口的规则。 source: 定义源地址规则 interface: 定义基于出入接口的规则。 direct: 直接定义原始iptables规则。 白名单控制谁能操作firewalld 对规则做增删改: 注: firewalld的白名单机制是控制,谁能操纵firewall-cmd来对现有规则进行增删改等操作。 此选项支持四种控制方式: 1. context : 根据SELinux的进程domain(域)的安全上下文类型来定义Whitelist(白名单) 2. command: 根据命令的绝对路径做Whitelist. 3. uid 4. user: 可以使用用户名 或 UID来做Whitelist 全局选项: --state #显示当前firewalld服务的运行状态。 --runtime-to-permanent #将运行时配置保存为永久配置。 全局刷新配置: --reload #重新加载防火墙permanent(永久的)的规则配置,覆盖当前运行时配置, 在运行时添加的非permanent规则,都将丢失。 --complete-reload #完全重新加载防火墙,甚至netfilter内核模块。这很可能会终止活动连接, 因为状态信息会丢失。此选项仅在出现严重防火墙问题时使用。 例如,如果存在状态信息问题,则无法使用正确的防火墙规则建立连接。 全局开启日志记录功能: --get-log-denied #查看是否启用了在所有规则中启用拒绝日志记录。 --set-log-denied=[all |unicast |broadcast |multicast |off] #设置启用或禁用在所有规则添加拒绝或删除日志记录功能。 在进行一下操作前需要知道: 增删查改: 增: --add- 或 --new- #注: add:新增子选项 ; new:新建新项目 删: --remove- 或 --delete- 查: --query- 改: --change- 查看修改前: firewall-cmd --reload 然后查看: --info-[zone |service |ipset |icmptype |helper]=[zone |service |ipset |icmptype |helper]
--path-[zone |service | icmptype |helper |ipset]=[zone |service | icmptype |helper |ipset]
--list-[all-zones |services |ports |protocols |source-ports |icmp-blocks |forward-ports |interfaces |sources]
--get-[zones |services |icmptypes ]=[zones |services |icmptypes] --get-zone-of-interface=网卡接口 #查看此网卡接口当前被附加到那个zone --get-zone-of-source=[/]||ipset: --get-[default-zone |active-zones |target |ipsets |ipset-types |descripton |short |helpers] zone选项: 注: zone可设置target,即iptables的动作,默认public的动作是仅允许icmp报文.
--set-default-zone= #设置默认zone, 默认为:public 创建zone有两种方法: --new-zone= #直接指定zone名称创建. --new-zone-from-file= [--name=] #根据/etc/firewalld/zones/ 或 /usr/lib/firewalld/zones/下已有的zone.xml来创建. 例: firewall-cmd --new-zone=test --permanent firewall-cmd --reload #任何操作完成后,都必须刷新后,才能查看到。
注: 实际上firewalld也采用了多层结构来管理iptables规则,--permanent实际上是将当前在内存 中的修改刷写到磁盘的配置文件中,这个配置文件就是默认zone的配置文件,默认在 /etc/firewalld/zone/public.xml --reload则是将内存中的数据同步到运行时的firewalld管理的runtime数据结构中。
在默认zone 或 指定zone下可做的操作: --add-port=[-]/ --add-source-port=[-]/ --add-protocol= --add-service= 注: service就相当于port,source-port,protocol的集合,可将这些单独的元素,打包成一个服务来通过 调用它,一并创建port,source-port,protocol规则。 创建服务和创建zone一样,也是两种方式: --new-service= #指定服务名称来创建 --new-service-from-file= [--name=] #根据已有xml文件来创建 在服务下可做的操作: --service= --add-port=[-]/ --service= --add-source-port=[-]/ 注: port 和 source-port都可以定义多个,但是测试发现,定义多个后,仅第一个会在iptables中的filter表中 创建允许规则。 若需要定义多个自定义端口,最好使用范围来创建允许一个端口范围的规则。 --service= --add-protocol= #它可以被创建为单独的一条运行某协议的iptables规则. --service= --add-module= #不知道如何使用 --service= --set-description= #定义一个具体功能描述说明 --service= --set-short= #定义一个简短描述名 --service= --set-destination=:[/] #定义目标地址. 因为对于服务来说,它的源只能是自己。 例: #创建服务的示例: firewall-cmd --new-service=test --permanent firewall-cmd --service=test --add-port=9090/tcp --permanent firewall-cmd --service=test --add-source-port=10001-10003/tcp --permanent firewall-cmd --service=test --add-protocol=udp --permanent firewall-cmd --service=test --set-description='This is a test service !' --permanent cat /etc/firewalld/services/test.xml
firewall-cmd --add-service=test --premanent #这样就执行创建iptables规则了。 firewall-cmd --reload iptables -n -v -L 在默认zone 或 指定zone下,添加网卡接口 和 源地址规则: --add-interface= 注: 将指定物理网卡的接口添加到zone中.默认是添加到public zone中. firewalld执行此操作后,会在INPUT链 和 FORWARD链中添加入站 和 转发规则。 firewall-cmd --add-interface=eth1 --permanent firewall-cmd --reload iptables -v -n -L |grep -C3 'eth1‘
--add-source=[/]||ipset: 注: 将指定源地址添加到指定zone中,默认:public. firewalld 执行此操作后, 会在INPUT链 和 FORWARD链中添加入站 和 转发规则. firewall-cmd --add-source=10.0.0.0/24 --permanent firewall-cmd --reload iptables -v -n -L |grep -B3 ‘10.0.0.0/24’
ICMP相关的规则: --add-icmp-block= --add-icmp-block-inversion 在默认zone 或 指定zone下启用NAT功能: 注: 它支持DNAT(端口转发) 和 SNAT(源地址转换) --add-forward-port=port=[-]:proto=[:toport=[-]][:toaddr=[/]] 例: firewall-cmd --add-forward-port=port=10003:proto=tcp:toport=22:toaddr=192.168.0.12 注: 添加一条临时规则,若--reload将被删除. 此规则创建一个DNAT规则,将访问防火墙10003端口的报文转发给192.168.0.12的22号端口上。 firewall-cmd执行此命令,实现DNAT的步骤如下: 1.在mangle中添加一条规则去匹配目标端口是10003的报文,然后将其打上标记。 2.在nat条中添加一条DNAT规则,通过匹配标记,将其源地址修改为192.168.0.12后,从转发filter表. 3.在filter表中添加一条转发规则,只要匹配指定标记,就直接转发。 4.开启系统的转发功能。
#启用IPv4的动态IP伪装(即动态SNAT),它仅在POST_public_allow 链中添加了一条出接口非环回口的SNAT规则. --add-masquerade direct选项: 注: 此选项支持直接编写iptables规则. --add-chain {ipv4|ipv6|eb}
--add-rule {ipv4|ipv6|eb} ... 注: priority: 就是规则插入的行号,越靠前越优先。 arg: iptables相关规则选项。 Whitelist选项: firewall-cmd --lockdown-on #先开启功能,在设置谁能操纵firewall-cmd. firewall-cmd --add-lockdown-whitelist-command= --add-lockdown-whitelist-context= --add-lockdown-whitelist-uid= --add-lockdown-whitelist-user= rich富语言选项用法: firewall-cmd [--zone=zone] [--add|--list|--query|--remove]-rich-rule='rule' [--timeout=seconds] 注: --timeout: 设置规则超时时间,若超时则自动删除,单位:秒 rule: 简略版 [source] [destination] service|port|protocol|icmp-block|masquerade|forward-port [log] [audit] [accept|reject|drop] rule:详细版 [family="ipv4|ipv6"] [source |destination] address="address[/mask]" [invert="True|yes"] [[service name="service name" ]| [port port="number_or_range" protocol="tcp|udp"] | [protocol value="协议名"] ] [ icmp-block name="icmptype name" ] [masquerade] [forward-port port="number_or_range" protocol="tcp|udp" to-port="number_or_range" to-addr="address"] [log [prefix=prefix text] [level=log level] limit value=rate/duration] [audit] [accept | reject [type="reject type"] | drop] masquerade:创建动态SNAT 【即:自动判断用户要去的网络,查询路由后,将SNAT用户的源地址转换为可去往该网络的IP】 创建SNAT: firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.0.0/24 masquerade accept" 注: 更简单的动态SNAT配置: firewall-cmd --permanent --add-masquerade firewall-cmd --permanent --query-masquerade #可查看是否启动成功. 若内部有多个网段时,它可自动识别不同网段,并完成SNAT. 跟它类似的SNAT配置为: firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=1.1.1.0/24 invert=yes" 注: invert=yes: 表示反转的意思,即只要不是1.1.1.0/24网络的都做SNAT.和直接写--add-masquerade类似. 验证: #查看自动配置的转发规则,即SNAT回来的数据包,给予转发放行. iptables -vnL |grep -C5 192.168.0.0/24 #查看自动配置的NAT表中的POSTROUTING链的的转化记录. iptables -vnL -t nat |grep -C5 192.168.0.0/24 客户端: #客户端与SNAT服务器之间是192.168.0.0/24网络,SNAT端连接Internet. #注意添加默认路由时,一定要指明是global,或使用via关键字,指明下一跳. #否则创建的路由将是link类型的,系统将认为,我们其实是在一个网络中.于是 #当我们ping 1.1.1.2时,系统将认为,客户端和1.1.1.0/24在一个局域网中, #于是发生ARP查询,这样肯定是查不到1.1.1.2的MAC的,就导致不通! ip route default via 192.168.0.1 dev eth0 ping 1.1.1.2 端口转发: #将源地址是172.24.8.0/24网络的,访问我的5432端口,则将其转发到我的22号端口.并记录日志,日志前缀为[ADMIN LOGIN] #而且限制每分钟只记录一条日志. firewall-cmd --add-rich-rule="rule family=ipv4 source address=172.24.8.0/24 forward-port port=5432 \ protocol=tcp to-port=22 log prefix='[ADMIN LOGIN]' limit value=1/m accept" 简单的允许对任意源做端口转发: firewall-cmd --add-forward-port=port=5432:proto=tcp:toport=22 --timeout=100 注: 格式: [--permanent] [--zone=zone] \ --add-forward-port=port=portid[-portid]:proto=protocol[:toport=portid[-portid]][:toaddr=address[/mask]] \ [--timeout=seconds]
转载于:https://www.cnblogs.com/wn1m/p/10920018.html
你可能感兴趣的:(firewall-cmd 使用总结)
Spring Cloud云架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)
初夏_91fb
上一篇我根据框架中OAuth2.0的使用总结,画了SSO单点登录之OAuth2.0登出流程,今天我们看一下根据用户token获取yoghurt信息的流程:image/***根据token获取用户信息*@paramaccessToken*@return*@throwsException*/@RequestMapping(value="/user/token/{accesstoken}",method
mysql 双主 脑裂_mysql双主+keepalived
weixin_39789206
mysql 双主 脑裂
环境OS:centos7Mysql版本:mysql5.7Keepalived:keepalived-1.2.20Mysql-vip:192.168.41.100Mysql-master1:192.168.41.10Mysql-master2:192.168.41.11实验环境关闭防火墙规则firewall-cmd一、配置两台mysql互为主从该过程的第一部分就是master记录二进制日志。在每个事
elementui Cascader 级联选择器的使用总结
XUE_雪
elementui 前端 javascript
实现效果技术要点总结如下:1、点击添加自动增加多行,实现自主选择增加多条节点数据2、节点地址使用的是Cascader级联选择器,需要动态生成,涉及到一个技术要点是:因v-modal只能获取value不能获取label,故需要解决在多个动态生成的Cascader分别获取他们选中的label和value,下面开始展示相关代码:html:添加删除确定取消js:handleChange(index){va
「iOS学习」——Masonry学习
归辞...
ios 学习 cocoa
iOS学习前言Masonry的属性Masonry的使用基础APIAutoBoxing修饰语倍数中心点设置边距优先级使用总结前言暑假我们学习了使用CocoaPods引入第三方库,实现使用SVG图片。而Masonry作为一个轻量级的布局架构,在使用中可以节省很多时间。故进行简单学习。Masonry的属性UI设计是iOS开发的必须一环,直接影响了app的观感和使用体验。我们通常使用frame框架直接确定
Python实现BASE64 算法
闲人编程
密码学 python 算法 开发语言 BASE64 加解密 密码学
目录使用Python实现BASE64算法的博客引言BASE64算法的工作原理BASE64编码表Python面向对象实现BASE64算法代码解析应用场景:在文件传输中的使用总结使用Python实现BASE64算法的博客引言在计算机科学中,BASE64是一种常用的数据编码方式,主要用于在处理文本时对二进制数据进行编码。BASE64编码的主要用途是在需要以文本形式传输二进制数据的场景下(例如电子邮件、U
Flybirds框架使用总结
自动化测试框架
运行环境Python版本:3.9.9Node版本:20.5.1Pycharm版本:2021.3专业版安装flybirds包打开Pycharm终端,输入如下命令:pipinstallflybirds安装完成后继续输入flybirdscreate然后输入项目名、平台,设备名和包名可以后面再填运行用例以Android自动化测试为例在生成的项目路径fbTest/features/test/android新
echarts使用总结
LeoValiant
echarts 堆叠图 自适应
1、修改echarts指示线的长度:labelLine:{//指示线长度normal:{length:10}},2、echarts自适应window.addEventListener(‘resize’,function(){myChart.resize();})3、echarts柱形堆叠图注意添加stack属性。series:[{name:‘邮件营销’,type:‘line’,stack:‘总量’
go语言channle使用总结
xyt001
前言:channel提供了一种通信机制,通过它,一个goroutine可以想另一goroutine发送消息。channel本身还需关联了一个类型,也就是channel可以发送数据的类型。例如:发送int类型消息的channel写作chanint。channel很强大,但是还是有点坑,下面是我个人的总结。1.使用两个值接收channel:<-channel能够返回一个值或者两个值,当返回两个值的时候
firewalld防火墙端口开放
心之语歌
linux vue.js
文章目录简绍要查看当前系统上已经开放的端口,可以使用firewall-cmd命令进行验证。开放端口关闭端口查看规则简绍Firewalld是Linux系统上的一个强大的防火墙解决方案。它是RedHat公司推出的一款用于替代iptables的新型防火墙软件,是CentOS7和Fedora18及以上版本的默认防火墙。它基于D-Bus进行通信,可动态管理网络连接并支持网络地址翻译(NAT)功能。使用fir
Java 中Lambada表达式中双冒号 ::使用总结
何以解忧,唯有..
java 开发语言
一、前言双冒号运算操作符是类方法的句柄,lambda表达式的一种简写表达式:person->person.getName();可以替换成:Person::getName表达式:()->newHashMaplist=Arrays.asList("a","b","c");//静态方法引用ClassName::methodNamelist.forEach(Colon::print);//上一行等价于//
CentOS 7 中firewall-cmd命令
_奇变偶不变_
安装firewalld防火墙yuminstallfirewalld开启服务systemctlstartfirewalld.service关闭防火墙systemctlstopfirewalld.service开机自动启动systemctlenablefirewalld.service关闭开机制动启动systemctldisablefirewalld.service使用firewall-cmd命令查看
自然语言处理系列四十五》Elasticsearch搜索引擎》Elasticsearch入门及技术原理
陈敬雷-充电了么-CEO兼CTO
搜索引擎 自然语言处理 elasticsearch ai chatgpt gpt 人工智能
注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】文章目录自然语言处理系列四十五Elasticsearch搜索引擎》Elasticsearch入门及技术原理Elasticsearch安装部署和使用总结自然语言处理系列四十五Elasticsearch搜索引擎》Elasticsearch入门及技术原理
CPU/内存/综合性能评估工具汇总-1:lmbench
So_shine
linux调试工具和性能量化 性能优化
目录一、概括二、lmbench一、概括嵌入式开发中对要设计的产品、立项的项目进行设计时,往往需要对关键芯片进行性能评估,本文主要总结基于linux系统的产品在性能评估时的工具使用总结,在aarch64(arm64平台下测试),板卡根文件系统为debian系统。工具列表如下:名称作用git源码链接lmbench带宽测评,反应时间测评https://github.com/redrose2100/lmb
Rocky Linux 运维工具 firewall-cmd
奶嘴很忙
Rocky Linux 运维工具 linux 运维 服务器
一、firewall-cmd的简介firewall-cmd是基于firewalld的防火墙管理工具。用户可以使用它来配置、监控和管理防火墙规则,包括开放端口、设置服务规则等。二、firewall-cmd的参数说明序号参数描述1–zone指定防火墙区域2–add-port=xxx/tcp允许特定TCP端口通过防火墙3–remove-port=xxx/tcp移除已允许通过防火墙的TCP端口。三、fir
【嵌入式模块】步进电机使用总结
记录无知岁月
# 嵌入式设备 嵌入式硬件 步进电机
关于本博客 此前上了一门课《自动控制元件》,但是由于学时有限,讲到步进电机就不讲了,留下了一个小遗憾,导致需要使用步进电机时就有点懵,于是找了一篇博客,链接在这里,推荐具有电机知识(如直流电机,异步电机等)的朋友看,如果完全不懂,建议先啃书。
JVM级缓存本地缓存Caffeine
旺仔爱Java
JVM专题 jvm JVM缓存 本地缓存 Caffeine Guava Cache
JVM级缓存本地缓存Caffeine和GuavaCache前言一、创建缓存的代码逻辑二、Caffeine的优化方面淘汰算法W-TinyLFU三、Caffeine的业务使用总结前言最新的Java面试题,技术栈涉及Java基础、集合、多线程、Mysql、分布式、Spring全家桶、MyBatis、Dubbo、缓存、消息队列、Linux…等等,会持续更新。一、创建缓存的代码逻辑Caffeine:publ
整合spring cloud云架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)
初夏_91fb
上一篇我根据框架中OAuth2.0的使用总结,画了SSO单点登录之OAuth2.0登出流程,今天我们看一下根据用户token获取yoghurt信息的流程:image/***根据token获取用户信息*@paramaccessToken*@return*@throwsException*/@RequestMapping(value="/user/token/{accesstoken}",method
firewalld高级防火墙规则-Direct Rules
victoruu
Linux linux firewalld
一.DirectRules概述通过firewall-cmd工具,可以使用--direct选项在运行时间里增加和删除链。如果不熟悉iptables,使用直接接口非常危险,因为可能无意间导致防火墙被入侵。直接端口模式适用于服务或者程序,以便于在运行时间内增加特定的防火墙规则。直接端口模式添加的规则优先应用二.高级防火墙Direct规则的使用1.查看防火墙上设置的规则firewall-cmd--dire
git命令使用
雄柱
git命令使用总结本文档分为两部分:1、git命令的使用,本地git仓库管理。2、git服务端搭建和使用。初始状态:设置用户名和邮箱:gitconfig--giobaluser.name"用户名"gitconfig--giobaluser.email"邮箱"一、git命令的使用,本地git仓库管理:git基本命令:gitinit创建版本库(repository)手动创建一个目录,进入该目录下执行该
Alert 组件使用总结
爱绑架的猫
安装局部注册test.vueimport{Alert}from'vux'exportdefault{components:{Alert}}直接看属性:Alert-属性.png这里主要使用value这个属性控制Alert消息弹出框的显示与否,然后使用title控制标题,Content控制提示内容,button-text控制按钮的文字,其他属性暂时没有用到,一般的情况下默认就可以了。事件:Alert-
curl编译linux静态库及使用总结
搬砖的小青年儿
一、安装OPENSSH1、上传文件并解压openssl-1.0.2k.tar.gz2、执行./configno-asmmakemakeinstall备注:如果要编译动态库,需要增加参数如下:./configno-asm--shared3、生成的文件目录在:/usr/local/ssl下二、安装curl1、上传文件并解压curl-7.53.1.tar.gz2、执行CPPFLAGS="-I/usr/l
C语言第二十六弹---字符串函数(下)
小林熬夜学编程
C语言详解 c语言 开发语言 算法
✨个人主页:熬夜学编程的小林系列专栏:【C语言详解】【数据结构详解】目录1、strncat函数的使用2、strncmp函数的使用3、strstr函数的使用和模拟实现4、strtok函数的使用5、strerror函数的使用6、perror函数的使用总结1、strncat函数的使用char*strncat(char*destination,constchar*source,size_tnum);•Ap
C语言第二十五弹---字符函数和字符串函数(上)
小林熬夜学编程
C语言详解 c语言 开发语言 算法
✨个人主页:熬夜学编程的小林系列专栏:【C语言详解】【数据结构详解】目录1、字符分类函数2、字符转换函数3、strlen的使用和模拟实现4、strcpy的模拟实现5、strcat的模拟实现6、strcmp的模拟实现7、strncpy函数的使用总结在编程的过程中,我们经常要处理字符和字符串,为了方便操作字符和字符串,C语言标准库中提供了⼀系列库函数,接下来我们就学习⼀下这些函数。1、字符分类函数C语
C语言第二十七弹---内存函数
小林熬夜学编程
C语言详解 c语言 开发语言
✨个人主页:熬夜学编程的小林系列专栏:【C语言详解】【数据结构详解】内存函数1、memcpy使用和模拟实现2、memmove使用和模拟实现3、memset函数的使用4、memcmp函数的使用总结前面两弹讲解了字符函数和字符串函数,但是在我们实际运用中不仅仅只有这些函数,因此下面我们继续需要几个常见的内存函数。1、memcpy使用和模拟实现void*memcpy(void*destination,c
【记录】Vue 高德地图使用总结(全地图/点聚合、单独区域、行政区划分、自定义图层)
vue.js高德地图
全地区展示/点聚合单独区域展示行政区划分自定义图层样图展示一、全地区展示/点聚合注意点:1、把AMap.Map绑定dom放到search行政查询之外;2、使用AMap.MarkerClusterer插件点聚合3、不用再把点位map.add/*加载地图*/asyncgetMaps(){this.loading=true;awaitMapLoader().then((AMap)=>{constmap=
C语言指针进阶
空杯心!
c语言 算法 c++
常见的几种类型的指针前言一、字符指针(char*)1.字符常量2.字符串常量二、指针数组三、数组指针1.数组指针的定义2.数组名vs&数组名3.数组指针的使用总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、字符指针(char*)指
React中Dva状态管理(model)的使用总结和理解
小流至江河
React Dva UmiJS React状态管理
一概述React中全局状态管理官方推荐使用Redux,Redux的使用场景其实在单个应用中是处于使用率只有20%,却有80%的学习成本。可是说是React全家桶中最难理解的部分了,相信很多人学习它时,各个概念整很迷糊。我就是要放弃Redux的时候,了解React-redux和redux-saga,它们是对redux的简化处理工具。可他们配置和文件结构,依然麻烦。直到Dva(低洼)的出现将React
C++STL总结笔记(一)—— 容器和容器适配器
人狮子
C++ c++ 容器 数据结构
文章目录前言一、概念1.1顺序容器1.2容器适配器1.3关联容器二、程序示例1.vector和Set自定义数据类型的访问2.vector容器嵌套3.list容器排序4.pair对组的使用总结前言STL是C++中的基于数据结构和算法的标准模板库,可以大量节约系统开发时间,增加程序复用性。STL的六大件包括容器、算法、迭代器、仿函数、适配器和空间配置器,其中几乎所有代码均使用了模板类和模板函数的概念。
Jest框架使用总结
海的那一边
先俗气一下,Firstofall,什么是Jest?Jest是由Facebook发布的开源的、基于Jasmine的JavaScript单元测试框架。1.jest安装:https://www.jianshu.com/p/16c604d1e0c42.测试执行前的准备及测试执行后的清理(setupandteardown):afterAll(fn):在此文件中的所有测试都完成后,运行的功能。通常用在你想要清
关于拖拽插件murri.js的使用总结——iframe拖拽卡顿问题
我有一个橙
做一个教务系统的界面,需要用到拖拽功能,要求可以拖拽到任意位置,支持自适应用户体验度高等在网上找了很多类似插件,对比后决定使用murri.js这款插件没有中文文档,github上有英文介绍和丰富的案例,所以做起来还是比较顺手的首先放一个已完成的界面:首页murri的案例中展示了很多种类的拖拽,大家可以根据自己的需要选择使用我这里使用的是比较基础的拖拽,没有排序功能等但是中间遇到一个问题:每个拖拽的
java短路运算符和逻辑运算符的区别
3213213333332132
java基础
/*
* 逻辑运算符——不论是什么条件都要执行左右两边代码
* 短路运算符——我认为在底层就是利用物理电路的“并联”和“串联”实现的
* 原理很简单,并联电路代表短路或(||),串联电路代表短路与(&&)。
*
* 并联电路两个开关只要有一个开关闭合,电路就会通。
* 类似于短路或(||),只要有其中一个为true(开关闭合)是
Java异常那些不得不说的事
白糖_
java exception
一、在finally块中做数据回收操作
比如数据库连接都是很宝贵的,所以最好在finally中关闭连接。
JDBCAgent jdbc = new JDBCAgent();
try{
jdbc.excute("select * from ctp_log");
}catch(SQLException e){
...
}finally{
jdbc.close();
utf-8与utf-8(无BOM)的区别
dcj3sjt126com
PHP
BOM——Byte Order Mark,就是字节序标记 在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输 字符"ZERO WIDTH NO-BREAK SPACE"。这样如
JAVA Annotation之定义篇
周凡杨
java 注解 annotation 入门 注释
Annotation: 译为注释或注解
An annotation, in the Java computer programming language, is a form of syntactic metadata that can be added to Java source code. Classes, methods, variables, pa
tomcat的多域名、虚拟主机配置
g21121
tomcat
众所周知apache可以配置多域名和虚拟主机,而且配置起来比较简单,但是项目用到的是tomcat,配来配去总是不成功。查了些资料才总算可以,下面就跟大家分享下经验。
很多朋友搜索的内容基本是告诉我们这么配置:
在Engine标签下增面积Host标签,如下:
<Host name="www.site1.com" appBase="webapps"
Linux SSH 错误解析(Capistrano 的cap 访问错误 Permission )
510888780
linux capistrano
1.ssh -v
[email protected] 出现
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
错误
运行状况如下:
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuratio
log4j的用法
Harry642
java log4j
一、前言: log4j 是一个开放源码项目,是广泛使用的以Java编写的日志记录包。由于log4j出色的表现, 当时在log4j完成时,log4j开发组织曾建议sun在jdk1.4中用log4j取代jdk1.4 的日志工具类,但当时jdk1.4已接近完成,所以sun拒绝使用log4j,当在java开发中
mysql、sqlserver、oracle分页,java分页统一接口实现
aijuans
oracle jave
定义:pageStart 起始页,pageEnd 终止页,pageSize页面容量
oracle分页:
select * from ( select mytable.*,rownum num from (实际传的SQL) where rownum<=pageEnd) where num>=pageStart
sqlServer分页:
 
Hessian 简单例子
antlove
java Web service hessian
hello.hessian.MyCar.java
package hessian.pojo;
import java.io.Serializable;
public class MyCar implements Serializable {
private static final long serialVersionUID = 473690540190845543
数据库对象的同义词和序列
百合不是茶
sql 序列 同义词 ORACLE权限
回顾简单的数据库权限等命令;
解锁用户和锁定用户
alter user scott account lock/unlock;
//system下查看系统中的用户
select * dba_users;
//创建用户名和密码
create user wj identified by wj;
identified by
//授予连接权和建表权
grant connect to
使用Powermock和mockito测试静态方法
bijian1013
持续集成 单元测试 mockito Powermock
实例:
package com.bijian.study;
import static org.junit.Assert.assertEquals;
import java.io.IOException;
import org.junit.Before;
import org.junit.Test;
import or
精通Oracle10编程SQL(6)访问ORACLE
bijian1013
oracle 数据库 plsql
/*
*访问ORACLE
*/
--检索单行数据
--使用标量变量接收数据
DECLARE
v_ename emp.ename%TYPE;
v_sal emp.sal%TYPE;
BEGIN
select ename,sal into v_ename,v_sal
from emp where empno=&no;
dbms_output.pu
【Nginx四】Nginx作为HTTP负载均衡服务器
bit1129
nginx
Nginx的另一个常用的功能是作为负载均衡服务器。一个典型的web应用系统,通过负载均衡服务器,可以使得应用有多台后端服务器来响应客户端的请求。一个应用配置多台后端服务器,可以带来很多好处:
负载均衡的好处
增加可用资源
增加吞吐量
加快响应速度,降低延时
出错的重试验机制
Nginx主要支持三种均衡算法:
round-robin
l
jquery-validation备忘
白糖_
jquery css F# Firebug
留点学习jquery validation总结的代码:
function checkForm(){
validator = $("#commentForm").validate({// #formId为需要进行验证的表单ID
errorElement :"span",// 使用"div"标签标记错误, 默认:&
solr限制admin界面访问(端口限制和http授权限制)
ronin47
限定Ip访问
solr的管理界面可以帮助我们做很多事情,但是把solr程序放到公网之后就要限制对admin的访问了。
可以通过tomcat的http基本授权来做限制,也可以通过iptables防火墙来限制。
我们先看如何通过tomcat配置http授权限制。
第一步: 在tomcat的conf/tomcat-users.xml文件中添加管理用户,比如:
<userusername="ad
多线程-用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1
bylijinnan
java 多线程
public class IncDecThread {
private int j=10;
/*
* 题目:用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1
* 两个问题:
* 1、线程同步--synchronized
* 2、线程之间如何共享同一个j变量--内部类
*/
public static
买房历程
cfyme
2015-06-21: 万科未来城,看房子
2015-06-26: 办理贷款手续,贷款73万,贷款利率5.65=5.3675
2015-06-27: 房子首付,签完合同
2015-06-28,央行宣布降息 0.25,就2天的时间差啊,没赶上。
首付,老婆找他的小姐妹接了5万,另外几个朋友借了1-
[军事与科技]制造大型太空战舰的前奏
comsci
制造
天气热了........空调和电扇要准备好..........
最近,世界形势日趋复杂化,战争的阴影开始覆盖全世界..........
所以,我们不得不关
dateformat
dai_lm
DateFormat
"Symbol Meaning Presentation Ex."
"------ ------- ------------ ----"
"G era designator (Text) AD"
"y year
Hadoop如何实现关联计算
datamachine
mapreduce hadoop 关联计算
选择Hadoop,低成本和高扩展性是主要原因,但但它的开发效率实在无法让人满意。
以关联计算为例。
假设:HDFS上有2个文件,分别是客户信息和订单信息,customerID是它们之间的关联字段。如何进行关联计算,以便将客户名称添加到订单列表中?
&nbs
用户模型中修改用户信息时,密码是如何处理的
dcj3sjt126com
yii
当我添加或修改用户记录的时候对于处理确认密码我遇到了一些麻烦,所有我想分享一下我是怎么处理的。
场景是使用的基本的那些(系统自带),你需要有一个数据表(user)并且表中有一个密码字段(password),它使用 sha1、md5或其他加密方式加密用户密码。
面是它的工作流程: 当创建用户的时候密码需要加密并且保存,但当修改用户记录时如果使用同样的场景我们最终就会把用户加密过的密码再次加密,这
中文 iOS/Mac 开发博客列表
dcj3sjt126com
Blog
本博客列表会不断更新维护,如果有推荐的博客,请到此处提交博客信息。
本博客列表涉及的文章内容支持 定制化Google搜索,特别感谢 JeOam 提供并帮助更新。
本博客列表也提供同步更新的OPML文件(下载OPML文件),可供导入到例如feedly等第三方定阅工具中,特别感谢 lcepy 提供自动转换脚本。这里有导入教程。
js去除空格,去除左右两端的空格
蕃薯耀
去除左右两端的空格 js去掉所有空格 js去除空格
js去除空格,去除左右两端的空格
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>&g
SpringMVC4零配置--web.xml
hanqunfeng
springmvc4
servlet3.0+规范后,允许servlet,filter,listener不必声明在web.xml中,而是以硬编码的方式存在,实现容器的零配置。
ServletContainerInitializer:启动容器时负责加载相关配置
package javax.servlet;
import java.util.Set;
public interface ServletContainer
《开源框架那些事儿21》:巧借力与借巧力
j2eetop
框架 UI
同样做前端UI,为什么有人花了一点力气,就可以做好?而有的人费尽全力,仍然错误百出?我们可以先看看几个故事。
故事1:巧借力,乌鸦也可以吃核桃
有一个盛产核桃的村子,每年秋末冬初,成群的乌鸦总会来到这里,到果园里捡拾那些被果农们遗落的核桃。
核桃仁虽然美味,但是外壳那么坚硬,乌鸦怎么才能吃到呢?原来乌鸦先把核桃叼起,然后飞到高高的树枝上,再将核桃摔下去,核桃落到坚硬的地面上,被撞破了,于是,
JQuery EasyUI 验证扩展
可怜的猫
jquery easyui 验证
最近项目中用到了前端框架-- EasyUI,在做校验的时候会涉及到很多需要自定义的内容,现把常用的验证方式总结出来,留待后用。
以下内容只需要在公用js中添加即可。
使用类似于如下:
<input class="easyui-textbox" name="mobile" id="mobile&
架构师之httpurlconnection----------读取和发送(流读取效率通用类)
nannan408
1.前言.
如题.
2.代码.
/*
* Copyright (c) 2015, S.F. Express Inc. All rights reserved.
*/
package com.test.test.test.send;
import java.io.IOException;
import java.io.InputStream
Jquery性能优化
r361251
JavaScript jquery
一、注意定义jQuery变量的时候添加var关键字
这个不仅仅是jQuery,所有javascript开发过程中,都需要注意,请一定不要定义成如下:
$loading = $('#loading'); //这个是全局定义,不知道哪里位置倒霉引用了相同的变量名,就会郁闷至死的
二、请使用一个var来定义变量
如果你使用多个变量的话,请如下方式定义:
. 代码如下:
var page
在eclipse项目中使用maven管理依赖
tjj006
eclipse maven
概览:
如何导入maven项目至eclipse中
建立自有Maven Java类库服务器
建立符合maven代码库标准的自定义类库
Maven在管理Java类库方面有巨大的优势,像白衣所说就是非常“环保”。
我们平时用IDE开发都是把所需要的类库一股脑的全丢到项目目录下,然后全部添加到ide的构建路径中,如果用了SVN/CVS,这样会很容易就 把
中国天气网省市级联页面
x125858805
级联
1、页面及级联js
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
&l