DNAT转发实例
1、首先在 A 安装nginx 服务,具体安装方法:、、、启动nginx
2、我的理嗔溲糨俩台服务器不是同一个运营商的都可以访问外网和内网不通。为了模拟内网互通我建了ipip隧道,大家有内网互通的俩个服棣蚺幌盗务器可以省去这一步骤。#公共部分echo 1 > /proc/sys/net/ipv4/ip_forwardiptables -t nat -I POSTROUTING -j MASQUERADEmodprobe ipipmodprobe ip_gre#单独部分 服务器A 执行ip tunnel add tun_test mode ipip local 服务器A内网 remote 服务器b外网ip link set tun_test upip addr add 192.168.1.1 peer 192.168.55.2 dev tun_testroute 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 upip addr add 192.168.55.2 peer 192.168.1.1 dev tun_testroute add -net 192.168.1.0/24 dev tun_test服务器Aping服务器的隧道内、网,互通,证明隧道建立成功。
3、在服务器B上添加DNAT转发首先开通端口8099iptables -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端口的请求的来源才是Biptables -t nat -A POSTROUTING -p tcp -d 192.168.1.1 --dport 8090 -j SNAT --to-source 192.168.55.2
4、通过访问服务器B的8099端口,就可以访问到服务器A的nginx服务