侧边栏壁纸
博主头像
术业有道之编程博主等级

亦是三月纷飞雨,亦是人间惊鸿客。亦是秋霜去叶多,亦是风华正当时。

  • 累计撰写 99 篇文章
  • 累计创建 50 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

树莓派配置无线转有线网桥

Administrator
2020-09-01 / 0 评论 / 0 点赞 / 33 阅读 / 3993 字

有些地方网线不方便弄,于是将树莓派的 wifi 模块网络转到以太网口形成有线网络(有些设备只能有线上网),自身当做上级路由来提供上网服务。当然反过来也是可以的。

网络结构走向是这样的 :
光猫拨号上网 => 通过有线连接 => 路由器(形成局域网A) => 通过wifi 连接 => 树莓派 (形成局域网B)= > 通过以太网口有线连接上网

连接到路由器的设备全部在局域网A下,通过树莓派以太网口连接的设备全部在局域网B下。

注意:以下步骤在 Ubuntu-Server 18.04 系统上操作,系统安装请看 树莓派安装官方Ubuntu-Server版系统

一、安装网桥配置工具

apt install -y bridge-utils

二、创建临时网桥

  • 查看网口驱动
    ifconfig -a
    一般有线网口驱动名为 eth0 ,无线网口驱动名为 wlan0

  • 新增网桥,一个逻辑网,一个 VLANbr0VLAN
    brctl addbr br0

  • eth0 成为 br0 的一个 interface
    brctl addif br0 eth0
    注意:这里的 eth0 是以太网口驱动名,如果想换成 wifi 输出,这里改成对应 wifi 的驱动名。

  • br0 虚拟网卡配置 IP:192.168.1.1,实现远程管理网桥,192.168.1.0/24 网段内主机都可 telnet 到网桥对其配置
    ifconfig br0 192.168.1.1 up

  • 清除 interfaceip
    ifconfig eth0 0.0.0.0 up
    网桥的每个物理网卡作为一个端口,运行于混杂模式,且在链路层工作,所以不需要 IP

  • 查看网桥
    brctl show

三、配置系统流量转发

有好几种方式都可以完成,这里我只写一种。

  • 打开内核转发
    vi /etc/sysctl.conf
    注释去掉 net.ipv4.ip_forward=1
    保存 sysctl -p

  • 如果我们中继的是运营商的 wifi,那么可能会获得一个公网的 IP,这种情况下想让内网的所有设备共享这一个公网 IP,需要在 wlan0 网口启用 nat
    iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
    注意:如果是用以太网卡作为输入,这里将 wlan0 改为 eth0

四、安装 dns 服务器

作为一台准路由器,插在上面的设备最好能够自动获取IP

  • 安装 dnsmasq
    apt install -y dnsmasq

  • 配置 dnsmasq
    vi /etc/dnsmasq.conf
    增加一行 dhcp-range=192.168.1.50,192.168.1.150,255.255.255.0,12h
    这句配置的意思是 :
    dhcp 自动获取 ip 的地址为 192.168.1.50192.168.1.150 之间;
    子网掩码为 255.255.255.0;
    ip 续租期为 12 小时
    启动服务 service dnsmasq start

这时候网桥已经可以工作了,但是重启系统后,之前配置的临时网桥就没有了。

五、配置开机自动执行网桥配置脚本

  • 创建网桥配置脚本
    vi bridge-init.sh
    输入以下内容:
#!/bin/sh
set -m
brctl addbr br0
brctl addif br0 eth0
ifconfig br0 192.168.1.1 up
ifconfig eth0 0.0.0.0 up
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
service dnsmasq start

  • 设置脚本开机启动
cp bridge-init.sh /etc/init.d
chmod 755 /etc/init.d/bridge-init.sh
cd /etc/init.d
update-rc.d bridge-init.sh defaults 95
  • 卸载开机启动脚本
cd /etc/init.d
update-rc.d -f  bridge-init.sh

到这里就全部完成了,此时树莓派每次上电都会自动启动创建一个网桥,使用 wifi 连接网络,以太网口变成下级网络的输出口,可以正常上网,也能正常访问与树莓派同级的内网设备。

个人公众号

0

评论区