configurationufw将httpstream量redirect到另一个IP

我试图将所有HTTP / HTTPSstream量从一台服务器redirect到另一台服务器(通过IP)。

我使用ufw防火墙。 我怎样才能configuration它呢?

(您将需要pipe理员权限,因此以root身份login或相应地使用sudo)

一个简单的解决scheme是使用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 

会将在端口80和443(选项:–dport 80,443)上接收到的接口eth0 (选项:-i)中的所有stream量redirect到端口80或443上的foo_serverip IP地址。

经过testing,你可以保存你当前的iptables规则

 iptables-save > /etc/iptables.rules 

并用它恢复

 iptables-restore < /etc/iptables.rules 

知道这一点,在启动时恢复规则的选项是多个。 我能想到的最简单的方法是编辑你的/etc/rc.local然后在/sbin/iptables-restore < /etc/iptables.rulesjoin这行。

我不认为ufw可以自己做任何事情。

可以configurationufw使端口转发到外部IP

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

    default_forward_policy = "accept"

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

    net.ipv4.ip_forward=1

  3. 编辑/etc/ufw/before.rules ,在第一条评论之后添加ff

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