我的电脑中有两张网卡处于使用状态。
ifconfig
eth0 Link encap:Ethernet HWaddr e0:3f:49:57:4b:d1
inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::e23f:49ff:fe57:4bd1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6068 errors:0 dropped:0 overruns:0 frame:0
TX packets:113 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3780468 (3.6 MiB) TX bytes:11800 (11.5 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:14 errors:0 dropped:0 overruns:0 frame:0
TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:700 (700.0 B) TX bytes:700 (700.0 B)
wlan0 Link encap:Ethernet HWaddr 00:21:5d:26:c1:10
inet addr:192.168.1.101 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::221:5dff:fe26:c110/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1291 errors:0 dropped:0 overruns:0 frame:0
TX packets:5146 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:81917 (79.9 KiB) TX bytes:992000 (968.7 KiB)
当我的电脑连接到 yahoo.com 时,如何知道使用哪个 IP 地址?
答案1
Linux 通常会默认将 eth0 上的连接作为主要连接。这里显示的是有线连接(eth0 = 以太网有线连接)、lo(始终是 NIC 的返回 IP(环回 127.0.0.1))和无线 LAN 连接(wlan0 = 无线 LAN 连接)。
您的 wlan0 连接只会在 eth0 不传递流量时传递流量。这是因为当以太网电缆插入您的计算机(我假设是笔记本电脑)时,它会暂时禁用您的无线连接传递流量。如果您的计算机同时在两者上传递流量,我会立即想到两个问题:
- 您可能会通过中断的流量(连接持续中断),并且
- 您可能会妨碍家庭路由器解释和正确路由流量的能力;也就是说,你会让你可怜的小迷你路由器感到困惑。
我可以看到两者同时使用的唯一方法是在将流量传递到两个不同子网的环境中(可能通过虚拟机)。例如,如果您的主机通过 RJ-45(以太网)连接到路由器,但您的虚拟机通过 Wi-Fi 连接到邻居的网络。
@Felix:您不会在子网为 192.168.0.0 的 C 类(家庭网络)上看到 10 地址。
答案2
检查默认路由(我的看起来像这样):
$ ip route
default via 10.0.0.1 dev em0
10.0.0.0/24 dev em0 proto kernel scope link src 10.0.0.120
这将告诉您正在使用哪个设备以及哪个 IP 地址。至于 yahoo.com 将看到的 IP 地址,这取决于您通过 ISP 的连接,但一个简单的方法是使用简单的 Web 服务,例如http://whatismyipaddress.com/
对于大多数情况来说这就足够了。