linux iptables使用

iptables利用封包过滤的机制,分析封包的表头数据,根据表头数据与定义的规则来决定该封包是否可以进入主机或者被丢弃。

iptables包含表(table)和链(chain),我们最常用的表是filter(过滤器)表,默认情况下我们操作的都是这个表。

还有其他相关的知识大家可以参考鸟哥的linux私房菜。这里着重讲一下如何使用的问题。

注意,在远程服务器上进行操作时务必要小心,一定要在本地测试熟练后再进行远程配置。

常用的参数:

iptables -L

列出所有规则,还有其他参数,-n 表示不进行ip与hostname的反查,速度较快,–line-numbers表示显示行号。例如iptables -L -n --line-numbers

iptables -F

清除所有的已订定的规则

iptables -X

杀掉所有使用者 “自定义” 的 chain (应该说的是 tables )

iptables -Z

将所有的 chain 的计数与流量统计都归零

iptables的规则(rule)是按照顺序解释的,碰到符合的规则就结束了,所以每次我们全部重新配置时都要先执行以上三个命令

下面是添加规则时常用的参数:

iptable -P

注意这里P是大写,这里定义的是规则的策略,用于定义INPUT,OUTPUT,FORWARD的默认策略,在封包没有符合的规则时,会使用默认的策略。例如iptable -P INPUT ACCEPT

用于添加rule的参数

-A 表示添加到规则的结尾,-I表示在某条规则之前插入,如果没有指定具体的条目则默认插入到第一条。

-io 表示设定封包进出的接口规范,-i表示封包进入的接口,例如eth0,lo等,需与INPUT链配合。-o表示传出的网络接口,需与OUTPUT链配合。

-p 表示封包的格式,主要包含:tcp,udp,icmp及all

与-p配合的参数有:–sport表示来源的端口或者端口范围,例如:3389,或者1024:1025,–dport表示目标端口号或者端口范围,同–sport。

-s 表示来源的IP或网域。例如:IP:192.168.0.1,网域:192.168.0.0/24,在ip或网域前加!表示禁止,例如:-s ! 192.168.0.1。

-d 表示目标ip或网域。同-s。

-j 后面接动作,包括:ACCEPT,DROP,REJECT及LOG

到这里常用的参数已经介绍了。

另外还有常用的插件需要了解,state。这个在我们管理状态时非常有用,比如我们进行远程管理时,可以先添加对当前已经创建的链接放行的规则。

iptables -A INPUT [-m state] [--state 状态]

-m 表示使用的插件 : state,状态模块

--state 表示封包的状态,主要包含的状态为:INVALID,无效的封包,如数据损坏的封包;ESTABLISHED,已经成功连接的链接状态;NEW,想要新建立连接的封包状态;RELATED,表示这个封包是与我们主机发送的封包有关。

例如,我们新添加一个规则表示只要是已经建立或者相关的封包就给予通过,这个规则在我们操作远程服务器时比较常用:

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

下面我们列举一些实例,比如我们要配置一个远程服务器的规则,开放80端口,只让指定的ip访问6379端口:

iptables -F
iptables -X
iptables -Z
iptables -A INPUT -s 127.0.0.1/32 -d 127.0.0.1/32 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -s 10.129.59.120/32 -p tcp -m tcp --dport 6379 -j ACCEPT
iptables -A INPUT -s 10.163.200.91/32 -p tcp -m tcp --dport 6379 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 6379 -j DROP
iptables -A INPUT  -j DROP

转载请注明原文出处《linux iptables使用》 如无特别声明,所有文章均遵守创作共用 署名-非商业-禁止演绎 3.0协议。

使用javascript解析四则运算表达式

在编写代码时我们有时候会碰到需要自己解析四则运算表达式的情况,本文简单的介绍使用JavaScript实现对简单四则运算表达式的解析。

1. 熟悉概念

中缀表示法(或中缀记法)是一个通用的算术或逻辑公式表示方法, 操作符是以中缀形式处于操作数的中间(例:3 + 4)。也就是我们最常用的算术表达式,中缀表达式对于人类来说比较容易理解,但是不易于计算机解析。

逆波兰表示法Reverse Polish notationRPN,或逆波兰记法),是一种是由波兰数学家扬·武卡谢维奇1920年引入的数学表达式方式,在逆波兰记法中,所有操作符置于操作数的后面,因此也被称为后缀表示法。逆波兰记法不需要括号来标识操作符的优先级。逆波兰表示法容易使用堆栈结构对表达式进行解析并计算,所以,这里我们解析四则元素表达式,是先从中缀表达式,转换为逆波兰表达式。然后再计算值。 继续阅读 »

转载请注明原文出处《使用javascript解析四则运算表达式》 如无特别声明,所有文章均遵守创作共用 署名-非商业-禁止演绎 3.0协议。

Linux学习笔记:查找命令

  1. find
    查找文件命令
  2. locate
    按名字查找文件
  3. whereis
    确定命令的位置
  4. which
    确定系统命令是否存在 ,以及执行的到底是哪一个命令
  5. type
    确认命令是内部命令还是外部命令
  6. grep
    文本搜索命令,查找文件中符合条件的字符串

转载请注明原文出处《Linux学习笔记:查找命令》 如无特别声明,所有文章均遵守创作共用 署名-非商业-禁止演绎 3.0协议。

一个简单的倒计时功能,支持文本内容和class切换

帮朋友写了一个简单的倒计时功能,功能比较简单,支持文本内容和class的同时切换,你可以使用文字,也可以使用图片背景等效果

http://jsfiddle.net/cCGPY/1/

转载请注明原文出处《一个简单的倒计时功能,支持文本内容和class切换》 如无特别声明,所有文章均遵守创作共用 署名-非商业-禁止演绎 3.0协议。

三星I9152安装Google服务及Google家乱七八糟的软件

脑袋一抽筋,买了国行的Android手机,I9152,整个人感觉不大好了,我有用Google日历的习惯,结果现在Google帐号都添加不了,装了一个游戏部落战争(Clash of Clans)也没法登录,很是蛋疼。终于决定搞搞这个问题。

  1. root你的机器,如果你不想root那就直接ctrl + w走人吧。root的方法很多,各大刷机软件都有一键root的工具,我用了很多都不管用,最后360家的起作用了,虽然我不大喜欢,但是只能忍着。
  2. 找个软件安装google服务器框架,google play等。我用的是刷机精灵里面的安装Google服务器框架的工具,安装完毕后重启,会有个更新系统的提示,完事后进去,发现会有fc,而且play好像也fc,但是能登陆Google帐号了,好消息。
  3. 找个市场工具,重新安装Google play,和服务框架等,这里我就直接用360助手了。虽然我非常不喜欢360,但是确实就他起作用,没办法啊。装完重启,好了,更新系统,进去好像不fc啦,非常高兴。
  4. 打开我的游戏,进度条加载完成后,直接FC,整个人感觉又不大好了,整个世界满满的都是恶意有没有?上网搜了搜,死马当活马医了,把部落战争的游戏重新下载一遍,要注意,现在用市场软件是没法下的,因为直接就打开了,所以我用浏览器直接下载的APK包,下载完成,覆盖安装。
  5. 打开游戏,顺利进入,你猜怎么着,进度没丢!!顺利绑定ID,OK了。

仅在三星 Mega I9152上测试通过,其他的机器大同小异,不过没有实际测试,希望对你有用。

转载请注明原文出处《三星I9152安装Google服务及Google家乱七八糟的软件》 如无特别声明,所有文章均遵守创作共用 署名-非商业-禁止演绎 3.0协议。

2013年最后一天

  • 结婚了,修成正果,感谢皮蛋
  • 换了新环境,开始了新的工作,感谢盛世,也感谢yeelink
  • 接触了一点开源硬件的内容,了解了物联网
  • 小明的游戏开始了,完善了js游戏开发的mvc框架
  • 完善了nodejs的web框架
  • 学习了一点建模和渲染的知识

希望来年能多赚钱,养家糊口

转载请注明原文出处《2013年最后一天》 如无特别声明,所有文章均遵守创作共用 署名-非商业-禁止演绎 3.0协议。