我正在尝试设置如下网络:
=============================
DHCP fix addresses :
PC1 => 192.168.0.38
PC2 => 192.168.0.39
=============================
PC1:
eth0 inet addr:10.10.0.2 Bcast:10.255.255.255 Mask:255.0.0.0
wlan0 inet addr:192.168.0.38 Bcast:192.168.0.255 Mask:255.255.255.0
Destination Gateway Genmask Flags Iface
0.0.0.0 192.168.0.254 0.0.0.0 UG wlan0
10.0.0.0 0.0.0.0 255.0.0.0 U eth0
172.17.0.0 0.0.0.0 255.255.0.0 U docker0
192.168.0.0 0.0.0.0 255.255.255.0 U wlan0
=============================
PC2:
wlan1 inet addr:192.168.0.39 Bcast:192.168.0.255 Mask:255.255.255.0
eth0 inet addr:10.10.0.4 Bcast:10.255.255.255 Mask:255.0.0.0
Destination Gateway Genmask Flags Iface
0.0.0.0 192.168.0.254 0.0.0.0 UG wlan1
172.17.0.0 0.0.0.0 255.255.0.0 U docker0
192.168.0.0 0.0.0.0 255.255.255.0 U wlan1
=============================
所以最初我的两台电脑通过我的互联网盒子 dhcp(固定地址)通过 wifi 连接到互联网。它的坏处是文件传输一切都要通过 wifi。所以我在两台电脑之间加了一根电缆,想用这根电缆传输任何文件。问题是我甚至无法在两台电脑之间 ping 通!
从 PC1 我得到:
traceroute 10.10.0.4
traceroute to 10.10.0.4 (10.10.0.4), 30 hops max, 60 byte packets
1 10.10.0.2 (10.10.0.2) 2997.858 ms !H 2997.800 ms !H 2997.778 ms !H
'!H' 是什么意思?这表示有错误吗?
并且我无法从 PC2 到达 PC1(因为没有路线 => 我该如何添加路线?)
traceroute 10.10.0.2
traceroute to 10.10.0.2 (10.10.0.2), 30 hops max, 60 byte packets
1 192.168.0.254 (192.168.0.254) 64.193 ms 69.008 ms 71.722 ms
2 * * *
3 * * *
4 * * *
编辑:
在 PC2 上:
ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Link partner advertised pause frame use: Symmetric
Link partner advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
MDI-X: on
Cannot get wake-on-lan settings: Operation not permitted
Current message level: 0x000000ff (255)
drv probe link timer ifdown ifup rx_err tx_err
Link detected: yes
编辑 :
在 PC2 上
$ dmesg | grep eth0
[ 5.293971] tg3 0000:04:00.0 eth0: Tigon3 [partno(BCM95723) rev 5784100] (PCI Express) MAC address 3c:4a:92:b2:a2:1e
[ 5.293974] tg3 0000:04:00.0 eth0: attached PHY is 5784 (10/100/1000Base-T Ethernet) (WireSpeed[1], EEE[0])
[ 5.293976] tg3 0000:04:00.0 eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[1] TSOcap[1]
[ 5.293978] tg3 0000:04:00.0 eth0: dma_rwctrl[76180000] dma_mask[64-bit]
[ 9.124499] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 10.758438] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 10.758756] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 13.183081] tg3 0000:04:00.0 eth0: Link is up at 1000 Mbps, full duplex
[ 13.183091] tg3 0000:04:00.0 eth0: Flow control is on for TX and on for RX
[ 13.183104] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
答案1
假设您的网络状态与上图相同,则 PC2 没有返回 PC1 的路由。您需要添加一条到 PC2 的路由,但您在注释中尝试的命令:
route add -net 10.10.0.0/255.0.0.0 gw 10.10.0.4
不是您想要的。此命令有几个错误:
/255.0.0.0
不是指定网络掩码的正确方法。gw 10.10.0.4
告诉 PC2 将其发送回自己!这不是我们想要的。10.10.0.0
不是正确的网络 ID。应该是10.0.0.0
。
以下是我们想要的:
route add -net 10.0.0.0 netmask 255.0.0.0 dev eth0
这会告诉 PC2 将这些数据包通过有线接口 eth0 发送出去。
由于根据您的图表,PC1 已经有到 PC2 的路由,所以这样应该可以。
另外需要注意的是,即使有线连接正常,您的文件仍然可能无法通过有线连接传输,只能通过 Wi-Fi 传输。这取决于您的程序如何尝试到达另一端。如果您指定了相关的 IP 地址 ( 10.10.0.x
),则不会出现问题,但如果您通过机器主机名指定,名称解析将发挥作用,并且您无法确保使用的 IP 地址始终是10.10.0.x
而不是 Wi-Fi 地址192.168.0.x
。如果这成为一个问题,您可能需要考虑编辑 hosts 文件。