我已经在我的服务器上安装了清漆,并希望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列出lo , venet0 , venet0:0 , venet0:1和venet0: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
规则是从上到下读取的,首先匹配,所以你可能必须把它放在正确的地方。