(已解决)树莓派有线网和无线网无法同时工作

我的树莓派安装debian12,使用wlan0上网没有问题。

局域网与台式电脑传输文件时,使用wlan0速度有点慢,速度大概17MB;局域网改用eth0的话,速度大概100+MB。

问题是,我如果想用wlan0连接无线路由上外网的同时使用eth0直连局域网的台式电脑传输文件,二者会同时不工作。如果想要eth0工作,就必须断开wlan0的wifi连接。这导致树莓派在使用eth0传输局域网数据时,无法同时用wifi上网。

我应该如何设置,才能让wlan0和eth0同时工作?

下面是参数:

pi-debian@raspberypi:~ $ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether d8:3a:dd:c4:f5:2c brd ff:ff:ff:ff:ff:ff
    inet6 fe80::dd8d:d61e:bd0d:c1c/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether d8:3a:6d:c4:f5:2e brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.12/24 brd 192.168.10.255 scope global dynamic noprefixroute wlan0
       valid_lft 86399sec preferred_lft 86399sec
    inet6 fe80::52a4:7d96:cc7e:7018/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
pi-debian@raspberrypi:~ $ ip r
default via 192.168.10.1 dev wlan0 proto dhcp src 192.168.10.12 metric 600 
192.168.10.0/24 dev wlan0 proto kernel scope link src 192.168.10.12 metric 600 
pi-debian@raspberrypi:~ $

在断开wlan0连接的wifi后,设置/etc/network/interfaces如下:

cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source /etc/network/interfaces.d/*

auto eth0
iface eth0 inet static

dress 192.168.3.32
netmask 255.255.255.0
gateway 192.168.3.1

同时需要设置台式电脑的有线网卡参数如下:

ipaddress: 192.168.3.1
dns: 192.168.3.1
gateway: 192.168.3.1

台式电脑与树莓派用网线直连。

具体情况是?

wifi无法连接网页,同时eth0与台式电脑连接不上,ping不通。

如果把wifi关掉,再设置/etc/network/interfaces,然后systemctl restart networking.service或者重启树莓派,eth0就能ping通台式电脑,之后就能用filezilla传输数据。

台式电脑与树莓派的有线网络是用一根网线直接连接,中间没有集线器或者路由器。

我的台式电脑不存在这个问题,有线和无线可以同时工作,只有树莓派有这个问题。台式电脑系统是debian12,amd64。

中间好像有一些错误描述。

现在的情况是,树莓派不做任何设置,wifi连接正常情况下,把eth0用网线与台式电脑连接,电脑有线网卡设置或者不设置192.168.3.1,则结果都是树莓派wifi可以打开外网网页,但其eth0没有ip地址。

你需要添加路由规则,默认网关保持为 wlan0 网关的同时,让 192.168.3.1 走 eth0 接口

字我都认识,但操作我不太清楚,网络知识基本为零。

添加路由规则,是不是指在当前的路由规则上添加一条?比如当前的规则用命令ip route命令查看是两行。你说的添加,是指再添加一行新的规则变成三行?用啥命令?

默认网关保持为wlan0的网关,是指新添加的规则不用指定网关,默认即可?

192.168.3.1走eth0接口,是指把eth0的ip地址设置为192.168.3.1,台式电脑用192.168.3.2 ?

=============================
我在网上搜索了一下,是不是编辑 /etc/network/interfaces文件,添加下面一行:

post-up ip route add 192.168.3.2/255.255.255.0 via 192.168.10.1

同时在 /etc/network/interfaces文件中设置eth0的ip地址为 192.168.3.1,gateway设置为192.168.10.1?

现在正常了。理论上来说你用 IPv6 的链路地址就已经可以用了。想要个 IPv4 地址的话,ip a add 192.168.3.123/24 dev eth0(注意和对面同一网段)。

哦,如果 eth0 是 DOWN 的状态的话,需要 ip l set eth0 up 一下。

你的树莓派 IP192.168.3.2目标台式机的 IP 是 192.168.3.1,这里是指的是让目标 IP 为 192.168.3.1 的数据包去 eth0 接口。你的问题实际上是 wlan0 创建的默认路由把应该发给 eth0 的数据包发给了 wifi 的网关。

因此,应当添加这样的路由:

$ sudo ip route add 192.168.3.2 dev eth0

ps. 不确定这是否能正常工作,也许还应该考虑回程?网络什么的全忘啦。

1 个赞

ipv4果然可以了 :+1:

不过在使用ipv6时,台式电脑端ping树莓派ping不通,我用的命令是 ```
ping6 fe80::dd8d:d81e:bb0d:c1c%eth0


另外,在树莓派上打开connection infomations对话框,eth0显示有ipv4地址,但ipv6没有任何信息。

时不时,好像树莓派ip a输出会显示eth0没有inet6内容

我看了一下,树莓派的ipv6地址最后一段是三位c1c,不知道和这个有没有关系。

时不时不显示 IPv6 链路地址这种情况我还没见过……

我怀疑是系统本身有问题,我用的是树莓派5,硬件软件都比较新,使用过程中确实发现一些小问题,推测ipv6也是这些小问题之一。

你是不是没连上ipv6,应该ping类似204e开头那个。有线无线网络冲突,你最后是通过加路由表解决的吗?具体怎么弄的

解决方案是用依云给的一条命令: ip a add 192.168.3.123/24 dev eth0
命令执行完后就可以了。

ping6是在台式机上ping6树莓派的eth0,eth0的ipv6的最后一段是三位。

三位数其实挺正常的——前边的零省略了。

有就能用。他的问题是链路地址时不时不在就比较神奇。(一直不在的话,是禁用了 IPv6;一直在是默认情况,内核自动分配的。)

树莓派5刚到手还没热乎几天,小问题一堆……

你应该没连上ipv6公网吧,连上应该是240e那些开头的,fe80是本地地址吧。反正我桥接虚拟机ping 240e开头的能通,fe80开头的不通

没连接公网,而是把树莓派与台式电脑的有线网口直接用一根网线连接。

好吧。感觉ipv6设置还是不方便,我ufw禁用了虚拟机ipv4和ipv6,不让虚拟机和主机互通,ipv4比较稳,ipv6会变(2个固定的ipv6地址在变),ufw只能禁2个ipv6了

在百度上搜到这个话题,进来留个记录。

我的有线网,与无线网,是两个完全不同的内网网段。

我用两台不同牌子,不同配置的笔记本,无线网卡牌子也不同,安装 debian 12,一台装了 gnome 桌面,另一台没装 gnome 桌面环境。

两台都表现为,同时打开Wi-Fi和有线网,则只有其一可以用。在笔记本上 ping -I 不能用的那个网卡,无法ping出去。而且别的机器也无法通过这个网卡ping进来。

笔记本上 ipv4-tcp 监听,别的机器也无法通过这个网卡连接进来,但是,笔记本上 tcpdump 能抓到包。

笔记本上 ipv4-udp 监听,别的机器能通过本机两个网卡访问进来,通信正常。

看来问题就集中在 icmp 与 tcp 上,udp没问题。

刚装好的系统,也没有防火墙。我估计大概率是 bug。

是不是 rp_filter 设置的问题呢?