Oli*_*ier 6 ubuntu redirect ufw
我正在尝试将所有 HTTP/HTTPS 流量从一台服务器重定向到另一台服务器(通过 IP)。
我确实使用ufw
防火墙。我该如何配置它呢?
Bru*_*ira 10
(为此您需要管理员权限,因此请以 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
Run Code Online (Sandbox Code Playgroud)
会将eth0
在端口 80 和 443(选项:--dport 80、443)上接收到的接口(选项:-i)中的所有流量重定向到foo_serverip
端口 80 或 443 上的IP 地址。
经过测试后,您可以使用以下命令保存当前的 iptables 规则
iptables-save > /etc/iptables.rules
Run Code Online (Sandbox Code Playgroud)
并用
iptables-restore < /etc/iptables.rules
Run Code Online (Sandbox Code Playgroud)
知道了这一点,在启动时恢复规则的选项有多种。我能想到的最简单的方法是编辑您的/etc/rc.local
并将行附加/sbin/iptables-restore < /etc/iptables.rules
到它。
我认为ufw
仅凭其本身无法做到这一点。
可以配置ufw使端口转发到外部 IP
编辑/etc/default/ufw
以接受转发请求
default_forward_policy = "accept"
编辑 /etc/ufw/sysctl.conf 以允许转发
net.ipv4.ip_forward=1
编辑/etc/ufw/before.rules
,在第一条评论后添加以下内容
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p tcp --dport 80 -j DNAT --to-destination external_ip:80
COMMIT
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
18291 次 |
最近记录: |