配置 ufw 将 http 流量重定向到另一个 IP

配置 ufw 将 http 流量重定向到另一个 IP

我正在尝试将所有 HTTP/HTTPS 流量从一台服务器重定向到另一台服务器(通过 IP)。

我确实使用ufw防火墙。我该如何配置它才能实现这一点?

答案1

(您需要管理员权限,因此请以 root 身份登录或相应地使用 sudo)

一个简单的解决方案是使用iptables

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -m conntrack --ctstate NEW -j DNAT --to foo_serverip:80
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -m conntrack --ctstate NEW -j DNAT --to foo_serverip:443
iptables -t nat -A PREROUTING -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE

将把接口eth0(选项:-i)中通过端口 80 和 443(选项:--dport 80, 443)接收的所有流量重定向到foo_serverip端口 80 或 443 上的 IP 地址。

测试后,你可以使用以下命令保存当前的 iptables 规则

iptables-save > /etc/iptables.rules

并使用

iptables-restore < /etc/iptables.rules

了解了这一点,在启动时恢复规则的选项有很多。我能想到的最简单的方法是编辑你的/etc/rc.local并将行附加/sbin/iptables-restore < /etc/iptables.rules到其中。

我认为,ufw仅靠它自己是无法做到这一切的。

答案2

可以配置联邦快递将端口转发到外部 IP

  1. 编辑/etc/default/ufw以接受转发请求

    default_forward_policy = "accept"

  2. 编辑 /etc/ufw/sysctl.conf 以允许转发

    net.ipv4.ip_forward=1

  3. 编辑/etc/ufw/before.rules,在第一条评论后添加以下内容

    *nat
    :PREROUTING ACCEPT [0:0]
    -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination external_ip:80
    COMMIT  
    

相关内容