1.1 流程大概如下:

1.环境准备

内部服务器B

内网172.16.1.12
ifdown eth0 #首先关闭外网网卡
route add default gw 172.16.1.11 #把上图中的eth1设置为B的网关
添加dns
[root@web01 ~]# cat /etc/resolv.conf
nameserver 192.168.56.2

.测试:

ping www.baidu.com

ping 203.81.19.1

结果应该是不通。

网关服务器

   eth0:192.168.56.11
eth1:172.16.1.11
gw: 192.168.56.2 #网关为 修改内核转发:
内核文件/etc/sysctl.conf里开启转发功能。
在服务器网关A 192.168.56.11机器上开启路由转发功能。
编辑/etc/sysctl.conf修改内容为net.ipv4.ip_forward = 1,然后执行sysctl -p使修改生效。
[root@oldboy ~]# sysctl -p
net.ipv4.ip_forward = 1
测试:ping www.baidu.com 结果通。 调整iptables环境(初始化环境)
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F

然后执行

iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to-source 192.168.56.11

方法1:适合于有固定外网地址的:

iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to-source 192.168.56.11

方法2:适合变化外网地址(拨号上网):

iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j MASQUERADE    ##伪装。

保存规则

#/etc/init.d/iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
#cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Wed May 30 14:02:24 2018
*nat
:PREROUTING ACCEPT [7:728]
:POSTROUTING ACCEPT [2:135]
:OUTPUT ACCEPT [2:135]
-A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to-source 192.168.56.11
COMMIT
# Completed on Wed May 30 14:02:24 2018
# Generated by iptables-save v1.4.7 on Wed May 30 14:02:24 2018
*filter
:INPUT ACCEPT [436:38213]
:FORWARD ACCEPT [28:2352]
:OUTPUT ACCEPT [312:33589]
COMMIT
# Completed on Wed May 30 14:02:24 2018

在内部服务器测试可以ping通说明正常

到这里就完成了

iptables共享上网的更多相关文章

  1. iptables之路由网关共享上网/端口映射

    linux-A 主机配置eth0即可: [root@linux-A ~]# ifconfig eth0|sed -n '2p' inet addr:192.168.20.3 Bcast:192.168 ...

  2. CentOS内网机器利用iptables共享公网IP上网

    公司有个业务是2B的以及日活不大,所以两台服务器搞定,一个6M EIP.两台机器都是CentOS7系统EIP为 xxx.xxx.xxx.xxx绑在 内网ip为 172.18.30.175的服务器上,内 ...

  3. Linux在Hyper-V中实现与Windows的宽带共享上网

    相信不少读者都会做(或者曾经做过)这么一项活动——把一个Linux系统安装到Windows系统下的虚拟机软件中,然后在Windows这个大环境中对Linux进行学习或者一些实验操作.在进行这么一项活动 ...

  4. Linux双网卡NAT共享上网

    linux双网卡NAT共享上网 术语字汇 私有IP地址(路由不可达地址)是一个被用于本地局域网的IP地址(在互联网中不可见). 公用IP地址(路由可达地址)是一个在互联网中可见的IP地址. IP伪装是 ...

  5. Debian NAT共享上网

    如果Linux主机有两个网卡,比如一个有线.一个无线,当无线连接后,其他机器即可通过有线共享上网,为了方便叙述,假设环境如下: A机器有两块网卡,eth0和ws0,其中ws0为无线网卡,已连接wifi ...

  6. 14、iptables_nat源地址转换(内网共享上网)

    14.1.环境说明: 1.架构图:

  7. Ubuntu杂记——Ubuntu下用虚拟机共享上网

    由于最近把自己电脑环境换成了Ubuntu,但学校的网络是电信的闪讯,大学里用过的人都知道这货有多坑,而且没有Linux客户端,上网都是问题,怪不得国内用Linux的人那么少,特别是高校的学生(让我瞎逼 ...

  8. VMware Workstation虚拟机中的Linux通过NAT模式共享上网配置教程

    VMware Workstation虚拟机中的Linux通过NAT模式共享上网配置教程 在VMware Workstation虚拟机下面,Linux虚机要上网,一般是桥接模式,但我自己的电脑上网的环境 ...

  9. (转)将win7电脑无线网变身WiFi热点,让手机、笔记本共享上网

    将win7电脑变身WiFi热点,让手机.笔记本共享上网 功能:开启windows 7的隐藏功能:虚拟WiFi和SoftAP(即虚拟无线AP),就可以让电脑变成无线路由器,实现共享上网,节省网费和路由器 ...

随机推荐

  1. 万网域名查询API接口

    域名查询 接口地址:http://panda.www.net.cn/cgi-bin/check.cgi 接口采用HTTP,POST,GET协议 参数名称:area_domain 值为标准域名,例:nm ...

  2. 【Geek软技能】程序员,为什么写不好一份简历?

    一份好简历会是一份好工作的开端. 为什么?沧海也会遗珠   简历,是如此重要,它是获得一份满意工作的敲门砖,但不同的简历敲门的声响可不同. 但很多时候简历给人的感觉也似乎微不足道,因为没有人会真正细致 ...

  3. Docker 版本

    1. Docker 版本 长话短说:现在Docker改为基于YY.MM的版本(像Ubuntu),用户可以选择Stable(发布较慢)或者Edge(发布较快)版本. Docker Engine改为Doc ...

  4. 【Vegas原创】SQLServer2008防小人利器:审核/审计功能

    小人见怪不怪,世界上最可怕的就是会技术的小人,防不胜防! sa密码泄露也就算了,关键是人家也可以前台攻击,直接把你弄的没辙! 在诅咒这种小人的同时,除了加强服务器安全管理,密码策略等,SQL Serv ...

  5. 企业级镜像仓库Harbor

    介绍: Habor是由VMWare公司开源的容器镜像仓库.事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面, ...

  6. Atitit.如何文章写好 论文 文章 如何写好论文 技术博客 v4

    Atitit.如何文章写好 论文  文章  如何写好论文 技术博客 1. 原则 2 1.1. 有深度, 有广度 2 1.2. 业务通用性有通用性 尽可能向上抽象一俩层..业务通用性与语言通用性. 2 ...

  7. asp.net mvc 微信支付代码分析(根据沐雪微信平台3.1商城业务来分析)

    开发微信应用,微信支付是永远要面对的.现在的微信支付相对以往已经很稳定,很少出现诡异情况.再加上无数人开发的经验分享,现在开发微信支付已经没什么难度了. 我这次主要是想基于沐雪微信平台的微商城业务来分 ...

  8. 理解REST和RPC

    REST 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 网站开发,完全可以采用软件开发的模式.但是传统上,软件和网络是两个不同的领域,很少有交集:软件开发主要针对单机环境,网络则主要研究 ...

  9. python学习小记

    python HTTP请求示例: # coding=utf-8 # more materials: http://docs.python-requests.org/zh_CN/latest/user/ ...

  10. 【ERROR】no matching function for call to 'std::basic_ifstream<char>::basic_ifstream

    错误记录:QT中使用 no matching function for call to 'std::basic_ifstream<char>::basic_ifstream(QString ...