DNAT转发实例

2025-11-26 08:14:28

1、首先在 A 安装nginx 服务,具体安装方法:、、、

启动nginx

DNAT转发实例

2、我的俩台服务器不是同一个运营商的都可以访问外网和内网不通。为了模拟内网互通我建了ipip隧道,大家有内网互通的俩个服务器可以省去这一步骤。

#公共部分

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -I POSTROUTING -j MASQUERADE

modprobe ipip

modprobe ip_gre

#单独部分 服务器A 执行

ip tunnel add tun_test mode ipip local 服务器A内网 remote 服务器b外网

ip link set tun_test up

ip addr add  192.168.1.1 peer 192.168.55.2 dev tun_test

route add -net 192.168.55.0/24 dev tun_test

服务器B 执行

ip tunnel add tun_test mode ipip local 服务器B内网 remote 服务器A外网

ip link set tun_test up

ip addr add  192.168.55.2 peer 192.168.1.1 dev tun_test

route add -net 192.168.1.0/24 dev tun_test

服务器Aping服务器的隧道内、网,互通,证明隧道建立成功。

DNAT转发实例

3、在服务器B上添加DNAT转发

首先开通端口8099

iptables -A INPUT -ptcp --dport  8099 -j ACCEPT

开始添加转发规则到iptables规则表中,首先将 B公网中8099的请求转发到 A的8090端口(nginx服务的端口),即 B公网:8099=>192.168.1.1:8090,执行:

iptables -t nat -A PREROUTING -p tcp --dport 8099 -j DNAT --to-destination 192.168.1.1:8090

接着还需要为转发请求指明请求来源,需要指定只有转发到A的8090端口的请求的来源才是B

iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.1 --dport 8090 -j SNAT --to-source 192.168.55.2

DNAT转发实例

4、通过访问服务器B的8099端口,就可以访问到服务器A的nginx服务

DNAT转发实例

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢