1我需要在Linux的界面上使用几个IP,然后切换它,但是它不工作。
例如:
# ifconfig eth0 Link encap:Ethernet HWaddr 90:2b:34:33:80:65 inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::922b:34ff:fe33:8065/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:13220652 errors:0 dropped:32864 overruns:0 frame:0 TX packets:8296620 errors:0 dropped:0 overruns:0 carrier:1 collisions:0 txqueuelen:1000 RX bytes:16166162509 (16.1 GB) TX bytes:2186645852 (2.1 GB) Interrupt:48 eth0:1 Link encap:Ethernet HWaddr 90:2b:34:33:80:65 inet addr:192.168.1.99 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:48 lo Link encap:Локальная петля (Loopback) inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:276685 errors:0 dropped:0 overruns:0 frame:0 TX packets:276685 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:21387439 (21.3 MB) TX bytes:21387439 (21.3 MB) # ip route 169.254.0.0/16 dev eth0 scope link metric 1000 192.168.1.0/24 dev eth0 scope link src 192.168.1.99 # ping 192.168.1.50 PING 192.168.1.50 (192.168.1.50) 56(84) bytes of data. 64 bytes from 192.168.1.50: icmp_req=1 ttl=255 time=1.21 ms 64 bytes from 192.168.1.50: icmp_req=2 ttl=255 time=1.07 ms 64 bytes from 192.168.1.50: icmp_req=3 ttl=255 time=1.05 ms
然后我用Curl
# curl 192.168.1.50
和tcpdump:
13:24:02.009094 IP 192.168.1.1 > 192.168.1.50: ICMP echo request, id 8919, seq 347, length 64 E..T..@.@..%.......2...s"..[...P....q#...................... !"#$%&'()*+,-./01234567 13:24:02.010087 IP 192.168.1.50 > 192.168.1.1: ICMP echo reply, id 8919, seq 347, length 64 E..T...........2.......s"..[...P....q#...................... !"#$%&'()*+,-./01234567 13:43:40.006264 IP 192.168.1.1.48275 > 192.168.1.50.80: Flags [S], seq 3496592766, win 14600, options [mss 1460,sackOK,TS val 15698502 ecr 0,nop,wscale 7], length 0 E..<O8@.@.h........2...Pi~......9............ ...F........ 13:43:40.007663 IP 192.168.1.50.80 > 192.168.1.1.48275: Flags [S.], seq 3006420619, ack 3496592767, win 5792, options [mss 1460,sackOK,TS val 151247914 ecr 15698502,nop,wscale 0], length 0 E..<..@.@..8...2.....P...2V..i................. ..*...F....
而源IP仍然是192.168.1.1,我做错了什么?
UPD:顺便说一句,在Ubuntu 10.04上用2.6.32内核试了一样的东西,一切正常,甚至不需要在“ping”命令中加上“-I”,它就会在我的内核(3.2.0)此function。
src
选项只影响源地址由操作系统选择的数据包。 ping
程序选择自己的源地址。 如果您想影响其选择,请使用-I
或-B
选项。 如果你想看看你的src
选项是否工作,建立一个TCP连接或发送一个UDP数据报。