`

centos 添加DNAT SNAT

 
阅读更多
外网服务器IP 101.168.200.22 开放端口8310
内网服务器IP 192.168.55.72  开放端口8310

使访问外网101.168.200.22:8310的请求转发到内网192.168.55.72:8310

前题条件 打开服务器的端口转发
参考文章 sysctl命令及改变net.ipv4.ip_forward = 1方法
a临时打开
sysctl -w net.ipv4.ip_forward=1

echo 1 > /proc/sys/net/ipv4/ip_forward
b永久性打开
vi /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p

1、方式一
在centos服务器101.168.200.22上配置Iptable的DNAT和SNAT就可以完成转发
或者
若101.168.200.22为外网网关,在网关上配置端口映射,经过中间服务器192.168.55.1如
101.168.200.22:8310=======>192.168.55.1:8310==============>192.168.55.72:8310
则在192.168.55.1上作DNAT或SNAT,或者使用反向代理nginx


 #数据包中的目的 IP (路由器上的公网 IP) 将修改为内网 IP
# 请求路径101.168.200.22:8310============>192.168.55.72:8310
 iptables -t nat -A PREROUTING -d 101.168.200.22 -p tcp --dport 8310  -j DNAT --to 192.168.55.72:8310
 
 #SNAT:修改数据包的源ip(ip地址转换)
# 响应路径192.168.55.72:8310 ============>101.168.200.22:8310
 iptables -t nat -A POSTROUTING -d 192.168.55.72 -p tcp --dport 8310  -j SNAT --to 101.168.200.22


2、方式二
101.168.200.22为网关,开放的101.168.200.22:8310端口,直接将该端口转发给192.168.55.72:8310
在101.168.200.22上配置
sysctl -w net.ipv4.ip_forward=1
iptables -I FORWARD  -p tcp  -j ACCEPT
iptables -I INPUT-p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT
iptables -t nat -I PREROUTING -p tcp --dport 1521 -j DNAT --to 192.168.200.207
iptables -t nat -I POSTROUTING  -p tcp  --dport 1521 -j MASQUERADE 
iptables -t nat -I PREROUTING -p tcp --dport 8310 -j DNAT --to 101.168.200.22
iptables -t nat -I POSTROUTING  -p tcp  --dport 8310 -j MASQUERADE 


作成临时开放端口的脚本
#!/bin/sh

echo  "please input oracle server ip"
read  -p ":" ip
sysctl -w net.ipv4.ip_forward=1
iptables -I FORWARD  -p tcp  -j ACCEPT
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT
iptables -t nat -I PREROUTING -p tcp --dport 1521 -j DNAT --to $ip
iptables -t nat -I POSTROUTING  -p tcp  --dport 1521 -j MASQUERADE
echo "================================================================"
echo "connection config success"
echo "please do not config iptables before the system status recover!"
echo "waiting  to recover system status"
echo "================================================================"
echo "if your connection complete please input ok"
read -p ":" ok
sysctl -w net.ipv4.ip_forward=0
service iptables reload
分享到:
评论

相关推荐

    CentOS7中将Mysql添加为系统服务 - shangyingbin - 博客园.pdf

    这篇博客文章“CentOS7中将Mysql添加为系统服务”介绍了如何手动将自安装的MySQL服务添加到`systemd`中,以便进行自动化管理和维护。 首先,如果你是通过源码包自行安装的MySQL,那么默认情况下,MySQL不会自动添加...

    Linux(Centos)批量添加连续账户

    Linux (Centos) 批量添加连续账户的shell脚本,可以使用

    CentOS下添加用户并且让用户获得root权限

    CentOS下添加用户并且让用户获得root权限。添加具有root用户权限的用户。

    Centos7添加静态路由的方法

    本文将深入讲解如何在CentOS 7系统中添加、查看和删除静态路由,并且会介绍如何设置这些路由使其在系统重启后依然有效。 **一、查看和设定路由** 在CentOS 7中,可以使用`ip route`命令来查看和管理路由表。下面...

    centos7 添加启动项

    centos7 添加开机界面启动项,在多系统安装时找不到windows 系统时候用

    centos8下载资源

    centos8下载centos8下载centos8下载centos8下载centos8下载centos8下载centos8下载centos8下载centos8下载centos8下载centos8下载centos8下载centos8下载centos8下载centos8下载centos8下载centos8下载centos8下载...

    CentOS Linux 8和CentOS Stream发行公告

    我们想宣布CentOS Linux 8和 所有架构上的新CentOS Stream。 ---------- CentOS Linux 8 这是CentOS Linux 8的第一个版本,版本标记为 8.0-1905,来自Red Hat发布的资源,通过 git.centos.org 首先,请仔细阅读发行...

    Centos6与Centos7的服务注册及部署

    CentOS(Community ENTerprise Operating System)是一个基于Red Hat Enterprise Linux构建的免费企业级操作系统。它有两个版本,CentOS6和CentOS7,在服务注册和部署方面存在一些区别。 在CentOS6中,服务的注册和...

    Centos7.6镜像文件:CentOS-7-x86-64-DVD-1810.iso

    标题中提到的“Centos7.6镜像文件:CentOS-7-x86_64-DVD-1810.iso”,首先需要明确几个关键词。CentOS 是一个企业级 Linux 发行版,它是基于 Red Hat Enterprise Linux (RHEL) 源代码编译而成的。CentOS 7.6 指的是 ...

    CentOS 8 系列iso镜像

    ### CentOS 8 系列 iso 镜像详解 #### 一、CentOS 8 概述 CentOS 8 是一个基于 Linux 的操作系统,它继承了 Red Hat Enterprise Linux (RHEL) 8 的核心特性,并针对开源社区进行了优化。CentOS 8 旨在为用户提供一...

    WSL CentOS 7.9-2111(win11 WSL 上安装 CentOS 7 系统)

    "WSL CentOS 7.9-2111(win11 WSL 上安装 CentOS 7 系统)" 这个标题指的是在Windows 11操作系统中,利用Windows Subsystem for Linux (WSL) 技术安装CentOS 7.9-2111版本的过程。WSL是微软为Windows提供的一种轻量...

    xmanager连接CENTOS7

    xmanager连接CENTOS7 在新版本的7.x系列的操作系统中,xmanager通过xdmp连接LINUX相比以往发生了些变化。这篇文档详细的说明在新环境下连接的设置过程。 xmanager连接CENTOS7的知识点可以总结为以下几个方面: 1....

    loveincode#notes#centos添加ftp用户并禁止外切目录1

    2、建用户,命令行状态下,在root用户下: 3、更改用户相应的权限设置: 4、限制用户只能访问/home/ftpuser,不能访问其他路径 5、重启服务器 6

    centos6 centos7禁止u盘等大容量设备 拉黑

    本文将详细介绍如何在CentOS 6和CentOS 7操作系统中禁用U盘等大容量设备的访问,确保企业信息安全。 在CentOS 6系统中,禁止U盘等存储设备的步骤如下: 1. 打开终端,使用`vi`编辑器打开`/etc/rc.local`文件,这是...

    centos6+centos7+centos8-升级openssh到9.8p1

    centos6+centos7+centos8-升级openssh到9.8p1

    EasyBCD配置CentOS教程

    7. **重启验证**:重新启动计算机,在启动菜单中应该能看到刚刚添加的“CentOS6.2”启动项,选择它即可进入CentOS的启动流程。 #### 四、注意事项 - **分区编号**:在配置过程中,需要注意内核和初始化磁盘映像的...

    centos5 centos6 epel.rpm包下载

    在Linux世界中,CentOS是一种广泛使用的开源操作系统,它基于Red Hat Enterprise Linux (RHEL)。CentOS 5和CentOS 6是两个较旧但仍然受到支持的版本,它们在许多服务器上运行。EPEL(Extra Packages for Enterprise ...

    CentOS7.3 php添加mysql扩展

    centos7.3 手动添加mysqli扩展

    centos5.8安装教程

    CentOS 5.8 安装教程 CentOS 5.8 是一个流行的 Linux 操作系统,本文将指导用户如何安装 CentOS 5.8。 知识点 1: 准备 CentOS 的 ISO 文件 在安装 CentOS 5.8 之前,需要准备好 CentOS 的 ISO 文件。用户可以从 ...

    Centos7升级Centos8.zip

    由于CentOS 7默认的Yum仓库不包含CentOS 8的更新,因此需要手动添加。打开终端并输入以下命令: ```bash echo "[centos8-stream] name=CentOS-8 Stream - \$basearch baseurl=...

Global site tag (gtag.js) - Google Analytics