服务器架构:

系统:

Ubuntu 16.04 x64 使用自带防火墙 UFW

操作:

在有公网的服务器上,进行防火墙基本操作开启自己所需业务的端口,并按下方设置启动NAT;

其他内网机器修改网关或者路由表,即可使用NAT共享网络

UFW基本操作:

  1. 查看当前状态和防火墙规则

    ufw status    #Status: active 服务激活;如果没有配置规则,将不显示防火墙规则
  2. 设置默认动作
    ufw default allow/deny    #对未配置的端口执行默认允许/拒绝动作
  3. 添加允许/拒绝端口的规则
    ufw allow /tcp    #允许  tcp封包;还可以换成 /udp,表示允许22端口 udp封包
    ufw deny        #拒绝 端口 (udp+tcp)
  4. 删除允许/拒绝端口的规则
    ufw delete allow/deny     #删除规则同添加一致 添加 /tcp就删除 /tcp,不能删除 
  5. 启动/关闭/重载防火墙
    通过ssh远程连接建议先设置 22/tcp允许规则再启动防火墙服务
    ufw enable/disable/reload

防火墙配置转发

  1. 首先开启系统的IP转发

    net.ipv4.ip_forward =     #增加或修改该字段,值设为1
    /etc/sysctl.conf
  2. 生效
    sysctl -p
  3. 设置防火墙的转发(修改俩个配置文件)
    DEFAULT_FORWARD_POLICY="ACCEPT"    #该值设为ACCEPT
    /etc/default/ufw
    # 注意默认规则内容都包含在 *filter...COMMIT 内
    # 添加如下内容时注意 *nat...COMMIT 不能放在 *filter...COMMIT 内
    # 172.17.0.0/16是私网网段
    *nat
    :PREROUTING - [0:0]
    :POSTROUTING - [0:0]
    -A POSTROUTING -s 172.17.0.0/16 -o eth0 -j MASQUERADE
    COMMIT
    /etc/ufw/before.rules
  4. 重启防火墙,成功

设置网关/路由

  1. 修改网关

    route add default gw 172.17.0.1    #IP为拥有公网服务器的私网地址

    以上为临时修改生效且基本通用,永久修改请百度,博主发现不同系统配置文件修改方法差异太大

    可以ping公网了!

  2. 修改路由表(使用云产品VPC专有网络)

    阿里云进入产品,专有网络,左侧选择路由表,点击添加路由条目


    添加下一跳,选择具有公网IP的ECS

    配置完成!

意义:

阿里云买ecs不配置公网IP可以省很多钱!

内网集群给每一个配公网ip太浪费,公网偶尔用一下(第三方软件脚本升级)

内网通信延迟低,速率快(网卡速率)

作者:saopanda 地址 https://www.cnblogs.com/saopanda/p/10906421.html

转载请附原链接,谢谢!

Ubuntu 防火墙IP转发做NAT,内网集群共享网络(简单)的更多相关文章

  1. 内网集群准同步shell脚本

    在公司的内网中配置集群同步,可能是代理问题,ntpd和chrony都没有用,所以只好写shell脚本解决 前提条件集群中各台机器已经配置好了免密登录 一.免密登录配置 1. 用 root 用户登录.每 ...

  2. 通过rinetd实现端口转发来访问内网的服务

    通过rinetd实现端口转发来访问内网的服务 一.   问题描述 通过外网来访问内网的服务 二.   环境要求 需要有一台能够外网访问的机器做端口映射,通过数据包转发来实现外部访问阿里云的内网服务 三 ...

  3. Apache 2.4.7在CentOS6.4中安装配置反向代理解决单外网IP对应多个内网主机的方法实践

    欢迎转载,转载时请保留全文及出处. Apache 2.4.7在CentOS6.4中安装配置反向代理解决单外网IP对应多个内网主机的方法实践 Apache安装 下载源程序(http://httpd.ap ...

  4. Linux通过端口转发来访问内网服务(端口转发访问阿里云Redis数据库等服务)

    # 安装rinetd wget http://www.boutell.com/rinetd/http/rinetd.tar.gz&&tar -xvf rinetd.tar.gz& ...

  5. 推断给定的IP地址是否是内网IP

    /** * 推断给定的IP地址是否是内网IP * * @author GaoHuanJie */ public class Test{ public boolean isInnerIP(String ...

  6. ubuntu ceph集群安装以及简单使用

    ubuntu ceph安装以及使用 1.安装环境 本文主要根据官方文档使用ubuntu14.04安装ceph集群,并且简单熟悉其基本操作.整个集群包括一个admin节点(admin node,主机名为 ...

  7. Ubuntu 12.04下Hadoop 2.2.0 集群搭建(原创)

    现在大家可以跟我一起来实现Ubuntu 12.04下Hadoop 2.2.0 集群搭建,在这里我使用了两台服务器,一台作为master即namenode主机,另一台作为slave即datanode主机 ...

  8. Hive环境的安装部署(完美安装)(集群内或集群外都适用)(含卸载自带mysql安装指定版本)

    Hive环境的安装部署(完美安装)(集群内或集群外都适用)(含卸载自带mysql安装指定版本) Hive 安装依赖 Hadoop 的集群,它是运行在 Hadoop 的基础上. 所以在安装 Hive 之 ...

  9. Linux 通过rinetd端口转发来访问内网服务

    可以通过端口映射的方式,来通过具有公网的云服务器 ECS 访问用户名下其它未购买公网带宽的内网 ECS 上的服务.端口映射的方案有很多,比如 Linux 下的 SSH Tunnel.rinetd,Wi ...

随机推荐

  1. php 数字小写转为大写的函数

    PHP把阿拉伯数字转换成中文,需要定义一个转换的算法: <?php /将数字转换为汉字,比如1210转换为一千二百一十 $num = "842105580";//九位数 fu ...

  2. hdu-5861 Road(并查集)

    题目链接: Road Time Limit: 12000/6000 MS (Java/Others)     Memory Limit: 65536/65536 K (Java/Others) Pro ...

  3. 【leetcode刷题笔记】Integer to Roman

    Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...

  4. 【leetcode刷题笔记】Reverse Linked List II

    Reverse a linked list from position m to n. Do it in-place and in one-pass. For example:Given 1-> ...

  5. ACM学习历程—BZOJ 2115 Xor(dfs && 独立回路 && xor高斯消元)

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2115 题目大意是求一条从1到n的路径,使得路径xor和最大. 可以发现想枚举1到n的所有路 ...

  6. 【转】 Pro Android学习笔记(六一):Preferences(5):组织Preference

    目录(?)[-] PreferenceCategory Child Preference PreferenceCategory 如果有多个preference,我们希望能在他们组织在一起.有两种方式, ...

  7. jQuery对象和DOM对象的互换

    Dom 对象:指的是普通的 JavaScript 对象 jQuery对象:是包装 Dom 对象后产生的对象. 一:JQuery 对象和 Dom 对象 在使用 JQuery 过程中,我们一般(也是绝大多 ...

  8. 进程vs线程

    内存中的内容不同 进程->{ 进程是系统分配资源的最基本单位,线程是进程的一部分, 进程中存储文件和网络句柄 } 线程->{ 栈(每个线程都有一个栈空间) pc(当前或下一条指令的地址,指 ...

  9. 问题:C# Dictionary嵌套使用;结果:嵌套Dictionary添加 , C#2.0泛型详细介绍

    Dictionary<int, Dictionary<string, string>> dict1 = new Dictionary<int, Dictionary< ...

  10. df查看分区使用情况

    Linux df命令用于显示目前在Linux系统上的文件系统的磁盘使用情况统计.语法 df [选项]... [FILE]...     -a, --all 包含所有的具有 0 Blocks 的文件系统 ...