十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
背景: 树莓派外接USB无线网卡,待上网设备通过网线和树莓派的RJ45口相连。
目前创新互联建站已为超过千家的企业提供了网站建设、域名、网页空间、网站运营、企业网站设计、朝阳网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
思路:
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
—配置文件 /etc/dhcpcd.conf
在文件末尾添加
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设置
配置防火墙,启用NAT,在usb0接口上启动IP伪装:
注意:这一步执行后, 一定要将配置持久化,否则下次开机启动后配置会失效 ,导致虽然共享网口的主机可以dhcp获取地址却无法上网。
防火墙配置持久化:导出防火墙配置并存到/etc目录下
1. 导出iptables的配置,并保存在/etc目录下
2. 添加开机启动
新建/etc/network/if-pre-up.d/iptables文件,内容如下:
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,去除前面的#符号
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 vi /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。在网上查了一下 感兴趣的可以参考一下这篇文章。
这就导致我在测试的时候遇到一个问题,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
/********************************************************************************************************************************************************/
树莓派用python来进行编程。树莓派项目的一个核心思想是Python编程语言的使用。Python允许树莓派的拥有者将项目扩展到令人难以置信的规模。Python是一个解释型的面向对象的、跨平台的编程语言。良好的可靠性、清晰的语法和易用性,使它成为最流行的编程语言之一。Python是一个优雅的、功能强大的语言。
Raspberry Pi 系统用的是 ARM 架构的 Linux, Linux上的大部分编程语言如GNU C/C++, Java,Python, Perl, PHP都能用, .Net本来就不支持Linux, 不过说不定非官方的Mono会支持ARM。
树莓派(以下简称RPI)的使用往往离不开电脑。但是对于个别用户或者是在一些特定的场所之中。手机往往占据了主要的随身物品的份额。所以,使用手机配置、操控与使用RPI,是有着非常重要的意义。
步骤一:配置WIFI
首先保证RPI开启SSH功能
方法一:直接使用手机配置。
所需材料:
1一台具有OTG功能的手机
2Type-c转USB转换器(根据自己手机接口而定)
3TF卡读卡器
可以看到需要的东西并不是很多,所以操作起来也不是很麻烦。
我们先把TF卡插上读卡器,再插上转接器,最后再连上手机。此时手机会自动识别为外部储存器。我们现在就在根目录里建一个文件名为wpa_supplicant.conf的文件,内容如下:
country=GB
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="你的Wifi名称,注意大小写"
psk="你的Wifi密码"
}
本人使用的是WPS来编辑文本,你也可以使用其他文本编辑软件来编辑。
修改完内容后,我们来保存至TF卡中。不过可能在一些人的手机中,并不能直接保存至TF卡中。我们需要先保存到手机内部,更改文件后缀,再移动到TF卡中。
这样我们的WIFI配置就基本上成功了。
注意: RPI启动后会自动删除,建议再从手机终端中重新打开配置WIFI。详细方法如下:
方法二:由电脑打开终端配置
跟上述网站方法相同
步骤二:获取IP
所需软件:
1 Termux(只支持安卓版本5.0以上)
Termux是一款安卓Linux终端模拟软件。可以在安卓手机上运行一些属于Linux的命令。
在我们打开热点之后,确定树莓派连接上手机但不知道IP的情况下可以运用以下方法:
打开Termux,在终端中输入arp -a 即可获取连接该热点的设备IP信息。
步骤三:使用SSH连接
所需软件:
1 JuiceSSH
JuiceSSH 是一款能够在手机上通过ssh连接设备的软件。详细说明如下:
在IP中填入在Termux中获取的IP即可。
步骤四:使用VNC连接
所需软件:
1 VNC Viewer
通过SSH连接树莓派,使用sudo apt-get install tightvnc来获取VNC软件,详细配置如下:
但在连接端口中是要以5901为第一个端口,即在vnc中打开后提示的端口1为5901,2为5902。