配置树莓派3的openwrt中的网络
在上一篇中讲到openwrt的编译安装:
http://www.cnblogs.com/yeqluofwupheng/p/7296218.html
但是烧写进去,启动系统后发现它的默认配置是路由器,所以地址是192.168.1.1的形式,如果你不是把它做路由器的系统来用,那就要重新配置openwrt的网络。下面介绍一些它的网络设置。
在此之前先远程登录树莓派openwrt
首先检查是否安装了ssh(使用dpkg -l | grep ssh),没有的话,使用命令:
apt-get install ssh
然后使用命令:ssh username@address来连接,其中username是远程的计算机账户名,address是远程计算机IP,例如:ssh root@192.168.1.109
注意:
首次连接,可能提示“the authenticity of the host can’t be established”。没有关系,回答yes进行连接,输入密码即可。
如果你登录一个标准的Shell会话,命令行提示符是“用户名@远程计算机的名称”
如果希望通过SSH运行图形程序,可以使用:ssh -X username@address
连接以后,输入程序的名称即可。譬如,启动gedit,输入gedit即可。另外注意,尽管程序出现在你的计算机上面,但是它依然是运行在远程计算机上面。如果启动OpenOffice或者其他复杂的图形程序,可能有一段时间的延迟。
然后介绍如何修改IP地址
方法一:
vi etc/config/network
将option ipaddr '192.168.1.1'中的地址改为 192.168.1.109(按i进入修改,修改完成按esc退出编辑,接着:wq保存退出),然后保存退出,然后再重启树莓派(如果使用命令可以使用reboot),就发现IP地址被改为192.168.1.109了.
方法二:在源代码中设置IP
前面是通过在树莓派上面修改配置文件的方式来修改IP,这样做虽然简单,但是每当我们重新烧写固件后,都要通过这个方式重新修改IP,这样太麻烦。那么,接下来我们就来通过修改源码的方式,来修改IP,这样就能编译出一个初始IP是192.168.1.109的镜像。
如果大家对OpenWrt系统的启动流程有一定的了解的话,我们就知道,系统在启动的时候,会通过运行uci-defaults.sh这个脚本程序来设置 IP 等基本参数。该脚本文件位于系统源码的openwrt/trunk/package/base-files/files/lib/functions目录,那么接下来我们就来修改该脚本文件,从而修改IP 地址,输入命令:
/home/Linux/openwrt/trunk$vi./package/base-files/files/lib/functions/uci-defaults.sh
新版本在目录:
./package/base-files/files/bin/config_generate
然后我们就可以在该脚本程序中看到,它的IP地址设置为192.168.1.1,将它改成你希望的IP就可以了。
更改了IP之后,可能还是无法上网,可以按照下面的流程检查:
1.网络设置有问题
因为openwrt配置是按照路由器的方式配置的,连上网线后可能与当前路由器冲突。例如:我是使用ssh远程登录树莓派,如果不关闭dhcp,就会出现树莓派和原本的路由器两边给我的主机分配ip使得主机这边冲突而无法上网。所以需要关闭openwrt中的dhcp。
如何关闭openwrt上的dhcp服务:
#./etc/init.d/dnsmasq stop
#./etc/init.d/dnsmasq disable
但是这样树莓派上的openwrt还是不能上网,原因是openwrt上的网络设置是路由器的设置,因此,他是没有设置网关,但是现在我不把他当作路由来用,只是使用它的系统,就要修改网络配置。
很简单,在/etc/config/network里面有树莓派的网络配置,跟正常的设置比较一下发现没有网关的设置,于是加上
option gateway '192.168.2.1'
这样ping 202.108.22.5就可以ping通。
2.dns有问题
但是,有了上面的设置你会发现"ping www.baidu.com"还是ping不通。这说明dns的配置有问题。
先介绍一个工具用来检查dns,就是nslookup命令。
nslookup命令用于查询DNS的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题。而且,它在linux下和windows下面都能用。
用法参考:blog.csdn.net/violet_echo_0908/article/details/52033725
那么如何配置dns呢?
首先最直接的方法在/etc/resolv.conf中添加dns地址:
vi /etc/resolv.conf nameserver 8.8.8.8
nameserver 8.8.4.4
但是这样只能使用一时,你会发现每次重启网络或重启系统就要重新添加上面的dns地址。
那么怎样永久的添加dns的地址呢?
从文件的链接关系可以看出来dns地址是记录在/tmp/resolv.conf.auto里面的,其他/etc/resolv.conf和/tmp/resolv.conf都是/tmp/resolv.conf.auto的链接,正常的思路是在/tmp/resolv.conf.auto里面添加dns地址就可以保证dns正常,但是实际上,在这里添加后,重启系统/tmp/resolv.conf.auto就会被清空,正确说应该是每次重启系统/tmp/resolv.conf.auto都会重新新建一次,你可以尝试删除它,重启后还是会恢复。
这样只要找到创建改文件的脚本然后不让它重新创建,后者创建后自动添加dns就可以了,但是可惜我没有找到脚本的位置,没办法我尝试在编译的时候就将dns的地址写进去,可不可以这样做呢?
我在下面这五个文件(整个编译的代码里面只有这个五个文件有直接设置dns的)中添加了dns的地址,这是我的思路不能保证都成功:
/home/openwrt/openwrt-master/staging_dir/target-arm_cortex-a53+neon-vfpv4_musl-1.1.14_eabi/root-brcm2708/etc/init.d/dnsmasq:
/home/openwrt/openwrt-master/build_dir/target-arm_cortex-a53+neon-vfpv4_musl-1.1.14_eabi/root-brcm2708/etc/init.d/dnsmasq:
/home/openwrt/openwrt-master/build_dir/target-arm_cortex-a53+neon-vfpv4_musl-1.1.14_eabi/dnsmasq-nodhcpv6/dnsmasq-2.75/ipkg-brcm2708/dnsmasq/etc/init.d/dnsmasq:
/home/openwrt/openwrt-master/package/network/services/dnsmasq/files/dnsmasq.init:
/home/openwrt/openwrt-master/build_dir/target-arm_cortex-a53+neon-vfpv4_musl-1.1.14_eabi/root-brcm2708/etc/rc.d/S60dnsmasq:
/home/openwrt/openwrt-master/package/network/services/ipset-dns/files/ipset-dns.config:(改文件是配置文件可以不用添加dns的地址)
3.扩展SD卡空间
处理好上面的问题,也还不能开始使用openwrt系统,因为,你运行#df -h命令,发现它的磁盘空间只有几百M,但是TF卡是有几十G的,这是怎么回事呢?
熟悉树莓派的就知道,树莓派第一次安装系统也是这样,需要在配置选项里面选择扩展SD卡空间,才能使他的空间和SD的实际空间一样大,但是openwrt里面没有这样的配置选项,那么如何扩充空间呢?
实际上可以下载一个工具gparted,通过那个工具来扩充SD卡的空间。网上有教程我这里就不赘述了,操作也很简单,可以参考这篇博客:
http://blog.csdn.net/eric_lmy/article/details/51785912
其他
上面是安装openwrt但是不使用它路由器的功能,而是使用它的SDK的一些设置,但实际上你就是想做个路由器,那可以参考下面的几篇博客:
http://shumeipai.nxez.com/2015/07/28/install-openwrt-will-be-transformed-into-a-versatile-router-raspberry-pi.html
http://blog.csdn.net/AGrapier/article/details/51971535
配置树莓派3的openwrt中的网络的更多相关文章
- 已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。
今天写ASP.NET程序,在网页后台的c#代码里写了个事务,事务内部对一张表进行批量插入,对另外一张表进行查询与批量插入. 结果第二张表查询后foreach迭代操作时报错:已禁用对分布式事务管理器(M ...
- L04-VirtualBox中CentOS7网络配置(可连外网)
本文所述的方法在RHEL6.5.RHEL7和CentOS6.5中同样适用. 1.工具:VirtualBox,虚拟机:CentOS7 2.VirtualBox工具中的网络配置 (1)VirtualBox ...
- 基于MACVLAN配置VMWARE虚拟机中容器网络
基于MACVLAN配置VMWARE虚拟机中容器网络 测试部环境组 201711 0 文档说明 MACVLAN是docker的一种支持跨主机网络的driver.macvlan本身是linux kerne ...
- Docker 中的网络功能介绍 外部访问容器 容器互联 配置 DNS
Docker 中的网络功能介绍 | Docker 从入门到实践 https://vuepress.mirror.docker-practice.com/network/ Docker 允许通过外部访问 ...
- 树莓派3B安装OpenWrt打造超级路由器
网上有很多树莓派安装OpenWrt的教程,我这里写一下个人安装体验以及踩过的坑
- 配置树莓派3和局域网NTP服务器实现内网时间校准
一.配置局域网NTP服务器 1.安装ntp-4.2.8p5-win32-setup.exe 下载地址:https://www.meinbergglobal.com/english/sw/ntp.htm ...
- 树莓派开发板入门学习笔记2:[转]树莓派系统在VM中能做什么
问"树莓派系统在VM中能做什么"不如问"树莓派能做什么":(参考:树莓派实验室) 普通难度的DIY 较高难度的DIY 用树莓派打造一个家庭影院 给树莓派安装摄像 ...
- OpenWrt中开启usb存储和samba服务
在从官网安装的WNDR3800 15.05.1版本OpenWrt中, 不带usb存储支持以及samba, 需要另外安装 1. 启用usb支持 USB Basic Support https://wik ...
- Neutron VxLAN + Linux Bridge 环境中的网络 MTU
1. 基础知识 1.1 MTU 一个网络接口的 MTU 是它一次所能传输的最大数据块的大小.任何超过MTU的数据块都会在传输前分成小的传输单元.MTU 有两个测量层次:网络层和链路层.比如,网络层 ...
随机推荐
- 关于window.location.href 传中文参数 乱码问题
传中文查询乱码问题 则需要对要传的参数进行二次编码 例如 window.location.href ="/xx.jsp?name="+name+""; 这样子 ...
- mysql的优化策略
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
- Python学习 之 计算机基础
第一章 计算机基础 1.1 硬件 计算机基本的硬件由:CPU / 内存 / 主板 / 硬盘 / 网卡 / 显卡 等组成,只有硬件但硬件之间无法进行交流和通信 1.2 操作系统 操作系统用于协同或控制硬 ...
- HTML5实时语音通话聊天,MP3压缩传输3KB每秒
目录 一.把玩方法 二.技术特性 (1)数据传输 (2)音频采集和编码 (3)音频实时接收和播放 三.应用场景 自从Recorder H5 GitHub开源库优化后,对边录边转码成小语音片段文件实时上 ...
- 动态数组& allocator
问题来源 在编写程序的时候,对数组."二维数组"的分配的删除掌握的不是很清楚,不能正确的进行定义初始化. 以及在使用vector的时候,如何正确的定义及初始化 注意!!! 尽量使用 ...
- 传入值参数&传入引用参数的区别
传值&传引用 1.传值 是把实参的值赋值给行参 那么对行参的修改,不会影响实参的值 2.传地址 是传值的一种特殊方式,只是他传递的是地址 那么传地址以后,实参和行参都指向同一个对象 3.传引用 ...
- library not found for -ljpush-ios-3.2.1错误
很多人在更新pod后报 library not found for -ljpush-ios-3.2.1(举例)错误,这其实是包含版本号类型错误. 究其原因:使用了版本号做库名字,pod升级后 Podf ...
- 2019 Multi-University Training Contest 9
A. Rikka with Quicksort 题意 求 EX 快速排序复杂度. 做法 根据线性期望可加性,独立考虑长度为 \(m\) 的区段对答案的贡献.进行简单的公式推导,对 \(s(x)=\su ...
- dp递推 数字三角形,dp初学者概念总结
数字三角形(POJ1163) 在上面的数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字之和最大.路径上的每一步都只能往左下或 右下走.只需要求出这个最大和即可,不必给出 ...
- Dungeon Master POJ - 2251 [kuangbin带你飞]专题一 简单搜索
You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is composed of un ...