我有一台计算机 C、路由器 R 和树莓派 P。它们已连接:
互联网 <--以太网--> R <--wlan--> P <--以太网--> C
现在我想让C能够访问互联网。
P 有 wlan0 和 eth0,我的第一个想法是桥接 eth0 和 wlan0,但由于我所了解的 wifi 的性质,这是不可能的。
下一个方法是向 P 添加 dhcp 服务器并让 C 租用 IP 号码。它工作正常,ip route
在 C 上给出:
10.254.239.0/27 dev eth0 src 10.254.239.13 default via 10.254.239.10 dev eth0
P 上的 ifconfig 给出
eth0 链接 encap:以太网 HWaddr b8:27:eb:44:bb:71 inet 地址:10.254.239.10 广播:10.254.239.31 掩码:255.255.255.224 inet6 地址:fe80::3206:e7e:fb7e:23d5/64 范围:链接 上行广播运行多播 MTU:1500 指标:1 RX 数据包:569 错误:0 丢弃:0 溢出:0 帧:0 TX 数据包:235 错误:0 丢弃:0 溢出:0 运营商:0 碰撞:0 txqueuelen:1000 RX 字节:142936 (139.5 KiB) TX 字节:50384 (49.2 KiB) lo 链接 encap:本地环回 inet 地址:127.0.0.1 掩码:255.0.0.0 inet6 地址:::1/128 范围:主机 上环回运行 MTU:65536 公制:1 RX 数据包:19 错误:0 丢弃:0 溢出:0 帧:0 TX 数据包:19 错误:0 丢弃:0 溢出:0 运营商:0 碰撞:0 txqueuelen:1 RX 字节:1444 (1.4 KiB) TX 字节:1444 (1.4 KiB) wlan0 链路 encap:以太网 HWaddr b8:27:eb:11:ee:24 inet 地址:192.168.0.106 广播:192.168.0.255 掩码:255.255.255.0 inet6 地址:fe80::2501:6a8:8bcf:4a40/64 范围:链接 上行广播运行多播 MTU:1500 指标:1 RX 数据包:5415 错误:0 丢弃:4989 溢出:0 帧:0 TX 数据包:454 错误:0 丢弃:0 溢出:0 运营商:0 碰撞:0 txqueuelen:1000 RX 字节:815495 (796.3 KiB) TX 字节:49230 (48.0 KiB)
C 可以 ping P 但不能 Ping R,让我相信 P 有一些路由错误。
如何配置 P 在 R 和 C 之间传递流量?
ip route
在 P 上给出:
默认通过 192.168.0.1 dev wlan0 metric 303 10.254.239.0/27 dev eth0 原型内核范围链接 src 10.254.239.10 192.168.0.0/24 dev wlan0 原型内核范围链接 src 192.168.0.106 指标 303
也在P上
$ cat /proc/sys/net/ipv4/ip_forward 1
答案1
这是一个经典的IP转发案例。在P上运行以下命令:
echo 1 > /proc/sys/net/ipv4/ip_forward