如何在没有静态IP的情况下通过以太网直接连接两台机器?

如何在没有静态IP的情况下通过以太网直接连接两台机器?

问题:如何设置两台机器,以便当我用以太网电缆将它们直接连接在一起时,一台机器可以连接到另一台机器?我正在寻找一种不涉及设置静态 IP 地址的解决方案。

动机:我有一个 Raspberry Pi,它在无法通过以太网访问互联网的位置使用连接的传感器进行测量。我希望能够将笔记本电脑插入 Pi 并从中传输数据,而无需关闭 Pi。我想避免使用静态 IP,这样我就不必在每次需要插入 Pi 时更改笔记本电脑的配置。另外,我偶尔想将 Pi 重新连接到有线以太网连接,将其插入,并在其上运行软件更新,而无需更改 Pi 上的设置。

我尝试过的:我按照上面列出的步骤进行操作拱门维基这篇博文用于设置 Avahi 以使用.localTLD。目前,笔记本电脑使用 Arch Linux,而 Pi 使用 Ubuntu Mate。我avahi-daemon在安装了库的两个系统上运行nss-mdns。在笔记本电脑上,我编辑了主机行/etc/nsswitch.conf以读取

hosts: files mdns_minimal [NOTFOUND=return] dns myhostname

我所看到的:首次插入以太网电缆时,avahi-browse -alr显示

+ enp1s0 IPv6 rpi2b0 [b8:27:eb:65:2e:43]                    Workstation          local
= enp1s0 IPv6 rpi2b0 [b8:27:eb:65:2e:43]                    Workstation          local
   hostname = [rpi2b0.local]
   address = [fe80::ba27:ebff:fe65:2e43]
   port = [9]
   txt = []

几分钟后,avahi-browse -alr重新运行时找不到 Pi。当 Pi 被 找到时avahi-browse,它也能被 找到avahi-resolve,但是一旦没有找到,avahi-browse它就不再被 找到avahi-resolve。运行ping rpi2b0.local显示ping解析rpi2b0.local为 列出的 IPv6 地址,avahi-browse但结果为Address unreachablessh给出错误:debug1: connect to address fe80::ba27:ebff:fe65:2e43 port 22: Invalid argument.

答案1

您可以通过以太网电缆将 PC 和 RPi 连接在一起,这将创造两者之间的专用网络。

维基百科在这样的网络上:

在 IPv4 中,链路本地地址被编入 RFC 6890 和 RFC 3927 中。当动态主机配置协议 (DHCP) 服务不可用并且不希望由网络管理员进行手动配置时,它们的用途是由网络设备进行自我自动配置。

块 169.254.0.0/16 是为此目的而保留的,该范围内的第一个和最后一个 /24 子网除外。如果 IEEE 802(以太网)网络上的主机无法通过 DHCP 获取网络地址,则可能会伪随机分配从 169.254.1.0 到 169.254.254.255 的地址。该标准规定必须妥善处理地址冲突。

这意味着您的两台机器都应该位于 169.254.0.0 地址空间中。

然后我找到了几篇博客文章,引导您了解如何让这两者进行交流:

https://pihw.wordpress.com/guides/direct-network-connection/

http://embeddedday.com/projects/raspberry-pi/basics/direct-connection-to-pc/

如果你在苹果系统,选择以太网卡,DHCP,您应该会被分配一个私有IP地址,如下所示: 在此输入图像描述

如果你在Linux,打开 GNOME 设置,选择适配器接口,然后将 IPv4 / IPv6 方法更改为仅链接本地。显示正确配置的 GNOME 设置

基本上,您需要在 RPi 上编辑文件/boot/cmdline.txt并在配置行末尾添加您想要用于 RPi 的 IP。 在此输入图像描述

ssh然后,重新启动 RPi,当然,如果您已进行设置,您应该能够通过 来连接它。

相关内容