背景:树莓派外接5G无线网卡,推流器连接raspberry 3B lan口,共享上网。
验证:raspberry 3B连接手机的热点,PC通过网线与raspberry的lan口相连,实现上网。
思路:
1. 首先给raspberry的eth设置一个静态ip地址。
2. 修改IP转发规则,允许ip数据的转发。(ip_forward的设置)
3. 路由设置,配置iptables,进行两个网卡的桥接。
4. 开启raspberry的DHCP服务,在eth口上开启。
5. 开启DNS服务。
详细过程:
1. 给树莓派的eth分配静态地址。
暂时分配:
sudo ifconfig eth0 192.168.173.1 255.255.255.0 up
永久分配:
写在配置文件里。
配置文件 /etc/network/interfaces,请注意此处wlan0的地址参数要和etc/udhcpd.conf相关参数相对应。
sudo vi /etc/network/interfaces
#iface default inet dhcp
增加
auto eth0
iface eth0 inet static
address 192.168.173.1
netmask 255.255.255.0
注意:
修改完毕后,执行 service networking restart ,来查看是否报错,如果没有报错,则重启,IP修改完毕。
2. 启动IP转发
有多种方法,建议使用sysctl的设置方式
方法1:sudo echo 1 > /proc/sys/net/ipv4/ip_forward
方法2:sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
方法3:sudo sysctl -w net.ipv4.ip_forward=1
有的时候需要在/etc/sysctl.conf下添加一行:net.ipv4.ip_forward=1
3. iptables设置
iptables -t nat -I POSTROUTING -o wlan0 -j MASQUERADE
4. dhcp服务
4.1 安装udhcpd服务
sudo apt-get update
sudo apt-get install udhcpd
4.2 配置DHCP服务
sudo vi /etc/udhcpd.conf
1. 修改网络接口,设置成对应的网卡号
2. 设置remaining,去除前面的#符号
#remaining yes 改为 remain yes
3. 设置树莓派的IP地址
修改opt router为192.168.173.1,那么配置完成之后这个地址将作为网关,连接到raspberry eth口的设备网关需要设置为此IP.
此处opt dns被修改为公共的DNS地址 114.114.114.114和 114.114.114.115
4.3 使能DHCP
配置 /etc/default/udhcpd
sudo nano /etc/default/udhcpd
使用#符号注释DHCPD_ENABLED="no"
DHCPD_ENABLED="no" 改为 #DHCPD_ENABLED="no"
4.4 启动服务
1. 启动udhcp的服务:sudo service udhcpd start
2. 设置开机启动:sudo update-rc.d udhcpd enable
5. dns服务
在进行调试的时候发现无法查询到raspberry使用的dns地址,按照常规方法查到的dns地址为127.0.1.1。在网上查了一下https://segmentfault.com/q/1010000002443769 感兴趣的可以参考一下这篇文章。
这就导致我在测试的时候遇到一个问题,pc可以通过ip地址访问,但是通过域名无法访问。然后我就在网上查了一些共用的dns服务器,设置后一切正常。关于这些共用的dns信息参考如下:
/********************************************************************************************************************************************************/
A、DNSPod DNS+:DNSPod的 Public DNS+是目前国内第一家支持ECS的公共DNS,是DNSPod推出的公共域名解析服务,可以为全网用户提供域名的公共递归解析服务!
DNS 服务器 IP 地址:
首选:119.29.29.29 备选:182.254.116.116
B、114DNS:国内用户量巨大的DNS,访问速度快,各省都有节点,同时满足电信、联通、移动各运营商用户,可以有效预防劫持。
DNS 服务器 IP 地址:
首选:114.114.114.114 备选:114.114.114.115
C、阿里 AliDNS:阿里公共DNS是阿里巴巴集团推出的DNS递归解析系统,目标是成为国内互联网基础设施的组成部分,面向互联网用户提供“快速”、“稳定”、“智能”的免费DNS递归解析服务。
DNS 服务器 IP 地址:
首选:223.5.5.5 备选:223.6.6.6
/********************************************************************************************************************************************************/