在Internet中发布位于局域网内的服务器(DNAT)

发布时间 2023-04-01 13:18:44作者: 法螺話

DNAT策略的原理
    目标地址转换,Destination Network Address Translation
    修改数据包的目标IP地址

在web服务器上进行的配置
    局域网的Web服务器正确设置了IP地址/子网掩码
    局域网的Web服务器正确设置了默认网关地址

在linux网关服务器上进行的配置
    推荐实现步骤
    1. 确认已开启网关的路由转发功能
    2. 添加使用DNAT策略的防火墙规则

(注:windows真实机器和linux防火墙的WAN口在同一个网段,所有网卡均为桥接模式)

DNAT 在PREROUTING(城市入口)进行修改ip包里的目的ip地址

linux网关服务器的DNAT功能开启     vim snat_dnat.sh

#!/bin/bash

#清除filter和nat表里的防火墙规则
iptables  -t filter  -F
iptables  -t nat  -F

#开启路由功能
echo 1 >/proc/sys/net/ipv4/ip_forward

#添加SNAT策略
iptables  -t  nat  -A POSTROUTING  -s  192.168.40.0/24 -o ens36 -j SNAT --to-source 192.168.1.123

#添加DNAT策略
iptables -t nat  -A PREROUTING  -d 192.168.1.123  -i ens36  -j DNAT --to-destination 192.168.40.22

bash snat_dnat.sh

在web服务器上操作,安装nginx并检查nginx服务是否运行,是否有防火墙开启
ps aux|grep nginx

netstat -anplut|grep nginx

iptables -L

DNAT在转发数据的时候,也是可以修改传输层的源端口和目的端口
如果在iptables规则里没有指定,就不进行修改

在windows浏览器访问防火墙wan口ip地址来访问局域网里的nginx服务