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