在上一篇中讲到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中的网络的更多相关文章

  1. 已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。

    今天写ASP.NET程序,在网页后台的c#代码里写了个事务,事务内部对一张表进行批量插入,对另外一张表进行查询与批量插入. 结果第二张表查询后foreach迭代操作时报错:已禁用对分布式事务管理器(M ...

  2. L04-VirtualBox中CentOS7网络配置(可连外网)

    本文所述的方法在RHEL6.5.RHEL7和CentOS6.5中同样适用. 1.工具:VirtualBox,虚拟机:CentOS7 2.VirtualBox工具中的网络配置 (1)VirtualBox ...

  3. 基于MACVLAN配置VMWARE虚拟机中容器网络

    基于MACVLAN配置VMWARE虚拟机中容器网络 测试部环境组 201711 0 文档说明 MACVLAN是docker的一种支持跨主机网络的driver.macvlan本身是linux kerne ...

  4. Docker 中的网络功能介绍 外部访问容器 容器互联 配置 DNS

    Docker 中的网络功能介绍 | Docker 从入门到实践 https://vuepress.mirror.docker-practice.com/network/ Docker 允许通过外部访问 ...

  5. 树莓派3B安装OpenWrt打造超级路由器

    网上有很多树莓派安装OpenWrt的教程,我这里写一下个人安装体验以及踩过的坑

  6. 配置树莓派3和局域网NTP服务器实现内网时间校准

    一.配置局域网NTP服务器 1.安装ntp-4.2.8p5-win32-setup.exe 下载地址:https://www.meinbergglobal.com/english/sw/ntp.htm ...

  7. 树莓派开发板入门学习笔记2:[转]树莓派系统在VM中能做什么

    问"树莓派系统在VM中能做什么"不如问"树莓派能做什么":(参考:树莓派实验室) 普通难度的DIY 较高难度的DIY 用树莓派打造一个家庭影院 给树莓派安装摄像 ...

  8. OpenWrt中开启usb存储和samba服务

    在从官网安装的WNDR3800 15.05.1版本OpenWrt中, 不带usb存储支持以及samba, 需要另外安装 1. 启用usb支持 USB Basic Support https://wik ...

  9. Neutron VxLAN + Linux Bridge 环境中的网络 MTU

    1. 基础知识 1.1 MTU   一个网络接口的 MTU 是它一次所能传输的最大数据块的大小.任何超过MTU的数据块都会在传输前分成小的传输单元.MTU 有两个测量层次:网络层和链路层.比如,网络层 ...

随机推荐

  1. mybatis多表查询之多对多关系查询的实现-xml方式

    Mybatis对于多对多关系下的查询提供了集合(collection)的概念来解决,collection属性是resultMap高级结果映射的子集,首先,在本例中我们使用的是集合元素来解决多对多的查询 ...

  2. 前端利器躬行记(2)——Babel

    Babel是一个JavaScript编译器,不仅能将当前运行环境不支持的JavaScript语法(例如ES6.ES7等)编译成向下兼容的可用语法(例如ES3或ES5),这其中会涉及新语法的转换和缺失特 ...

  3. Docker搭建Zookeeper&Kafka集群

    最近在学习Kafka,准备测试集群状态的时候感觉无论是开三台虚拟机或者在一台虚拟机开辟三个不同的端口号都太麻烦了(嗯..主要是懒). 环境准备 一台可以上网且有CentOS7虚拟机的电脑 为什么使用虚 ...

  4. 车联网服务non-RESTful架构改造实践

    导读 在构建面向企业项目.多端的内容聚合类在线服务API设计的过程中,由于其定制特点,采用常规的restful开发模式,通常会导致大量雷同API重复开发的窘境,本文介绍一种GraphQL查询语言+网关 ...

  5. python 19 包

    目录 1. 包 2. logging 日志 2.1 日志级别 2.2 配置日志格式: 2.3 logger 对象配置 1. 包 文件夹下具有__init__.py文件就是一个包 from bake.c ...

  6. 前端测试工具之 postman

    1.不论你是一个前端工程师还是一个后端工程师相信这款工具都会使你的开发更加简便. 2.在此我推荐的一款软件工具是 postman . 在这里我对 postman 做一个简单的介绍: ①它能够模拟表单发 ...

  7. net core WebApi——尝试企业微信内部应用

    目录 前言 企业微信 开始 测试 小结 @ 前言 这几天忙活着别的东西,耽误了很长时间,从文件操作完了之后就在考虑着下一步鼓捣点儿啥,因为最开始的业务开发就是企业微信相关的,这刚好来做个内部应用的小例 ...

  8. list 分批

    public class TestList { public static void main(String[] args){ List<Integer> list = new Array ...

  9. POJ - 3660 Cow Contest 传递闭包floyed算法

    Cow Contest POJ - 3660 :http://poj.org/problem?id=3660   参考:https://www.cnblogs.com/kuangbin/p/31408 ...

  10. POJ-2253-Frogger +最短路小变形

    传送门:http://poj.org/problem?id=2253 参考:https://www.cnblogs.com/lienus/p/4273159.html 题意:给出一个无向图,求一条从 ...