用ip a查看自己的路由服务器接口,一个外网接口 wan ,还有内网接口:

我这里是一块网卡,配了一个虚拟ip,eth0: wan口   eth0:1 lan口

注意:要注意顺序,先将接口加到zones,然后再配置snat

配置:

firewall-cmd --permanent --direct --passthrough ipv4 -I FORWARD -i eth0: -j ACCEPT(实现网关功能,这条可以不要)

firewall-cmd --change-interface=eth0 --zone=external --permanent

firewall-cmd --change-interface=eth0: --zone=internal --permanent

配置nat转发:

firewall-cmd --permanent  --direct --passthrough ipv4 -t nat -I POSTROUTING -o eth0 -j SNAT -s 10.0.67.0/ --to 外网ip

配置允许dns,不然dns解析不了

firewall-cmd --zone=internal --add-service=dns --permanent

vim /etc/sysctl.conf

net.ipv4.ip_forward=
systcl -p
firewall-cmd --reload

然后内网机器配置好网关:网关ip为这台网关的lan口ip

这里将网卡接口设为内外区域,interal区域是可信的,只有external区域需要修改,所以这里设置转发规则:将访问879端口的转发到内网机器的10.0.67.151的873端口。

firewall-cmd --add-forward-port=port=:proto=tcp:toaddr=10.0.67.151:toport= --zone=external

端口映射,将内网端口映射到外网:

firewall-cmd --add-forward-port=port=:proto=tcp:toport=   # 将80端口的流量转发至8080
firewall-cmd --add-forward-port=proto=:proto=tcp:toaddr=192.168.1.0. # 将80端口的流量转发至192.168.0.
firewall-cmd --add-forward-port=proto=:proto=tcp:toaddr=192.168.0.1:toport= # 将80端口的流量转发至192.168.0.1的8080端口
可以加端口
firewall-cmd --add-forward-port=port=:interface=eth1:proto=tcp:toaddr=10.0.62.185:toport= --zone=external

firewalld实现网关功能的更多相关文章

  1. 基于 orange(nginx+openresty) + docker 实现微服务 网关功能

    摘要 基于 orange(nginx+openresty) + docker 实现微服务 网关功能 ;以实现 docker 独立容器 来跑 独立语言独立环境 在 同一个授权下 运行相关组合程序..年初 ...

  2. firewalld简介及功能

    1. firewalld简介 firewalld是CentOS7/Red Hat7的一大特性,最大的好处有两个: 第一个支持动态更新,不用重启服务: 第二个就是加入了防火墙的zone概念 firewa ...

  3. API 网关功能

    反向代理和路由 - 大多数项目采用网关的解决方案的最主要的原因.给出了访问后端 API 的所有客户端的单一入口,并隐藏内部服务部署的细节. 负载均衡 - 网关可以将单个传入的请求路由到多个后端目的地. ...

  4. 基于Asterisk的VoIP开发指南——(1)实现基本呼叫功能

    原文:基于Asterisk的VoIP开发指南--(1)实现基本呼叫功能 说明: 1.本文档探讨基于Asterisk如何实现VoIP的一些基本功能,包括基本呼叫功能的方案选取.主叫号码透传.如何编写As ...

  5. Net分布式系统之六:微服务之API网关

    本人建立了个人技术.工作经验的分享微信号,计划后续公众号同步更新分享,比在此更多具体.欢迎有兴趣的同学一起加入相互学习.基于上篇微服务架构分享,今天分享其中一个重要的基础组件“API网关”. 一.引言 ...

  6. 使用 Node.js 搭建一个 API 网关

    原文地址:Building an API Gateway using Node.js 外部客户端访问微服务架构中的服务时,服务端会对认证和传输有一些常见的要求.API 网关提供共享层来处理服务协议之间 ...

  7. 阿里云API网关(6)用户指南(开放 API )

    网关指南: https://help.aliyun.com/document_detail/29487.html?spm=5176.doc48835.6.550.23Oqbl 网关控制台: https ...

  8. 阿里云API网关(1)服务网关的产品概述

    网关指南: https://help.aliyun.com/document_detail/29487.html?spm=5176.doc48835.6.550.23Oqbl 网关控制台: https ...

  9. spring cloud 入门系列六:使用Zuul 实现API网关服务

    通过前面几次的分享,我们了解了微服务架构的几个核心设施,通过这些组件我们可以搭建简单的微服务架构系统.比如通过Spring Cloud Eureka搭建高可用的服务注册中心并实现服务的注册和发现: 通 ...

随机推荐

  1. java的unity单元测试

    import org.junit.After; import org.junit.Before; import org.junit.Test; public class TestUnit { publ ...

  2. Jquery实现下拉列表左右选择

    知识点: jquery  的 click dbclick  事件  appendTo方法 <!DOCTYPE html> <html> <head> <met ...

  3. pythontips(2):hasattr的用法

    class Xiaorui: def __init__(self): self.name = 'xiaorui' def setName(self, name=''): if name.strip() ...

  4. 通过字典传递django orm的filter功能

    class AppRightManageListView(ListView): template_name = 'rightmanage/list_apprightmanage.html' # mod ...

  5. Delphi实现截屏存盘的方法

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  6. Activator常用方法

    1.获取图片 public static Image getImage(String key) {        Image img = getDefault().getImageRegistry() ...

  7. JavaSript模块规范 - AMD规范与CMD规范介绍 (转)

    JavaSript模块化   在了解AMD,CMD规范前,还是需要先来简单地了解下什么是模块化,模块化开发?       模块化是指在解决某一个复杂问题或者一系列的杂糅问题时,依照一种分类的思维把问题 ...

  8. 用字符串连接SQL语句并用EXEC执行时,出现名称 '‘不是有效的标识符

    原文:用字符串连接SQL语句并用EXEC执行时,出现名称 ''不是有效的标识符 用字符串连接SQL语句并用EXEC执行时,出现名称 '这里是字符串连接的一条SQL语句‘不是有效的标识符 才发现,在写e ...

  9. UBI文件系统简介

    转:http://www.embedu.org/Column/Column102.htm 在linux-2.6.27以前,谈到Flash文件系统,大家很多时候多会想到cramfs.jffs2.yaff ...

  10. Hive图形化界面客户端

    通过JDBC连接HiveServer2的图形界面工具,包括:SQuirrel SQL Client.Oracle SQL Developer以及DbVisualizer SQuirrel SQL Cl ...