利用iptables的NAT代理实现内网访问外网
利用NAT代理实现内网访问外网
- 背景及原理
若局域网中的两台计算机只能有一台能够访问外网,而这两台计算机之间能相互通信,那么可以配置能访问外网的那台服务器实现路由器的功能,即实现其他机器的NAT转换,从而使所有机器都能访问外网
- 环境模拟
在虚拟机中创建两台Linux系统(可以在创建一台后克隆另一台,这样做可以加快效率),分别命名为Linux1和Linux2,其中Linux1具有两块网卡eth0(NAT模式)和eth1(仅主机模式)
Linux2具有一块网卡eth0(仅主机模式),让Linux1做路由器(服务器),Linux2做客户机
ip地址分配为
Linux1:eth0 192.168.214.210(此ip跟VMware的NAT模式同网段,否则作为服务器端的Linux将无法访问外网)
eth1 172.16.6.254(自定义)
Linux2:eth0 172.16.6.100(自定义)
环境模拟步骤:
2.1 对于Linux1服务器端
2.1.1 vi /etc/sysconfig/network-scripts/ifcfg-eth0修改网卡配置文件,同时将ip改为静态ip:192.168.214.210,网关192.168.214.2
2.1.2 进入到/etc/sysconfig/network-scripts/目录,创建网卡eth1的配置文件,可以通过复制网卡eth0的配置文件cp ifcfg-eth0 ifcfg-eth1再进行配置,只需配置静态ip为172.16.6.254(即Linux2的网关)
2.1.3 执行命令>/etc/udev/rules.d/70-persistent-net.rules清空网卡信息相关文件
2.1.4 重启系统并查看ip
2.2 对于Linux2客户端
2.2.1 vi /etc/sysconfig/network-scripts/ifcfg-eth0修改网卡配置文件(因为是通过原来的克隆过来的,所以需要删除网卡的物理地址和UUID),同时将ip地址改为静态ip:172.16.6.100
2.2.2 执行命令>/etc/udev/rules.d/70-persistent-net.rules清空网卡信息相关文件
2.2.3 重启系统并查看ip
2.3在Linux1上pingwww.baidu.com –c4
检验Linux2与Linux1的通信,在Linux2上ping 172.16.6.254 –c4,同时ping www.baidu.com,发现能ping通网关(即Linux1),ping不通外网
3、在Linux1上操作
3.1 配置iptable转发规则执行如下命令
iptables -F #清除所有规则来暂时停止防火墙
iptables -t nat -A POSTROUTING -s 172.16.6.0/24 -j MASQUERADE #进行ip伪装
3.2 调整内核参数,开启内核ip路由转发功能
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p 载入sysctl配置文件
- 在Linux2上重新ping www.baidu.com –c4
此时Linux2能通过Linux1连上外网,大功告成!
博主原创文章,转载请务必注明出处
利用iptables的NAT代理实现内网访问外网的更多相关文章
- iptables内网访问外网 ε=ε=ε=(~ ̄▽ ̄)~
介绍 iptables概述: netfilter/iptables : IP信息包过滤系统,它实际上由两个组件netfilter 和 iptables 组成. netfilter/iptables 关 ...
- 医院内外网之间通过网闸交互,通过端口转发加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
- VMware虚拟机(Ubuntu)通过主机代理实现——浏览器+终端访问外网
环境说明:主机win10 + 虚拟机ubunut16.04 + 主机s-h-a-d-o-w-socks win10 主机相关操作配置1: 按下 Win + R 快捷键,输入 cmd ,然后在命令行中输 ...
- 阿里云CentOS 7无外网IP的ECS访问外网(配置网关服务器)
说明: 1.必须要有一台机器具有外网IP的ECS. 2.如果不想配置具有外网IP的ECS时,可以购买NAT网关,但需要钱,贵.下面会说明NAT网关的配置. 3.最后吐槽一下阿里云VPC网关导致不能按照 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- iptables内网地外网之间访问
环境:一台带外网和内网的机器,另一台只有内网,默认不能上网.两台机器都是centos系统带外网机器的外网ip为 123.221.20.11, 内网网关ip为 192.168.15.100内网机器的内网 ...
- sockets+proxychains代理,使内网服务器可以访问外网
Socks5+proxychains做正向代理 1. 应用场景: 有一台能上外网的机子,内网机子都不能连外网,需求是内网机子程序需要访问外网,做正向代理. 2. 软件 ...
随机推荐
- Backpropagation Through Time (BPTT) 梯度消失与梯度爆炸
Backpropagation Through Time (BPTT) 梯度消失与梯度爆炸 下面的图显示的是RNN的结果以及数据前向流动方向 假设有 \[ \begin{split} h_t & ...
- springmvc和struts2的区别比较
1.Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上Spr ...
- w3wp CPU 100%问题解决
问题: web服务器w3wp CPU占用率非常高,导致整个服务器CPU 100%占用,问题无法正常重现 解决方法: --问题尚未解决,此处记录目前的解决状态 1)下载windbg 参考https:// ...
- sqlserver创建存储过程返回table
--创建存储过程test create procedure [dbo].[test] ( @I_MTR NVARCHAR (MAX), @I_TYPE NVARCHAR (MAX), @I_FAC N ...
- UVALive 5099 Nubulsa Expo 全局最小割问题
B - Nubulsa Expo Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Submit S ...
- MySql数据库 - 3.利用MySql Workbench 对数据库进行操作
打开MySql Workbench 选择呢一个数据库 查看数据库: 创建数据库 在SCHEMAS下的空白位置右键 - 选择 Create Schema... 如果数据库名字中有大写字母,会出现如下提示 ...
- 当时用vuex的时候,使用...对象展开扩展符报错的解决办法
出现这种问题的主要原因是当前的babel不支持...对象展开扩展符,只需要安装一个插件然后再在.babelrc当中进行下配置就好了 npm i babel-plugin-transform-objec ...
- cocoaPod的Podfile文件的创建和内容格式
Podfile创建: 1.终端中,cd到项目总目录(cd +路径名) cd/........./......../...../项目名 2.终端中继续建立Podfile(配置文件) touch Podf ...
- hdu 4293 区间DP
/* 题目大意:n个人分成若干组,每个人都描叙他们组前面有多少人后面有多少人, 求说真话的人最多有多少个. 解题思路:把同一组的人数统计起来他们组前面有x人后面有y人, num[x+1][n-y]表示 ...
- hdoj 1175 连连看
连连看 Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...