如何将两台 Ubuntu 计算机联网,以便它们可以通过 IP 地址互相“看到”对方?
答案1
如果您使用两台计算机,但没有路由器来连接它们。要物理连接计算机,您需要交换机、集线器或交叉电缆(*)。然后,您需要手动分配同一范围内的 IP 地址。
在 Ubuntu 中这很简单。右键单击网络管理器小程序,您需要在两台计算机上执行此操作
- 编辑连接
- 有线标签
- 添加
- 有线标签
输入您要配置的接口的 mac 地址。 ifconfig 命令可以显示 mac 地址是什么:
$ ifconfig eth0 Link encap:Ethernet HWaddr 00:30:1b:b9:53:94
2.1. 在较新版本的 Linux 中,网卡名称已更改。
wlp2s0
,enp1s0
。寻找名称类似于en
以太网/wl
无线的东西。$ ip a l 2: enp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000 link/ether 98:e7:f4:5d:59:90 brd ff:ff:ff:ff:ff:ff 3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 84:ef:18:7b:cd:39 brd ff:ff:ff:ff:ff:ff
HWaddr 00:30:1b:b9:53:94
= mac 地址
link/ether 84:ef:18:7b:cd:39
= mac 地址
- 然后单击 ipv4 设置选项卡。将方法设置为手动。
- 单击“添加”在计算机 A 和 B 上添加 IP 地址。
以计算机 A 为例
address | netmask | gateway
10.0.0.1 | 255.255.255.0 |
计算机 B 的示例
address | netmask | gateway
10.0.0.2 | 255.255.255.0 |
看看你们能否从计算机 A互相 ping 通。
$ ping 10.0.0.2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=128 time=0.457 ms
来自计算机 B。
$ ping 10.0.0.1
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_seq=1 ttl=128 time=0.457 ms
表示一切正常。
(*) 大多数现代计算机都可以使用普通电缆代替交叉电缆。一些旧计算机需要交叉电缆。
答案2
命令行示例,因为它非常快速和简单。
在较新版本的 Linux 中,网卡名称已更改。wlp2s0
,enp1s0
。寻找名称类似于en
以太网/wl
无线的东西。
$ ip a l
2: enp1s0:
3: wlp2s0:
您需要更新以下命令以使用不同的命令dev enp1s0
等。
在计算机A上
sudo ip ad 添加 10.0.0.10/24 dev eth0
在计算机B上
sudo ip ad 添加 10.0.0.20/24 dev eth0
从 A 到 B 进行测试
ping 10.0.0.20
从 B 到 A 进行测试
ping 10.0.0.10
只要有一根电缆连接两台计算机,并且两台计算机的网络接口都已启用并称为 eth0,这应该可以正常工作。本文的其余部分旨在帮助解决出现的问题。
10.0.0.xx 是计算机的 IP 地址。/24 告诉计算机 32 位 IP 地址的最后 8 位可以更改。这类似于网络掩码 255.255.255.0。这将设置计算机/网络可用的路由。
你应该看到类似这样的内容
ip 路由
10.0.0.0/24 dev eth0 proto 内核范围链接 src 10.0.0.20
如果您在路由表中没有看到类似上述内容,但在使用 ip ad 时看到类似以下内容。您需要使用 /24 子网语法再次添加地址。
ip ad
inet 172.16.1.40/32 范围全局 eth0
注意 /32,它实际上表示这是一台计算机网络上唯一存在的计算机。它就是它自己。网络掩码 255.255.255.255。因此没有路由,网络无法正常工作。
了解您拥有哪些网络接口以及哪些正在运行
# IP 广告 1:lo:mtu 16436 qdisc 无队列 链路/环回 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 范围主机 lo inet6 ::1/128 范围主机 valid_lft 永远 preferred_lft 永远 2:eth0:mtu 1500 qdisc pfifo_fast qlen 1000 链路/以太 46:fd:51:f9:f5:2e brd ff:ff:ff:ff:ff:ff inet 172.16.0.186/24 brd 172.16.0.255 范围全局 eth0 inet 172.16.1.10/24 范围全局 eth0 inet 172.16.1.40/32 范围全局 eth0 inet6 fe80::44fd:51ff:fef9:f52e/64 范围链接 valid_lft 永远 preferred_lft 永远 3:eth1:mtu 1500 qdisc noop qlen 1000 链路/以太 72:3f:92:eb:a4:cc brd ff:ff:ff:ff:ff:ff
如果你因为犯了一个错误而需要删除一个 IP 地址
ip ad 删除 10.0.0.40/32 dev eth0 ip ad 删除 10.0.0.40/24 dev eth0
这将删除路由以及 IP 地址。
答案3
选择其中一台计算机作为服务器。如果其中一台计算机已连接到互联网,则将其用作服务器。
在服务器上单击网络指示器并选择Edit Connections
。选择以太网连接,然后单击Edit
按钮。转到IPv4
选项卡并将Method
从更改Automatic (DHCP)
为Shared to other computers
。
使用以太网电缆将两台计算机连接在一起。第二台计算机将从服务器分配一个 IP 地址并访问互联网。
如果您有旧硬件,您可能需要确保以太网电缆是交叉电缆。现代硬件会自动进行交叉。
在 Ubuntu 14.04 LTS 上测试。
答案4
以下是 nelaar 答案的重复,针对 Ubuntu 14.04 进行了更新。
硬件要求
为了在没有路由器的情况下连接两台计算机,您将需要以下设备之一:
- 标准以太网电缆,可与大多数现代硬件兼容,或
- 以太网交叉电缆,代替现代 NIC,或
- 一个简单的以太网集线器(和两根以太网电缆)。
在 Ubuntu 14.04 LTS 中
您需要手动分配同一范围内的 IP 地址。以下步骤假设您使用的是标准 Unity 界面。对每台计算机重复这些步骤。
- 单击 Unity 面板上的网络指示器(右上角)。
- 从下拉菜单中选择编辑连接...
- 在里面网络连接对话框中,单击添加按钮。
- 当提示选择连接类型时,选择以太网,然后点击创造...按钮。
- 将您的连接命名为“直接至 [其他主机名]”,以区别于典型的以太网连接。
- 在里面设备 MAC 地址下拉菜单中,选择与您计划使用的接口相对应的接口。
- 切换到IPv4 设置标签。
- 更改方法到手动的。
- 点击添加按钮添加 IP 地址。
- 计算机 #1 的示例设置:
- 地址:10.0.0.1
- 网络掩码:255.255.255.0
- 网关:
- 计算机 #2 的示例设置:
- 地址:10.0.0.2
- 网络掩码:255.255.255.0
- 网关:
- 计算机 #1 的示例设置:
设置完成后,将计算机连接在一起,尝试互相 ping 一下。
user@computer1:~$ ping 10.0.0.2
输出应如下所示:
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=128 time=0.457 ms