iis服务器助手广告
返回顶部
首页 > 资讯 > 服务器 >SNAT与DNAT
  • 557
分享到

SNAT与DNAT

服务器linux网络 2023-08-31 11:08:50 557人浏览 安东尼
摘要

一、SNAT和DNAT简介 SNAT:局域网共享一个公网IP接入lnternel,好处如下 保护内网用户安全,因为公网地址总有一些人恶意扫描,而内网地址在公网没有路由所以无法被扫描,能被扫描的只有防火墙这一台,这样就减少了被攻击的可能。Ip

一、SNAT和DNAT简介

SNAT:局域网共享一个公网IP接入lnternel,好处如下

  1. 保护内网用户安全,因为公网地址总有一些人恶意扫描,而内网地址在公网没有路由所以无法被扫描,能被扫描的只有防火墙这一台,这样就减少了被攻击的可能。
  2. Ipv4地址匮乏,很多公司只有一个ipv4地址,但是却有几百个用户需要上网,这个时候就需要使用SNAT。
  3. 省钱,公网地址付费,使用SNAT只需要一个公网ip就可以满足几百人同时上网。

DNAT:向internel发布内网服务器,在内网中有服务器,如果想让公网用户访问有有两种方法

  1.       1. 配置双网卡,一网卡对内,一网卡对外;一般是高访问量的WEB服务器,为了避免占用网关            的流量才这样做,使用不是广泛。
  2.       2. 内网web服务器,或是ftp服务器,为了用户在公网也可以访问,有不想买公网ip地址,采用            DNAT方案。

二、SNAT原理及应用

1、概述

SNAT典型应用环境:

局域网主机共享单个公网IP地址接入Internet。(私有IP不能在Internet中正常路由)

SNAT策略的原理:

  • 源地址转换,Source Network Address Translation
  • 修改数据包的源地址

SNAT原地址转换过程:

  • 数据包从内网发送到公网时,SNAT会把数据包的源地址由私网IP转换成公网IP。
  • 当相应的数据包从公网发送到内网时,会把数据包的目的地址由公网IP转换为私网IP。
  • 当内网有多台主机访问外网时,SNAT在转换时会自动分配端口,不同内网主机会通过端口号进行区分。

2、SNAT策略的配置

SNAT转换前提条件

  1. 局域网各主机已正确设置IP地址、子网掩码、默认网关地址
  2. linux网关开启IP路由转发

linux网关开启IP路由转发

1)临时开启:

echo 1 > /proc/sys/net/ipv4/ip_forward或sysctl -w net.ipv4.ip_forward=1

2)永久开启:

vim /etc/sysctl.confnet.ipv4.ip_forward=1    #将此行写入配置文件 ​sysctl -p     #读取修改后的配置

SNAT转换1:固定的公网IP地址

#配置SNAT策略,实现SNAT功能,将所有192.168.72.0这个网段内的ip的源地址改为12.0.0.2iptables -t nat -A POSTROUTING -s 192.168.72.0/24 -o ens33 -j SNAT --to 12.0.0.2      或iptables -t nat -A POSTROUTING -s 192.168.72.0/24 -o ens33 -j SNAT --to-source 12.0.0.2-12.0.0.10 ​#-A POSTROUTING  指定POSTROUTING链#-s 192.168.72.0/24  源地址所处的网段(内网IP)#-o ens33  出站网卡#-j SNAT#--to 12.0.0.2   外网IP#--to-source 12.0.0.2-12.0.0.10   外网地址池

SNAT转换2:非固定的公网IP地址(共享动态IP地址)

iptables -t nat -A POSTROUTING -s 192.168.72.0/24 -o ens33 -j MASQUERADE

三、DNAT原理及应用

1、概述

服务器一般不会暴露在公网中,极易被人攻击。服务器一般使用内网IP,所以访问服务器时需要进行目标地址转换。

DNAT策略的应用环境

在Internet中发布位于企业局域网内的服务器

DNAT策略的原理 

  • 目标地址转换,Destination Network Address Translation
  • 修改数据包的目标地址

DNAT源地址转换过程

  • 数据包从外网发送到内网时,DNAT会把数据包的目标地址由公网IP转换成私网IP
  • 当相应的数据包从内网发送到公网时,会把数据包的源地址由私网IP转换为公网IP

2、DNAT策略的配置

DNAT转换前提条件

  1. 局域网的服务器能够访问Internet
  2. 网关的外网地址有正确的DNS解析记录
  3. Linux网关开启IP路由转发
vim /etc/sysctl.confnet.ipv4.ip_forward=1    #将此行写入配置文件 ​sysctl -p     #读取修改后的配置

DNAT转换1:发布内网的Web服务

#把从ens33进来的要访问web服务的数据包目的地址转换为 192.168.72.10iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.254 -p tcp --dport 80 -j DNAT --to 192.168.72.102或iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.254 -p tcp --dport 80 -j DNAT --to 192.168.72.10-192.168.72.20 ​#-A PREROUTING        //修改目标地址的链           #-i ens33             //入站网卡#-d 12.0.0.254        //数据包的目的地址#-p tcp --dport 80    //数据包的目的端口#-j DNAT              //使用DNAT功能#--to 192.168.109.11  //内网服务器IP

DNAT转换2:发布时修改目标端口

#将公网的IP和端口,转换成内网的IP和端口#发布局域网内部的web服务器,外网主机需使用8080端口进行连接#将12.0.0.254:8080 转换成 192.168.72.10:80iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.254 -p tcp --dport 8080 -j DNAT --to 192.168.72.10:80 ​#发布局域网内部的Openssh服务器, 外网主机需使用250端口进行连接#将12.0.0.254:250 转换成 192.168.72.10:22iptables-t nat -A PREROUTING -i ens33 -d 12.0.0.254 -p tcp --dport 250 -j DNAT --to 192.168.72.10:22

四、总结

SNAT源地址转换过程(针对客户端):

  • 数据包从内网发送到公网时,SNAT会把数据包的源地址由私网IP转换成公网IP。
  • 当相应的数据包从公网发送到内网时,会把数据包的目的地址由公网IP转换为私网IP。
  • 当内网有多台主机访问外网时,SNAT在转换时会自动分配端口,不同内网主机会通过端口号进行区分。

DNAT源地址转换过程(针对服务器):

  • 数据包从外网发送到内网时,DNAT会把数据包的目标地址由公网IP转换成私网IP。
  • 当相应的数据包从内网发送到公网时,会把数据包的源地址由私网IP转换为公网IP。客户机想
  • 访问服务器时,访问的是网关地址,由网关去找服务器的内网地址。
  • 如果多台服务器使用同一个网关,那么通过不同的端口号来对应不同的服务器。

来源地址:https://blog.csdn.net/TTSuzuka/article/details/127654822

--结束END--

本文标题: SNAT与DNAT

本文链接: https://www.lsjlt.com/news/385491.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SNAT与DNAT
    一、SNAT和DNAT简介 SNAT:局域网共享一个公网IP接入lnternel,好处如下 保护内网用户安全,因为公网地址总有一些人恶意扫描,而内网地址在公网没有路由所以无法被扫描,能被扫描的只有防火墙这一台,这样就减少了被攻击的可能。Ip...
    99+
    2023-08-31
    服务器 linux 网络
  • Linux下iptables的DNAT与SNAT的设置方法
    本篇内容介绍了“Linux下iptables的DNAT与SNAT的设置方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!DNAT(Desti...
    99+
    2023-06-12
  • iptables中SNAT和MASQUERADE之间的区别是什么
    本篇内容主要讲解“iptables中SNAT和MASQUERADE之间的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“iptables中SNAT和MASQUERADE之间的区别是什么”...
    99+
    2023-06-12
  • jsp与js与jquery的区别
    jsp与js与jquery的区别:1、js是javascript文件的文件后缀。2、jquery 是一个函数库,是基于javascript的。3、jsp是jsp网页文件的后缀。js是javascript文件的文件后缀,其实就像文本文档a.t...
    99+
    2024-04-02
  • FFmpeg安装与配置(windows与mac)
    FFmpeg命令行安装 使用如下命令进行FFmpeg: sudo apt-get install ffmpeg FFmpeg源码安装 FFmpeg源码获取 使用如下命令获取ffmpeg的源码: git clone  ht...
    99+
    2023-09-02
    ffmpeg
  • html与html5的关系与区别
    html5 是 html 的最新版本,于 2014 年发布,继承并扩展了 html 的语法和结构,增加了许多新功能,提供更丰富的网络体验。它的主要区别包括:引入了新元素和属性,支持多媒体...
    99+
    2024-04-21
    css 地理位置 sessionstorage
  • Socket与ServerSocket类构造方法与API
    目录Socket类概述:构造方法:API:ServerSocket类概述:构造方法:API:Socket类 概述: socket可以使一个应用从网络中读取和写入数据,不同计算机上的两...
    99+
    2024-04-02
  • java 中Comparable与Comparator详解与比较
    java 中Comparable与Comparator详解今天查看TreeMap的源码,发现其键必须是实现Comparable或者Comparator的接口时产生了一些兴趣,比如在TreeMap中的put方法分别对Comparable和Co...
    99+
    2023-05-31
    java comparable comparator
  • 【JAVA】JAVA与C++的区别与联系
    个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 文章目录 前言两方介绍C++JAVA 不同==|Java不支持指针、模板、指针重载、联合等|====|支持析构函数|====|条件编译和包含|...
    99+
    2023-08-16
    java c++ 开发语言
  • JAVA与SQL 中的null与NULL解析
    目录一、前言看下面我做的一个简单的测试:二、Java中的null引发这个异常的情况有:2.1 大小写2.2 默认的初值2.3 类型2.4 对null的检查== 与 !=instanc...
    99+
    2024-04-02
  • python与Excel
    1.1 什么是python?Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。被称为胶水语言,Python应用场景广泛,比如WEB开发、网络编程、爬虫、云计算、人工智能、自动化运维、数据分析、游戏开发等……好像有点无所不能...
    99+
    2023-01-31
    python Excel
  • tornado6与python3.7
    __auth__ = "aleimu" __doc__ = "学习tornado6.0+ 版本与python3.7+" import time import asyncio import tornado.gen import torn...
    99+
    2023-01-31
  • BeautifulSoup与aiohtt
      香港电台的节目素质都比较不错,其中有个《中华五千年》的节目是以情景剧与旁白的形式来展示历史故事,由传说时代一直到民国,1983年首播至2000年,非常长寿的一个节目。网上能找到版本声音非常模糊,不过在其《网上中华五千年》的网站上可以在...
    99+
    2023-01-31
    BeautifulSoup aiohtt
  • raw_input() 与 input(
    raw_input() 与 input() __ Python这两个均是 python 的内建函数,通过读取控制台的输入与用户实现交互。但他们的功能不尽相同。举两个小例子。 1 >>> raw_input_A = raw_...
    99+
    2023-01-31
    raw_input input
  • p0p3与IMAP
    pop3:邮局协议,用户从远程邮箱下载邮件 特点:邮件下载 IMAP:internet 邮件访问协议,用户远程管理自己的邮箱 特点: 1,下载邮件的结构信息和邮件的子集 2,同时对多个远程邮箱的访问 3,多个客户机同时访问同一个邮箱 4,多...
    99+
    2023-01-31
    IMAP
  • Python 与 SQLite
    Lite:清淡的, 低盐的轻,清淡:相比其他事物内容较少,重量较轻或卡路里含量较低1) 创建数据库:sqlite3 test.db--> SQLite version 3.8.2 2013-12-06 14:53:30create t...
    99+
    2023-01-31
    Python SQLite
  • JSONArray与JSONObject
    目录 1. 需求2. 测试3. 实现需求4. 相关操作1. 将JSONObject装入JSONArray2. JSONArray与String的相互转换3. 注意:toString与JSONObject.toJSONString的区...
    99+
    2023-08-16
    json java restful
  • AJAX 与 J2EE
    AJAX 与 J2EE: Detail:AJAX 与 J2EE[@more@]...
    99+
    2023-06-03
  • RF与Python
    Many keywords, such as Evaluate, Run Keyword If and Should Be True, accept an expression that is evaluated in Python. T...
    99+
    2023-01-31
    RF Python
  • python3.5.2与python2.
        今天准备了一台centos7的虚拟机,想拿来当python小霸王学习机。系统自带python版本2.7.5,经过我认真琢磨,要学咱就学新版本小py,所以果断安装了一个python3.5.2    下载解压,进入目录,因为怕直接安装完...
    99+
    2023-01-31
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作