linux 指定从某个ip访问某个主机或网络

测试机A上有3个ip

分别为 eth0    192.168.1.34

       eth0:1  192.168.1.36

       eth1    192.168.1.35

首先在测试机B上开机apache access_log

    tail -f /etc/httpd/logs/access_log

接着在测试机A上访问B ,可以看到

192.168.1.34 - - [26/Aug/2014:02:54:24 +0800] "GET / HTTP/1.1" 403 4958 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20131023 Firefox/17.0"

默认是从第一个网卡的第一 个ip地址处来的。

接着执行在A上执行 route add -host 192.168.1.33 dev eth0:1

再访问B,就可以看到

192.168.1.36 - - [26/Aug/2014:02:50:10 +0800] "GET / HTTP/1.1" 403 4958 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20131023 Firefox/17.0"

再在A上执行

route del -host 192.168.1.33 dev eth0:1

route add -host 192.168.1.33 dev eth1

再访问B,就可以看到


192.168.1.35 - - [26/Aug/2014:02:54:41 +0800] "GET /icons/apache_pb.gif HTTP/1.1" 304 - "http://192.168.1.33/" "Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20131023 Firefox/17.0"



如果要指定访问某一段网络就

route add -net 192.168.0.0/24 dev eth0:1



如果要从指定网关出去就到某主机

route add -host 192.168.1.33 gw 192.168.1.1


测试的时候如果没装浏览器,那也可以用curl http://192.168.1.33