iptables PREROUTING通过清漆选定的IPredirect端口80

我已经在我的服务器上安装了清漆,并希望testingconfiguration而不影响正常使用。 我有端口80上的apache监听和端口8080上的varnish。所以,我希望从我的IP abcd的所有请求通过清漆,所有其他IP应允许正常访问Apache。

我读了一些地方,可以在Iptables中使用PREROUTING来实现这一点。 有人可以告诉我怎么做吗? 我有2个站点在服务器上托pipe,是否可以configuration这只是一个域?

更新
我尝试了命令,但没有奏效

root@git:~# iptables -A PREROUTING -t nat -i venet0 -p tcp -s 117.201.192.67 --dport 80 -j REDIRECT --to-port 8000 root@git:~# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination root@git:~# iptables -A PREROUTING -t nat -i venet0:0 -p tcp -s 117.201.192.67 --dport 80 -j REDIRECT --to-port 8000 Warning: weird character in interface `venet0:0' (No aliases, :, ! or *). root@git:~# iptables -A PREROUTING -t nat -p tcp -s 117.201.192.67 --dport 80 -j REDIRECT --to-port 8000 root@git:~# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 

我在VPS上,没有名为eth0的接口。 /sbin/ifconfig列出lovenet0venet0:0venet0:1venet0:2

更新2 – 在开始工作时插入规则

 iptables -t nat -I PREROUTING -p tcp -s 117.201.192.67 --dport 80 -j REDIRECT --to-port 8000 

是否可以检查请求的主机名? 我想只redirectmydomainname.com的请求

您可以在iptablesredirect中指定源地址(或networking),如下所示:

iptables -A PREROUTING -t nat -i eth0 -p tcp -dport 80 -j REDIRECT – 到端口8080

规则是从上到下读取的,首先匹配,所以你可能必须把它放在正确的地方。