介绍

iptables概述:

netfilter/iptables : IP信息包过滤系统,它实际上由两个组件netfilter 和 iptables 组成。

netfilter/iptables 关系:

netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。

iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。

IP地址规划

主机名 eth0 eth1 作用
firewalld 10.0.0.81 172.16.1.81 防火墙
m01 10.0.0.61 172.16.1.61 (ifdown) 批量管理

 m01通过内网网关(访问firewalld内网IP地址)进行地址转换,从而访问外网。

流程图:

防火墙服务安装部署

[root@firewalld ~]# yum install -y iptables-services  

[root@firewalld ~]# systemctl start iptables

修改m01网卡配置

因为是内网访问所以我们无需使用eth0,直接down就可以

[root@m01 ~]#  ifdown  eth0
[root@m01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth1
UUID=ae935876-ade9-4a88-b7d7-45fb1fc6d690
DEVICE=eth1
ONBOOT=yes
IPADDR=172.16.1.61
PREFIX=
GATEWAY=172.16.1.81 #网关是firewalld的内网IP地址
DNS1=223.5.5.5 #要有DNS解析,否则无妨上网

修改完需要我们重启eth1网卡:

[root@m01 ~]#  ifdown eth1 && ifup eth1
Device 'eth1' successfully disconnected.
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/)

修改firewalld的网卡配置

forward 表 负责转发流经主机的数据包,起转发的作用,和NAT关系很大

LVS NAT 模式,net.ipv4.ip_forward=0

[root@firewalld ~]# echo ""> /proc/sys/net/ipv4/ip_forward   #修改当前系统内存中ip_forward的值,这是开启ip转发
[root@firewalld ~]# cat /proc/sys/net/ipv4/ip_forward
[root@firewalld ~]# sysctl -p 或者:
[root@firewalld ~]# vim /etc/sysctl.conf
#最后一行加上
net.ipv4.ip_forward =
[root@firewalld ~]# sysctl -p

firewalld防火墙配置

POSTROUTING:  表示数据包在从一个接口要流出, 做一个地址映射
PREROUTING:   表示数据包在从一个接口要流入, 做一个地址转换
OUTPUT :  表示将防火墙自身产生的数据流量做地址或者端口转换

[root@firewalld ~]# iptables -t nat -A POSTROUTING  -s  172.16.1.61  -o eth0 -j SNAT  --to-source 10.0.0.81
#将172.16.1.61IP地址转换为10.0.0.
[root@firewalld ~]# service iptables save #保存设置,将上面的设置写入文件内

[root@m01 ~]# iptables-save #查看内容
# Generated by iptables-save v1.4.21 on Thu Dec ::
*nat
:PREROUTING ACCEPT [:]
:INPUT ACCEPT [:]
:OUTPUT ACCEPT [:]
:POSTROUTING ACCEPT [:]
-A POSTROUTING -s 172.16.1.61/ -o eth0 -j SNAT --to-source 10.0.0.81
COMMIT
# Completed on Thu Dec ::
# Generated by iptables-save v1.4.21 on Thu Dec ::
*filter
:INPUT ACCEPT [:]
:FORWARD ACCEPT [:]
:OUTPUT ACCEPT [:]
COMMIT
# Completed on Thu Dec ::

m01 进行测试:

[root@m01 ~]# ping  baidu.com
PING baidu.com (220.181.38.148) () bytes of data.
bytes from 220.181.38.148 (220.181.38.148): icmp_seq= ttl= time= ms
bytes from 220.181.38.148 (220.181.38.148): icmp_seq= ttl= time= ms
bytes from 220.181.38.148 (220.181.38.148): icmp_seq= ttl= time= ms
bytes from 220.181.38.148 (220.181.38.148): icmp_seq= ttl= time= ms

实验完成,最核心的是iptables的配置,需要用到nat表中的POSTROUTING

iptables内网访问外网 ε=ε=ε=(~ ̄▽ ̄)~的更多相关文章

  1. 利用iptables的NAT代理实现内网访问外网

    利用NAT代理实现内网访问外网 背景及原理 若局域网中的两台计算机只能有一台能够访问外网,而这两台计算机之间能相互通信,那么可以配置能访问外网的那台服务器实现路由器的功能,即实现其他机器的NAT转换, ...

  2. 医院内外网之间通过网闸交互,通过端口转发加nginx代理实现内网访问外网

    首先介绍下主要需求,很简单,就是要在医院his系统内嵌公司的平台,实现内网直接访问外网 这是院方给我提供的网闸相关配置,105是医院内网的服务器,120是外网的服务器,中间通过网闸配置的几个端口实现互 ...

  3. iptables之NAT代理-内网访问外网

    1.前言 本文使用NAT功能:内网服务器,想上网又不想被攻击. 工作原理:内网主机向公网发送数据包时,由于目的主机跟源主机不在同一网段,所以数据包暂时发往内网默认网关处理,而本网段的主机对此数据包不做 ...

  4. openWRT利用mac地址限制局域网内设备访问外网

    利用iptable设置防火墙: iptables -A INPUT -p tcp -m mac --mac-source 44:94:FC:25:68:8D --dport 80 -j DROP

  5. iptables内网地外网之间访问

    环境:一台带外网和内网的机器,另一台只有内网,默认不能上网.两台机器都是centos系统带外网机器的外网ip为 123.221.20.11, 内网网关ip为 192.168.15.100内网机器的内网 ...

  6. Docker 容器内无法通过 HTTP 访问外网

    现象 内/外网 IP 和 域名 可以 ping 通 容器内无法访问宿主机所在内网及外网的 Web 服务(404) 通过 curl 查看返回头信息感觉是所有 Web 请求被中转到一个固定的 Nginx ...

  7. 内网DMZ外网之间的访问规则

    当规划一个拥有DMZ的网络时候,我们可以明确各个网络之间的访问关系,可以确定以下六条访问控制策略. 1.内网可以访问外网 内网的用户显然需要自由地访问外网.在这一策略中,防火墙需要进行源地址转换. 2 ...

  8. 内网IP外网IP的关联及访问互联网原理

    首先解释一下“内网”与“外网”的概念: 内网:即所说的局域网,比如学校的局域网,局域网内每台计算机的IP地址在本局域网内具有互异性,是不可重复的.但两个局域网内的内网IP可以有相同的. 外网:即互联网 ...

  9. Windows两个网卡配置路由规则 同时访问内网和外网

    电脑上有两个网卡,一个有线一个无线,有线连局域网,无线连外网,虽然两个网都连着,但还是会出现访问不通的情况. 这就要求我们自己来配置路由规则,让内网的访问走内网的网卡,外网的访问走外网的网卡. 一.查 ...

随机推荐

  1. 在web项目中获取ApplicationContext上下文的3种主要方式及适用情况

    最近在做web项目,需要写一些工具方法,涉及到通过Java代码来获取spring中配置的bean,并对该bean进行操作的情形.而最关键的一步就是获取ApplicationContext,过程中纠结和 ...

  2. Linux实用技巧

    1. linux共享内存的查看和释放 查看共享内存命令:ipcs -m 删除共享内存明明:ipcrm -m [shmid] [negivup@negivup mycode]$ ipcs -m  查看共 ...

  3. POJ - 2112 Optimal Milking (dijkstra + 二分 + 最大流Dinic)

    (点击此处查看原题) 题目分析 题意:在一个农场中有k台挤奶器和c只奶牛,每个挤奶器最多只能为m只奶牛挤奶,每个挤奶器和奶牛都视为一个点,将编号1~k记为挤奶器的位置,编号k+1~k+c记为奶牛的位置 ...

  4. MyISAM与InnoDB的索引差异

    数据库的索引分为主键索引(Primary Index)与普通索引(Secondary Index).InnoDB和MyISAM是怎么利用B+树来实现这两类索引的,又有什么差异呢?一.MyISAM的索引 ...

  5. 你写的 Java 代码是如何一步步输出结果的? (转)

    出处:  一步步解析java执行内幕 对于任何一门语言,要想达到精通的水平,研究它的执行原理(或者叫底层机制)不失为一种良好的方式.在本篇文章中,将重点研究java源代码的执行原理,即从程 序员编写J ...

  6. 分布式唯一ID生成器Twitter

    分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的. 有些时候我们希望能使用一种简单一 ...

  7. Intellij IDEA 配置 Code Style

    前言 昨天自说自话,闲扯了界面设计和代码规范.设计确实需要一些经验,也不一定能取悦所有人.而代码规范却是程序员所起码应当做到的,多人协作中,杂乱的代码就好像批阅潦草的作文,可读性极差. 然而这是个懒人 ...

  8. redis 学习(10)-- redis 慢查询

    redis 慢查询 什么是慢查询 MySQL会记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为慢查询,都记在慢查询日志里. redis 的生命周期 客户端向Redis服务器发送命令 ...

  9. 简单搭建http服务器-HttpListener使用

    使用HTTPListener可以简单搭建一个Http服务器,对于本地使用很是方面,想起之前使用了WebSocket来与本地网页通讯的例子,也是可以改为使用HTTPListener来做的.看下HTTPL ...

  10. IdentitiServser4 + Mysql实现Authorization Server

    Identity Server 4官方文档:https://identityserver4.readthedocs.io/en/latest/ 新建2个asp.net core 项目使用空模板 Aut ...