使用Iptables搭建开发环境

使用Iptables搭建开发环境

我正在尝试建立一个开发环境,我的所有应用程序都分为两部分。 ReactJS 前端的访问地址为http://127.0.0.1:3000,Ruby 后端的访问地址为http://127.0.0.1:3001

我将这两行添加到我的/etc/hosts

127.0.0.2     myapp.dev
127.0.0.3     api.myapp.dev

这样,当我发出类似 的浏览器请求时http://myapp.dev,我需要将其重定向到http://127.0.0.1:3000。当我的前端使用 AJAX 调用 API 时http://api.myapp.dev,我需要将此请求重定向到http://127.0.0.1:3001.

我需要路由所有来自127.0.0.2to 的请求以及来自to 的127.0.0.1:3000所有请求。127.0.0.3127.0.0.2:3001

我知道这可以通过设置反向代理来完成。但出于多种原因,我想知道是否可以使用 IPTABLES 来做到这一点。如果是这样,该怎么做。

提前致谢!

答案1

要将访问重定向到 from 127.0.0.2:80to 127.0.0.1:3000,您可以执行以下操作:

# iptables -t nat -A PREROUTING -p tcp -d 127.0.0.2 \
  --dport 80 -j REDIRECT --to-port 3000
# iptables -t nat -A OUTPUT -p tcp -d 127.0.0.2 \
  --dport 80 -j REDIRECT --to-port 3000

第一条规则(链中PREROUTING)将匹配来自本地主机以外的其他地方的流量。第二条规则(链中OUTPUT)将匹配来自本地主机的流量。

请注意,iptables 链中的规则会被处理为了,因此,如果您的防火墙中存在在这些规则之前匹配的现有规则,则结果可能不是您所期望的。

有关详细信息,请阅读有关REDIRECT目标的信息iptables 扩展手册页。

相关内容