DNAT
DNAT:目的地址转换。当外网主机访问内网的某台服务器的时候,如果直接暴露服务器的IP于公网,可能会遭受各种各样的攻击,而DNAT的主要作用就是在服务器前面添加一台防火墙。将防火墙的地址公布出去,让外网客户端通过访问防火墙的地址就可以访问到本地服务器。这样就起到了保护服务器的目的;
DNAT(Destination Network Address Translation)是一种网络地址转换技术,它用于将数据包的目标地址修改为目标主机的新地址。DNAT通常用于将来自外部网络的流量映射到内部网络中的不同主机。
打个比方来说,假设你的家里有两台电脑,一台用于工作,另一台用于娱乐。你的网络环境是这样的:你的路由器的公网IP地址是100.100.100.100,内部网络的IP地址是192.168.1.0/24。现在,你希望所有发往100.100.100.100:80的HTTP流量都被转发到192.168.1.2:80(即工作电脑)而不是192.168.1.3(即娱乐电脑)。这时你可以使用DNAT来实现这个需求,将流量的目标地址修改为192.168.1.2:80。这样,所有发往100.100.100.100:80的HTTP请求都会被路由器转发到工作电脑,而不是娱乐电脑。
1、确保dnat主机设置防火墙规则,实现DNAT地址转换
[root@dnat ~]# iptables -t nat -A PREROUTING -d 192.168.149.100 -p tcp –dport 80 -j DNAT –to-destination 192.168.1.48
2、本机上并没有监听80端口
[root@dnat ~]# ss -tnulp |grep 80
3、在client主机上测试
[root@client ~]# curl http://192.168.149.100:80
hello
4、在web主机上查看nginx的日志
[root@web ~]# tail -1000f /var/log/nginx/access.log
192.168.149.101 – – [17/Nov/2021:14:51:51 +0800] “GET / HTTP/1.1” 200 6 “-” “curl/7.29.0” “-“
192.168.149.101 – – [17/Nov/2021:14:51:51 +0800] “GET / HTTP/1.1” 200 6 “-” “curl/7.29.0” “-“
192.168.149.101 – – [17/Nov/2021:14:51:52 +0800] “GET / HTTP/1.1” 200 6 “-” “curl/7.29.0” “-“