iptables内网访问外网 ε=ε=ε=(~ ̄▽ ̄)~
介绍
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内网访问外网 ε=ε=ε=(~ ̄▽ ̄)~的更多相关文章
- 利用iptables的NAT代理实现内网访问外网
利用NAT代理实现内网访问外网 背景及原理 若局域网中的两台计算机只能有一台能够访问外网,而这两台计算机之间能相互通信,那么可以配置能访问外网的那台服务器实现路由器的功能,即实现其他机器的NAT转换, ...
- 医院内外网之间通过网闸交互,通过端口转发加nginx代理实现内网访问外网
首先介绍下主要需求,很简单,就是要在医院his系统内嵌公司的平台,实现内网直接访问外网 这是院方给我提供的网闸相关配置,105是医院内网的服务器,120是外网的服务器,中间通过网闸配置的几个端口实现互 ...
- iptables之NAT代理-内网访问外网
1.前言 本文使用NAT功能:内网服务器,想上网又不想被攻击. 工作原理:内网主机向公网发送数据包时,由于目的主机跟源主机不在同一网段,所以数据包暂时发往内网默认网关处理,而本网段的主机对此数据包不做 ...
- openWRT利用mac地址限制局域网内设备访问外网
利用iptable设置防火墙: iptables -A INPUT -p tcp -m mac --mac-source 44:94:FC:25:68:8D --dport 80 -j DROP
- iptables内网地外网之间访问
环境:一台带外网和内网的机器,另一台只有内网,默认不能上网.两台机器都是centos系统带外网机器的外网ip为 123.221.20.11, 内网网关ip为 192.168.15.100内网机器的内网 ...
- Docker 容器内无法通过 HTTP 访问外网
现象 内/外网 IP 和 域名 可以 ping 通 容器内无法访问宿主机所在内网及外网的 Web 服务(404) 通过 curl 查看返回头信息感觉是所有 Web 请求被中转到一个固定的 Nginx ...
- 内网DMZ外网之间的访问规则
当规划一个拥有DMZ的网络时候,我们可以明确各个网络之间的访问关系,可以确定以下六条访问控制策略. 1.内网可以访问外网 内网的用户显然需要自由地访问外网.在这一策略中,防火墙需要进行源地址转换. 2 ...
- 内网IP外网IP的关联及访问互联网原理
首先解释一下“内网”与“外网”的概念: 内网:即所说的局域网,比如学校的局域网,局域网内每台计算机的IP地址在本局域网内具有互异性,是不可重复的.但两个局域网内的内网IP可以有相同的. 外网:即互联网 ...
- Windows两个网卡配置路由规则 同时访问内网和外网
电脑上有两个网卡,一个有线一个无线,有线连局域网,无线连外网,虽然两个网都连着,但还是会出现访问不通的情况. 这就要求我们自己来配置路由规则,让内网的访问走内网的网卡,外网的访问走外网的网卡. 一.查 ...
随机推荐
- JavaScript基础入门10
目录 JavaScript 基础入门10 正则表达式 为什么使用正则表达式? 正则表达式的应用场景 如何创建一个正则表达式 基础语法 具有特殊意义的转义字符 量词 字符类 贪婪模式 练习 邮箱验证 中 ...
- idea退出提醒 打开
有时候会误点下面的勾选框,导致以后直接退出,没有提示,很不方便,经常误点关闭,再次打开又要等很久 如何设置回来? File-Setting-Appearance&Beha-System Set ...
- 史上最简单的CentOS7破解密码方法,有图有真相
#############破解CentOS7密码详细过程 一.开机重启,按任意键停住,有时没停住,是鼠标键未在服务器中,点一下就好 二.按e键进入单用户模式 三.在UTF-8后面加上i ...
- mysql——插入、更新、删除数据(示例)
插入数据 一.前提,新建表: ), sname ), sage ), ssex ) ); select * from student; 二.多种方式插入数据: ','zhaolei','1990-01 ...
- Spring 中的几个常用的钩子接口
1.Aware接口 Awear 这个单词的意思是知道的,所以可以猜想以Awear 结尾的接口意思可以把他知道的东西告诉我们.常用的Awear接口有 ApplicationContextAware和 B ...
- 使用HTMLTestRunner生产报告
HTMLTestRunner下载安装及用法 1. 说明 HTMLTestRunner 是 Python 标准库的 unittest 模块的一个扩展.它生成易于使用的 HTML 测试报告 本文针对Pyt ...
- Sleepy Game CodeForces - 936B
大意: 给定有向图, 初始点S, 两个人轮流移动, 谁不能移动则输, 但后手睡着了, 先手可以控制后手操作, 求最后先手结果. 刚开始看错了, 还以为后手也是最优策略.... 实际上判断是否有偶数个节 ...
- 关于ionic4导入android studio的注意事项
最近看IT营的视频的时候,发现视频讲解的打包真是轻松的不得了,但是当自己导入打包的时候,你就会发现,没有最坑,只有更坑,按照教程来打包,估计你这辈子很难还原成功的,下面就来说一下关于 gradle与g ...
- 【原创】运维基础之Nginx(3)location和rewrite
nginx location =:精确匹配(必须全部相等) ~:大小写敏感,正则匹配 ~*:忽略大小写,正则匹配 ^~:只需匹配uri部分,精确匹配 @:内部服务跳转,精确匹配 优先级: Exact ...
- 优秀java博客
https://www.jianshu.com/p/efb58b7115bf?utm_source=tuicool https://www.nowcoder.com/discuss/110317 ht ...