iptables的转发规则

在  这个文章里,我们配置了mq而且在后面的web界面里验证了已经有消息队列生成。但是细心的朋友应该会发现一个BUG,实验机器是2核4G无外网,但是是怎么登陆web界面的呢?

因为消息队列是一个很重要的一环啊,它就好比食道一样,食物通过食道才能到达胃进行吸收,同理activemq也要好好被保护起来。所以一般来说,mq本体的服务器是不配置外网的,但是会另找一个服务器建立一个转发规则,然后我们去访问“转发规则”服务器。

于是我们选择一台服务器,这个服务器几核几G不重要,就要求带宽要大一点点。

首先我们要打开linux的ipv4转发规则,# vim /etc/sysctl.conf,确定里面net.ipv4.ip_forward = 1,如图:

wKioL1g1gwXxY7SJAABAKZwzR3w610.png

然后,需要#service network restart使其生效。

完事之后才是正式的配置iptables环节。

首先我们要明白我们的目的,

1)mq的web界面端口是8161,我们需要让mq服务器的8161信息可以抵达这个“转发服务器”;

2)而我们在web界面8161的一举一动也要能进入mq服务器;

所以我们需要在linux命令行里先后输入如下内容:

#iptables -A FORWARD -d 转发服务器内网ip/32 -p tcp -m tcp --dport 8161 -j ACCEPT

#iptables -A FORWARD -s 转发服务器内网ip/32 -p tcp -m tcp --dport 8161 -j ACCEPT

#iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8161 -j DNAT --to-destination mq服务器内网ip:8161

#iptables -t nat -A POSTROUTING -p tcp -m tcp --dport 8161 -j SNAT --to-source 转发服务器内网ip

输入之后,#service iptables save#service iptables restart

如果中途手抖了,输入错误,需要清空的话,命令是#iptables -F#iptables -F -t nat

这样在启动mq之后,我们就可以访问这个“转发服务器”的外网ip地址:8161/admin这个网页来查看mq的实时情况了。

这里要注意一下,如果需要抹掉整个iptables规则,不是简单的# iptables -F 那么简单,因为这个命令下去,如果服务器配置了防火墙,而且默认的转发规则都是drop,那么很有可能这台服务器与网络直接断开!

正确的做法是先#iptables -P INPUT ACCEPT,确定#iptables -L的输出是ACCEPT而不是DROP,然后再#iptables -F

wKioL1hYm6iAZngZAABPjukYF_E366.png

更多iptables相关教程见以下内容

CentOS 7.0关闭默认防火墙启用iptables防火墙 

Iptables工作原理使用详解

Ubuntu 14.04 配置iptables防火墙

Linux防火墙iptables详细教程

iptables的备份、恢复及防火墙脚本的基本使用

Iptables工作原理使用详解 

CentOS7下iptables配置过程

Linux下iptables防火墙设置

Linux防火墙iptables详解 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/de7ad46e59a6b1bc642d6c240cbb6b8c.html