通过交叉电缆连接两台 Linux 电脑

通过交叉电缆连接两台 Linux 电脑

我想通过交叉电缆连接两台运行 2.6 内核的 Linux PC。为此,我在 Google 搜索后进行了以下设置:

在 PC1 中

  1. ifconfig eth0 10.10.11.16 netmask 255.255.255.0 up
  2. route add default gw 10.10.11.13 eth0(默认网关是 pc2 的 ip)

在 PC2 中

  1. ifconfig eth0 10.10.11.13 netmask 255.255.255.0 up
  2. route add default gw 10.10.11.16 eth0(默认网关是 pc1 的 ip)

然后我尝试 ping 但却无法连接。上述设置是否足够,或者我是否遗漏了什么?

为您提供更多信息

在 PC1 中

ifconfig 输出

eth0      Link encap:Ethernet  HWaddr 00:16:76:A1:33:37  
          inet addr:10.10.11.16  Bcast:10.10.11.255  Mask:255.255.255.0
          inet6 addr: fe80::216:76ff:fea1:3337/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:49984 errors:6 dropped:0 overruns:0 frame:6
          TX packets:17221 errors:0 dropped:0 overruns:0 carrier:0
          collisions:439 txqueuelen:1000 
          RX bytes:14295749 (13.6 MiB)  TX bytes:2684625 (2.5 MiB)

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:16436  Metric:1
          RX packets:511 errors:0 dropped:0 overruns:0 frame:0
          TX packets:511 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:62780 (61.3 KiB)  TX bytes:62780 (61.3 KiB)

路线-n输出

Destination     Gateway         Genmask       Flags  Metric Ref      Us Iface

10.10.11.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
0.0.0.0         10.10.11.13     0.0.0.0         UG    0      0        0 eth0

在 PC2 中

ifconfig 输出

eth0      Link encap:Ethernet  HWaddr 00:40:CA:A1:C7:1B  
          inet addr:10.10.11.13  Bcast:10.10.11.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:705 errors:0 dropped:0 overruns:0 frame:0
          TX packets:97 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:63557 (62.0 KiB)  TX bytes:9973 (9.7 KiB)
          Interrupt:11 Base address:0xa000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:112 errors:0 dropped:0 overruns:0 frame:0
          TX packets:112 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:12400 (12.1 KiB)  TX bytes:12400 (12.1 KiB)

路线-n输出

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

10.10.11.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         10.10.11.16     0.0.0.0         UG    0      0        0 eth0

答案1

我连接了两台 Fedora 机器。这里我使用 A 和 B 作为机器名。

步骤1:

編輯文件

vim /etc/sysconfig/network-scripts/ifcfg-eth0

并输入机器 A 的详细信息

DEVICE="eth0"
HWADDR="<Machine A NIC HW ADDR CAN BE ENTERED USING ifconfig>"
BOOTPROTO="static"
ONBOOT="yes"
NM_CONTROLLED="yes"
TYPE=Ethernet
NETMASK=255.255.255.0
IPADDR=192.168.1.1
BROADCAST=192.168.1.255
IPV4_FAILURE_FATAL=yes
IPV6INIT=no

第2步:

編輯文件

vim /etc/sysconfig/network-scripts/ifcfg-eth0

并输入机器 B 的详细信息

DEVICE="eth0"
HWADDR="<Machine B NIC HW ADDR CAN BE ENTERED USING ifconfig>"
BOOTPROTO="static"
ONBOOT="yes"
NM_CONTROLLED="yes"
TYPE=Ethernet
NETMASK=255.255.255.0
IPADDR=192.168.1.2
BROADCAST=192.168.1.255
IPV4_FAILURE_FATAL=yes
IPV6INIT=no

步骤3:

使用以太网交叉电缆连接两台机器。

步骤4:

可选重启。

步骤5:

ping 192.168.1.1来自机器 B 和ping 192.168.1.2机器 A

如果您仍然无法 ping 通,请按照以下步骤操作。可能是由于网卡速度差异,您的机器无法 ping 通。将两台​​机器的速度设置为恒定。然后它可能会起作用。

-  On Machine A enter command:
    ethtool -s eth0 speed 10 duplex half

-  On Machine B enter command:
    ethtool -s eth0 speed 10 duplex half

然后重复步骤 5。如果您的机器仍然无法互相 ping 通,请执行以下操作:

[root@localhost ravidborse]# lspci 
00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)
00:1b.0 Audio device: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03)
00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d3)
00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 03)
00:1f.2 IDE interface: Intel Corporation 82801FBM (ICH6M) SATA Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 03)
06:08.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
06:09.0 CardBus bridge: Texas Instruments PCI7420 CardBus Controller
06:09.2 FireWire (IEEE 1394): Texas Instruments PCI7x20 1394a-2000 OHCI Two-Port PHY/Link-Layer Controller
06:09.3 Mass storage controller: Texas Instruments PCI7420/7620 Combo CardBus, 1394a-2000 OHCI and SD/MS-Pro Controller
06:0a.0 Network controller: Intel Corporation PRO/Wireless 2200BG [Calexico2] Network Connection (rev 05)

检查在 dmesg | grep Ethernet lsmod | grep 8139 中加载了哪些驱动程序

我输入了lspci命令并查看哪个以太网控制器正在使用您的机器。

我的 A 机器正在使用RTL8101E/8102E,上面的lspci输出是机器 B 的。下载以太网卡的相应 Linux 驱动程序并安装它们。这些驱动程序非常容易安装。阅读readme驱动程序文件夹中的内容。

答案2

您所做的配置似乎是正确的,虽然没有必要将每台 PC 设置为另一台 PC 的网关,但 PC 只需位于同一个 LAN 上即可工作。

也许是你的电缆有问题。

如果您的网卡具有自动感应功能,则任何常规电缆或交叉电缆都可以工作(因此,您使用 Windows PC 进行的测试可以工作),但如果它们缺少此功能,那么您必须使用交叉电缆,而常规 UTP 电缆将无法工作。

答案3

如果主机位于同一子网中(您的示例中就是这种情况),则不需要路由或网关,因此请删除路由并重新启动路由守护程序(或重新启动网络服务)

如果仍然不起作用:也许速度协商存在问题,请查看 ethtool 的输出:

$ ethtool eth0

使用 ethtool 更改双工、速度和其他设置。这两个系统上的所有这些设置都应该相同

相关内容