在PC搭建OpenWRT软路由

Posted toly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在PC搭建OpenWRT软路由相关的知识,希望对你有一定的参考价值。

1. 因《智能路由器开发指南》而起,想研究使用下OpenWRT

2.虚拟机使用的的VirturalBox,VmWare也可以。重点在网络配置上。

可以在网上搜到虚拟机设置中的:HostOnly,NAT,Bridging三种模式的详细说明,组网。后面有机会我也详细奉上。

3.下载源码:

(1)记住,OpenWRT准确的来说应该是一种框架,和构建路由器的工具集合,Linux-Kernel也仅仅是他运行的平台,本质上也是平台工具。所以你下的软件包代码量很少的,都是一堆编译脚本,配置脚本。

(2)工具代码包要在编译过程中由编译脚本下载,自己可以提前离线下好,前提是编译过相同版本(相同软件编译脚本使用的git节点号不一样,稍后说明)。

(3)如果没有(2),请保证自己的网络能访问Internet。

下载链接:https://github.com/openwrt/openwrt/releases 找一个完整的版本,应书上的版本,我选择的是Chaos Calmer (15.05) https://github.com/openwrt/openwrt/archive/v15.05.tar.gz

4.编译源码

(1)正常流程。

书上给的构建环境是Ubuntu14.04,由于我自己有PC是装了Debian 8 的,所以就直接用的自己的PC,效果是一样的,都是x86。

解压后,基本按照书上来编译:

./scripts/feeds update 更新包定义

./scripts/feeds install –a 安装所有包 这些都是在解压后的openwrt源码包下进行。

make defconfig,检查编译工具是否齐全。

make menuconfig 配置x86平台

    

 

选择一些工具:tcpdump,gdb,web管理界面LuCI,看自己需要

在make menuconfig的首页,使用查找[键盘上的"/"键]

选好后,make:这里可以cat /proc/cpuinfo看看自己的编译环境是CPU多少核,使用make –j2:使用2个线程并行编译;-j4就是四线程。编译出错,编译脚本会告诉你看错误[make V=s]。这些错误要会看,认真看,由于我是编号了,这个文档是事后写的,我就写了。发扬找问题点的作风。

(2)FAQ:

a.编译脚本下载软件包速度太慢或者直接下不动,可以在 make –j1 V=s下看看他在下哪个包,自己去baidu包的名字,会给你很多选择自己下。

b.遇到下载OpenWRT工程/框架下的工具,会涉及到git提交编号:例如

 

 

黄线标出的就是git提交(commit)号:

http://git.openwrt.org/ 这是openWRT下的工程网址,可能是为了专门构建openWRT路由环境,由社区专门开发的工具集合。

上面的图片这些文件怎么找出来,找出来如何改?

uhttpd为例:这个最新版本的OpenWRT是在2015-08-17取用uhttpd构建的,找不到相关日期,就找最接近的。会看到:

 

 

点击commit链接进入:

 然后点击 snapshot 下载。

下载后,解压你下载软件包,把文件夹命名为编译出错的文件夹名字,其实就是删掉后面的部分提交号。然后压缩成下载时包名。就是我上面截图的包名形式。放到dl文件夹。

5.编译完成后的事情:这里可以在网上找,在虚拟机上安装openwrt,文章很多。大概是这些事:

(1)把bin/x86下的镜像:openwrt-x86-generic-combined-ext4.img.gz转换成虚拟机要求的格式

(2)新建虚拟机,启动openwrt。

6.网络配置:这里非常重要!!![强烈建议把实际的家用路由器用熟练,明白原理]

(1)两张网卡必不可少;一张作为wan口,一张作为lan口。实际路由器本质上就是一个wan口,一个lan口。你看到那么多lan口,实质上用到的就一张网卡分成vlan桥接在一起的。

(2)一定要分清你的openwrt虚拟机是哪个网卡作为lan口,哪个作为wan口。简单的方法:ifconfig后看看br-lan的mac地址和哪个网口的mac地址一致。一致的那个就是lan口,反之就为wan口。

修改配置文件/etc/config/network,来决定lan口和wan口与网口的对应关系。

 

wan口用来让你访问Internet,凸显这是个可用的路由器。wan口的dns服务器设置成电信dns地址61.139.2.69(四川成都),我家用的电信的

a.把 interface \'lan\'的ip改一下,我改的是192.168.4.1防止和家里的网关冲突。

b.wan口网卡的虚拟机设置,我用的是桥接模式,所以wan的ip配置和我的电脑一样

在虚拟机里有两种设置方法:

a.设置成NAT模式,直接可以共享宿主机的IP,让openwrt上网;在openwrt上ping网址检验;不需要再openwrt中设置对应网卡;只能用接入该路由器的虚拟机访问web管理

我用的是windowsXP虚拟机,效果很不好。也能用ssh访问。

b.设置成桥接模式,这个时候,要想openwrt能ping通网址,就要在openwrt中把作为wan口的网卡作为和pc一样的电脑设在同一网段内;可以在宿主机上用该ip访问web管理

 

,我自己的pc,效果很好。也能连ssh。

 

 

        配置dns文件/etc/resolv.conf为192.168.0.1,配置网关 route add default gw 192.168.0.1 我家的真实路由器lan网关

c.lan口网卡的虚拟机设置,要在虚拟机设置成内部网络

 

 

(3)额外的操作:a.关掉openwrt防火墙:/etc/init.d/firewall stop,每次外部pc在ssh连不了,web也不能登录时,请执行这个操作。

7.检验成果:

(1)在网上下了windows xp的VirtualBox镜像,导入了虚拟机。然后网卡设置为自动获取就可以。可以自己验证是否获取的OpenWRT软路由的ip。

,我的windowsXP也能上外网。

 

(2)所有的网卡在虚拟机上控制芯片都设置为第一个,PCnet-PCI II(Am79C970A),设置成其他的,有时候网络不通,不稳定。

后记:

(1)opkg update用来更新源,用过Debian/Ubunt的同学知道的,在openwrt下安装LuCI,直接用opkg安装:配置/etc/opkg.conf  这里主要是在官网下载很慢的情况下,可以采用国内的镜像。

注释掉这句,防止签名失败,不能更新。

 

欢迎答疑。。。。。,讨论。。。。。

以上是关于在PC搭建OpenWRT软路由的主要内容,如果未能解决你的问题,请参考以下文章

群晖LEDE软路由搭建原理

软路由openwrt更换网卡

软路由OpenWrt教程收集(插件开发教程,opkg安装软件教程)

在VMWare虚拟机下创建Openwrt LEDE软路由系统

软路由器怎么设置

[Linux] - 单网口 PC 搭建 LEDE 软路由