在我们开始讲iptables端口转发前,我们说下nginx和iptables的区别:
iptables是在内核中转发的,nginx转发属于应用层,iptables是网络层,nginx转发主要是负载均衡,而且比较灵活,比如部分转发,转发到不同的服务器上。iptables只能实现全部转发,按照端口,到达端口的数据全部转发给一台服务器。nginx转发http请求就灵活很多,比如对于静态内容,js,css,图片,可以利用memcache等缓存,直接提供服务,而其他复杂的请求可以转发过应用服务器,而且支持多个服务器。
1.下面我们讲下iptables是如何实现端口转发(使用到的服务器是rocky linux):
首先我们先清空防火墙的nat规则:iptables -t nat -F #如下图,主要清除其他规则的影响,(建议在正式生产环境不要这样做)
2.添加规则(80端口是我在服务器部署的一个web网站的端口)
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80 #执行该命令
#命令参数解释
#-p tcp 指明是tcp协议,也可以指明udp等
#--dport 8080 指明要目标端口
#-j REDIRECT 指明转发
#--to-port 指明转发到的端口
3.测试是否生效(我本机服务器ip是192.168.1.101)
在浏览器输入http://192.168.1.101:8080/ 如下图所示
说明我们的iptables端口转发功能正常生效了
相关文章:Rocky Linux/centos iptables开启80端口的日志
非特殊说明,本文版权归HPay所有,转载请注明出处.
本文类型: Java工具