树莓派共享以太网口上网

1. 环境

所处的环境有可以连接因特网的wifi网络,树莓派可以通过wifi上网。

2. 诉求

将树莓派的以太网口共享出来,其他带以太网口的PC或单片机等可以通过网线直连树莓派的以太网口来上网。可以看做是把树莓派配置成单以太网接口的有线路由器或wifi中继。

注意:并非是将树莓派配置成wifi路由器,网络拓扑与本文描述正好是相反的:

在这里插入图片描述
上图左边是树莓派作为wifi路由器的网络拓扑,右边则是本文要构造的网络拓扑。

3. 步骤

3.1 打开内核的网卡转发能力

编辑/etc/sysctl.conf文件:

net.ipv4.ip_forward=1

将此行取消注释(删掉最前面的#)。

使配置生效:

sudo sysctl -p

3.2 配置防火墙

配置防火墙,启用NAT,在wlan0接口上启用IP伪装:

sudo iptables -F 
sudo iptables -P INPUT ACCEPT 
sudo iptables -P FORWARD ACCEPT 
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

注意:这一步执行后,一定要将配置持久化,否则下次开机启动后

配置会失效,导致虽然共享网口的主机可以dhcp获取地址却无法上网。

防火墙配置持久化:

  1. 导出防火墙配置并存到/etc目录下
sudo iptables-save > nat.rule
sudo mv nat.rule /etc
  1. 添加开机启动

新建/etc/network/if-pre-up.d/iptables文件,内容如下:

#!/bin/bash
/sbin/iptables-restore < /etc/nat.rule

该文件在网络启动时会被调用,通过iptables-restore恢复之前保存的配置。

别忘记了添加可执行权限:

sudo chmod 755 /etc/network/if-pre-up.d/iptables

3.3 配置树莓派DHCP服务

3.3.1. 安装DHCP服务

sudo apt-get install isc-dhcp-server

3.3.2. 配置树莓派以太网卡

此网络拓扑下,我们是将树莓派的以太网卡当做路由器(网关)使用,简单起见我们将树莓派的以太网卡ip地址指定为192.168.1.1。

编辑/etc/dhcpcd.conf文件,在末尾添加如下内容(指定ip和子网掩码):

# 指定接口 eth0
interface eth0
# 指定静态IP,/24表示子网掩码为 255.255.255.0
static ip_address=192.168.1.1/24

注意:配置网卡信息还可以通过配置/etc/network/interfaces文件来实现,读者需要的话自行操作。这里通过编辑/etc/dhcpcd.conf来实现(更简单)。

3.3.3. 配置DHCP服务

编辑/etc/dhcp/dhcpd.conf文件,添加如下内容:

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.2 192.168.1.200;
  option subnet-mask 255.255.255.0;
  option broadcast-address 192.168.1.255;

  option routers 192.168.1.1;
  option domain-name-servers 182.254.116.116,182.254.118.118,144.144.144.144;
}

注意:

  1. 此处编辑的是/etc/dhcp/dhcpd.conf,配置以太网口ip编辑的是/etc/dhcpcd.conf,不要搞混了。

  2. dns服务最好查找一下树莓派本机使用的dns,直接配置成树莓派在使用的dns:

cat /etc/resolv.conf

3.3.4. 启动HDCP服务

sudo service isc-dhcp-server restart

**注意:**这里很可能会遇到错误提示,但通过log查看错误信息,显示应该是服务已经存在并开启了,如果是此种情况直接忽略错误信息。

3.3.5 配置HDCP开机启动

编辑/etc/rc.local文件,在exit 0之前加入如下内容:

service isc-dhcp-server start

**注意:**如果不添加DHCP服务开机启动,则每次树莓派重启后需要手动执行上述命令来启动DHCP服务。

4. 使用

将PC、laptop或者单片机的以太网口通过网线直连到树莓派上,配置PC、laptop以太网卡为DHCP自动ip配置;单片机的话通过启动lwip的DHCP服务获取ip等信息,就可以愉快的上网了。

此种网络拓扑使用的场景比较少:

  1. 如果有一台只支持以太网上网的PC,并且通过网线走线到家中wifi路由器上比较麻烦(距离过长或者走线不美观),并且你手上刚好有树莓派且你不想再买一个usb的无线网卡,那么可以通过此配置将树莓派做成wifi中继,最后PC通过网线连接树莓派上网,甚至可以在树莓派的以太网口上再接一个无线路由器来解决家中wifi信号覆盖问题。

  2. 我没有场景1这么蛋疼的诉求(我家里也有类似情况,但我是直接买了一个网件的usb无线网卡)。我遇到的场景是,调试腾讯的LoRa网关,此网关的底板用的是STM32的F7官板,且网关中的固件被配置成通过板载以太网口上网,而公司的墙上网口直连F7官板的话无法连接网络。正好手边有一个树莓派,因此构造了这个拓扑来解决F7的以太网上网问题。

5. 参考文献

设置树莓派共享有线网卡

树莓派配置路由器

用树莓派打造无线路由器

树莓派Ubuntu可以通过以太网连接到网络。要连接树莓派Ubuntu系统的以太网,可以按照以下步骤进行操作: 1. 首先,将SD卡插入到树莓派并将树莓派与电脑通过网线连接起来。 2. 打开电脑的网络与共享中心,点击无线网络连接的属性。在共享选项卡中,勾选“允许其他网络用户通过此计算机的Internet连接来连接”,并选择本地连接。 3. 在电脑上打开命令提示符控制台(Win+R,输入cmd,回车),输入ipconfig命令查看自己电脑的以太网IP地址,并记下这个IP地址。 4. 输入arp -a命令查看树莓派的IP地址。根据自己电脑的以太网IP地址,在arp -a的结果中找到对应的IP地址,这就是树莓派的IP地址。 如果在命令提示符中输入ipconfig或arp -a命令没有显示结果,可以尝试以下方法: - 打开电脑的控制面板,进入“系统与安全”>“系统”>“高级系统设置”。 - 点击“环境变量”并编辑系统变量的Path。 - 添加路径“C:\Windows\System32”。 - 然后再次尝试输入ipconfig和arp -a命令。 通过以上步骤,你可以成功连接到树莓派Ubuntu系统的以太网。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [树莓派Ubuntu20.04镜像烧录+ssh+putty连接树莓派](https://blog.csdn.net/qq_53859658/article/details/118072187)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值