将插入 Raspberry Pi 以太网的设备连接到 WiFi 网络

将插入 Raspberry Pi 以太网的设备连接到 WiFi 网络

我刚刚开始学习有关网络的更多信息,并且我已经学习了一个教程(https://raspberrypihq.com/how-to-turn-a-raspberry-pi-into-a-wifi-router/) 将我的 Raspberry Pi 变成一个 wifi 路由器。

效果确实很好,所以我对它做了一些修改,这样我就可以使用绑定的 iPhone 来连接互联网 - 我只需将所有“eth0”引用切换为“eth1”(iPhone 接口),并添加一个脚本来在手机插入时设置一切。

此设置释放了 Pi 的以太网端口,因此我想尝试更进一步,让插入其中的设备连接到网络。如果可能的话,我想尝试添加一个交换机,这样我就可以连接多个设备。

我试过摆弄 nat 和 iptables,但没有成功,所以我的问题是,如何将 eth0 上的设备连接到我的 wlan 网络?


编辑:

下面是一些额外的信息。这些信息是在手机插入电源后获取的。

输出自iptables -t nat -L

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  anywhere             anywhere

输出自netstat -rn

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         172.20.10.1     0.0.0.0         UG        0 0          0 eth1
172.20.10.0     0.0.0.0         255.255.255.240 U         0 0          0 eth1
192.168.10.0    0.0.0.0         255.255.255.0   U         0 0          0 wlan0

编辑2:

我的 dhcpd.conf 文件中的内容如下:

subnet 192.168.10.0 netmask 255.255.255.0 {
 range 192.168.10.10 192.168.10.200;
 option broadcast-address 192.168.10.255;
 option routers 192.168.10.1;
 default-lease-time 600;
 max-lease-time 7200;
 option domain-name "local-network";
 option domain-name-servers 8.8.8.8, 8.8.4.4;
}

dhcp 配置为在 wlan0 上运行 - /etc/default/isc-dhcp-server:

INTERFACES="wlan0"

答案1

严格来说,不需要做太多其他事情。我假设您已经启用了 IPv4 转发,并且可能还启用了以下规则:

  iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

这将允许你对所有连接进行 NAT。然后你的路由表需要

  ip route add default via IP_ADDRESS_OF_YOUR_PHONE

并且它大概也已经具备了。然后你就可以开始了。

编辑:

现在您已经发布了路由表(但请不要使用过时的、弃用的命令,如*ifconfig、route……),只需知识产权例如,路由表命令ip 路由显示,查看接口的地址ip 地址显示,...) 我发现您没有到以太网端口客户端的路由。如果您从中获取 IP 地址端口电缆连接客户端的网络是 192.168.20.0/24,那么您必须添加:

   ip route add 192.168.20.0/24 dev eth1

您不应该对无线和有线客户端使用同一个网络。

如果你还需要配置DHCP服务器,然后像以前一样编辑相同的文件 /etc/dhcp/dhcpd.conf,并添加新的网络:

  subnet 192.168.10.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option routers 192.168.10.1;
range 192.168.10.100 192.168.10.200;
}

subnet 192.168.20.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option routers 192.168.20.1;
range 192.168.20.100 192.168.20.200;
}

在文件 /etc/default/isc-dhcp-server 中,将以下行接口=“wlan0”

 INTERFACES="wlan0 eth0"

最后在路由器上设置一个好地址eth0网卡:

 ip link set dev eth0 down
 ip addr flush dev eth0
 ip addr add 192.168.20.1/24 dev eth0
 ip link set dev eth0 up

重新启动 dhcp,就好了。

相关内容