公网IP:110.24.3.83
内网IP:10.252.214.186
局域网数据库:10.252.214.100

通过NAT端口转发,访问110.24.3.83:3308端口跳转到局域网数据库机器的3306端口

# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -d 110.24.3.83 -p tcp --dport 3308 -j DNAT --to-destination 10.252.214.100:3306
-A POSTROUTING -d 10.252.214.100 -p tcp -j SNAT --to-source 10.252.214.186
COMMIT

*filter
:INPUT DROP [0:0]      #默认进来的所有包DROP,0:0表示没有限制包的个数和总字节数,匹配的动作无限制的流入流出。
:FORWARD DROP [0:0]   #默认转发的所有包DROP,0:0表示没有限制包的个数和总字节数,匹配的动作无限制的流入流出。
:OUTPUT ACCEPT [0:0]   #默认出去的所有包ACCEPT,0:0表示没有限制包的个数和总字节数,匹配的动作无限制的流入流出。
:RH-Firewall-1-INPUT - [0:0]         #自定义了一个表RH-Firewall-1-INPUT
-A INPUT -j RH-Firewall-1-INPUT       #将INPUT的所有包转发到自定义的RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT    #将FORWARD的所有包转发到自定义的RH-Firewall-1-INPUT ;这样INPUT和FORWARD的规则就一致了,也就意味着,只要定义好RH-Firewall-1-INPUT,就定义好了INPUT和FORWARD两个链
-A RH-Firewall-1-INPUT -i lo -j ACCEPT    #允许本机数据包通过
-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT  #允许已建立的链接数据包通过
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT        #允许ping本机
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -s 121.10.246.64/255.255.255.224 -m state --state NEW -j ACCEPT
-A RH-Firewall-1-INPUT -s 123.27.13.60 -m state --state NEW -j ACCEPT
-A RH-Firewall-1-INPUT -s 123.27.16.45 -m state --state NEW -j ACCEPT
COMMIT

-p tcp:   是说当前规则作用于 tcp 协议包
-m tcp:  是说明要使用iptables的tcp模块的功能 (--dport 等)

-m state --state <状态>
有数种状态,状态有:
▪ INVALID:无效的封包,例如数据破损的封包状态
▪ ESTABLISHED:已经联机成功的联机状态;
▪ NEW:想要新建立联机的封包状态;
▪ RELATED:这个最常用!表示这个封包是与我们主机发送出去的封包有关,可能是响应封包或者是联机成功之后的传送封包!这个状态很常被设定,因为设定了他之后,只要未来由本机发送出去的封包,即使我们没有设定封包的INPUT规则,该有关的封包还是可以进入我们主机,可以简化相当多的设定规则。

一则自用iptables例子解释的更多相关文章

  1. 用通俗的例子解释OAuth和OpenID的区别【原】

    什么是OAuth(Wiki) 什么是OpenID(Wiki) 详细的定义可以看wiki,下面举个例子说说我的理解 现在很多网站都可以用第三方的账号登陆,比如,现在我要登录淘宝买东西,而如果我没有淘宝的 ...

  2. php MVC 及例子解释

    根据http://www.21ds.net/article/4/453改写: MVC模式在网站架构中十分常见.它允许我们建立一个三层结构的应用程式,从代码中分离出有用的层,帮助设计师和开发者协同工作以 ...

  3. 小例子解释wait与notify的区别

    系统慢可能有很多种原因,硬件资源不足,语句不优化,结构设计不合理,缺少必要的运维方式.所有的这些问题都可以在阻塞与等待中看出端倪,发现并解决问题. 首先是下载开发工具,磨刀不误砍材工.点此下载 这是一 ...

  4. mysql-通过例子解释四种隔离级别

    SQL标准定义了4种隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的. 低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销. 首先,我们使用 test 数据库, ...

  5. 通俗易懂的例子解释 IAAS、SAAS、PAAS 的区别

    你一定听说过云计算中的三个“高大上”的你一定听说过云计算中的三个“高大上”的概念:IaaS.PaaS和SaaS,这几个术语并不好理解.不过,如果你是个吃货,还喜欢披萨,这个问题就好解决了!好吧,其实你 ...

  6. 如何用简单易懂的例子解释条件随机场(CRF)模型?它和HMM有什么区别?

    https://www.zhihu.com/question/35866596/answer/418341940

  7. 转:如何向妻子解释OOD

    如何向妻子解释OOD 前言 此文译自CodeProject上<How I explained OOD to my wife>一文,该文章在Top Articles上排名第3,读了之后觉得非 ...

  8. c++ primer,友元函数上的一个例子(By Sybase)

    本文试图解释c++ primer Screen 和 Window_Mgr的例子,为什么将两个类放在两个文件中无法编译? 将两个类写在同一个文件中,通过三个例子解释问题: 第一种写法问题: 编译到Scr ...

  9. for循环例子1、2、3

    /* Name:for循环例子1.2.3 Copyright: By.不懂网络 Author: Yangbin Date:2014年2月12日 02:12:41 Description:该代码用来熟悉 ...

随机推荐

  1. C 常用的输入输出 栈 哈希 文件写读 实现 字符串处理

    #include "stdafx.h"#include <stdio.h>#include <string.h>#include <stdlib.h& ...

  2. 【HDOJ】1728 逃离迷宫

    题目大坑,注意行列顺序式反的,另外注意起点和终点相同. #include <iostream> #include <cstdio> #include <cstring&g ...

  3. PHP按最大宽高等比例缩放图片类

    本来用phpthumb来缩略图片是十分方便的,但是最近在sae上写项目发现phpthumb在sae上保存文件时会出问题,想来实现一个简单的按最大宽高等比例缩放图片类也并不困难,于是便自己写了一个方便修 ...

  4. QTP自动化测试权威指南 连载(一)

    第一章 简介 什么是自动化测试 自动化测试是对一个已有的手工测试过程减少并尽可能排除人工干预的过程. 什么时候适合做自动化测试 下面是一组适合将手工测试自动化的考量因素: ● 测试需要经常重复. ● ...

  5. FBReader移植日记 第二天

    昨天我们的移植工作进行了一大半,还留下两个重要的部分没有完成:1.没有移植的 ZLTextView,2.FormatPlugin相关的类. 第一个问题我们放在后面解决,下面先解决格式插件的问题. 我们 ...

  6. bzoj 1188 [HNOI2007]分裂游戏(SG函数,博弈)

    1188: [HNOI2007]分裂游戏 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 733  Solved: 451[Submit][Status ...

  7. 得到创建人Id

    等到创建人id,也就是登录人id arg1 .getCtx().fetchMemberId(); 其中arg1是 LServerEnv 的对象

  8. Debug调试

    1.F5单步调试进入函数内部 2.F6单步调试进行下一步 3.F7由函数内部返回到调用用处 4.F8一直执行到下一个断点

  9. struts 2学习笔记—浅谈struts的线程安全

    Sruts 2工作流程: Struts 1中所有的Action都只有一个实例,该Action实例会被反复使用.通过上面Struts 2 的工作流程的红色字体部分我们可以清楚看到Struts 2中每个A ...

  10. [RxJS] Transformation operator: scan

    All of the combination operators take two or more observables as input. These operators may also be ...