背景:
我有一台 Windows PC,之前它通过以太网直接连接到我的路由器,这样它就可以访问互联网。
我还有一个带有 2 个物理以太网接口的 Raspberry Pi,它通过其中一个以太网接口连接到我的路由器,(eth0
& eth1
)这使 Pi 可以访问互联网(已成功尝试使用这两个接口,因此我知道它们都可以工作)
对于我正在做的项目,我创建了一个桥,它包含接口eth0
& eth1
,并且我有一个接口连接到路由器,一个接口连接到 Windows PC。
通过此配置,我的 Windows PC 可以访问互联网,这意味着桥接器可以正常工作。但 Pi 本身无法访问互联网(已尝试ping 8.8.8.8
和测试wget 8.8.8.8
,无需桥接器即可工作。)
我也无法从我的 Windows PC 通过 SSH 进入 Pi,并且在尝试这样做时收到“连接已超时”错误(已多次奏效,我经常使用 Putty 或 MobaXTerm 来访问 Pi)
问题:
有没有什么办法可以让我 Windows PC(或桥接器另一端的任何设备)访问互联网,同时 Raspberry Pi 仍能访问互联网,并且能够从网络的“非路由器”端通过 SSH 进入 Pi?
(对我来说,能够通过 SSH 进入 Pi 更为重要,能够访问互联网就更是额外的福利了!)
如有任何帮助/建议我将不胜感激!
答案1
解决方案可能是在 Pi 上创建一个 tap 接口,并将该接口添加到网桥。tap 接口应该获得适合您本地 LAN 的 IP 地址。您的 eth0/eth1 可能不再需要 IP 地址。
ip tuntap add name tap0 mode tap
brctl addbr mybridge
brctl addif mybridge eth0
brctl addif mybridge eth1
brctl addif mybridge tap0
ifconfig eth0 0.0.0.0
ifconfig eth1 0.0.0.0
ifconfig mybridge up
ifconfig tap0 192.168.100.5 netmask 255.255.255.0 up
另一种方法是给 PI 上的网桥一个 IP 地址。
brctl addbr mybridge
brctl addif mybridge eth0
brctl addif mybridge eth1
ifconfig eth0 0.0.0.0
ifconfig eth1 0.0.0.0
ifconfig mybridge up
ifconfig mybridge 192.168.100.5 netmask 255.255.255.0 up
答案2
您可能需要为桥接接口(而不是 eth0 或 eth1)分配一个 IP,并获取一个 IP 和所需的路由。
取决于两个网段的运行dhclient br0
(假设网桥有设备br0
)可能会起作用,否则静态 IP 可能会更好,尤其是当两个网段都运行 DHCP 服务器时。