zoukankan      html  css  js  c++  java
  • openwrt软路由折腾教程

    前言

    最近一直想在家里弄个服务器,苦于(贫穷)没有想好能用来做哪些事情,经过一番调研下来,发现有个叫做“软路由”的新名词,于是就研究了一下。经过这几天的一番折腾大概知道这玩意儿应该怎么玩了,写个教程记录一下。

    正巧最近是618时间,可能会趁此机会淘一些E3、E5之类的处理器,搭配一个小主板,自己组一个小机器装软路由来主路由。

    安装虚拟机

    准备一台Ubuntu系统虚拟机,我使用的操作系统版本是Ubuntu 20.04 LTS。

    安装教程网上很多,自行搜索。

    注意:

    1. 分配尽量多的CPU,后期可降低。
    2. 分配40G左右磁盘。
    3. 记住设置的用户名和密码。
    4. 最好有一个能够科学冲浪的工具。

    环境初始化

    进入虚拟机之后,出现登录界面,看到的是你刚刚设置的用户名的名称,然后输入密码进行登录。

    我这里的用户名是huan

    修改root密码

    sudo passwd root
    

    需要输入两次相同的密码。

    环境准备

    系统更新

    sudo apt-get update -y
    

    安装工具

    sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 python2.7 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib antlr3 gperf wget curl swig rsync net-tools
    

    开启ssh登录

    Ubuntu默认没有开启ssh服务,需要手动安装

    sudo apt-get install openssh-server -y
    

    查看IP

    ifconfig
    

    记录下IP地址并使用xshell等工具连接,如何查看IP及使用xshell工具,请自行搜索。

    编译准备

    源码拉取

    cd /opt
    sudo git clone https://github.com/coolsnowwolf/lede
    

    使用sudo命令创建、下载的文件,所属用户和组都属于root,编译openwrt过程中,禁止使用root用户来操作。因此需要将文件目录所属用户和所属组切换为非root权限用户(我这里所属用户和组都是huan)

    sudo chown -R huan:huan /opt/lede/
    

    组件安装

    cd /opt/lede/
    ./scripts/feeds update -a
    ./scripts/feeds install -a
    

    配置

    make menuconfig
    

    会弹出来如下设置页面

    这里是选择在虚拟机跑lede,所以进入Target System,移动光标到x86,按键盘上的Y选中。如果后期要将lede安装到其他平台,就需要选择对应的目标系统。

    LuCI

    LuCI相当于是lede管理工具,包括主题,插件等。

    根据需求,选择相应的主题和插件,如果刚开始不太了解,可以先跳过这一步的配置,后期熟悉之后就可以按需添加。

    配置好之后,保存,回到Terminal终端。

    下载依赖

    make -j$(($(nproc) + 1)) download
    

    $(($(nproc) + 1))意思是使用CPU核数+1个线程来运行。

    开始编译

    make -j$(($(nproc) + 1))
    

    等待编译,最好有科学上学工具,8核处理器整个编译过程下来大概需要2个多小时。

    编译完成

    编译完成之后,会将编译好的文件保存在bin/targets/x86/64目录下

    因为之前选的Target System是x86,因此会在targets目录下生成x86平台的固件。如果选择其他平台,则会在bin/targets目录生成对应平台的目录。

    查看目录

    可以看到这里已经生成了x86-64的文件,具体每一种文件代表什么含义,请参考这篇文章openwrt攻略(正确用法)

    这里我选择的是openwrt-x86-64-generic-ext4-combined.vmdk

    如果你的目录下没有这个vmdk后缀的文件,但是肯定会有img.gz后缀的文件,在/home/huan目录(家目录)创建lede目录,将img.gz拷贝到/home/huan/lede目录下方便后续使用。

    mkdir /home/huan/lede
    

    家目录是创建用户时根据不同用户名,在/home目录下生成对应用户名的目录,该用户对该目录拥有增删改查的权限,而不需要sudo等命令。

    cp /opt/lede/bin/targets/x86/64/openwrt-x86-64-generic-ext4-combined.img.gz /home/huan/lede
    

    解压并转换成vmdk文件。

    gunzip openwrt-x86-64-generic-ext4-combined.img.gz
    
    qemu-img convert -f raw -O vmdk  openwrt-x86-64-generic-ext4-combined.img openwrt-x86-64-generic-ext4-combined.vmdk
    

    vmdk是VMware可识别的虚拟机文件,可以直接加载并使用。

    下载文件

    打开新的终端页面,找到一个本地目录,进入该目录后,使用命令进行远程下载。比如在D盘:

    [C:~]$ d:
    [D:]$ scp huan@10.4.7.128:/home/huan/lede/openwrt-x86-64-generic-ext4-combined.vmdk .
    

    如果提示输入yes/no,那么输入yes,然后输入密码。

    至此,编译相关工作已完成。

    安装Openwrt

    到这里,已经很简单了。

    创建虚拟机

    打开VMware,新建虚拟机,没有特别说明就是无脑下一步。

    • 安装客户机操作系统这里选择稍后安装操作系统。
    • 选择客户机操作系统这里选择 其他 Linux 5.X或更高版本
    • 虚拟机名称,选择安装目录,根据自己喜好设置。
    • 网络类型选择 使用桥接网络

    最重要的一步,选择磁盘这里

    • 选择使用现有虚拟磁盘,找到下载到D盘下的vmdk文件。

    启动虚拟机

    然后虚拟机创建完成,可以直接启动。

    如果你看到到了IPv6那里就不动了,可以试试按一下回车,可以感受一下,什么是惊喜。。。

    配置IP

    设置lan口IP地址为自动获取(DHCP)

    uci set network.lan.proto=dhcp
    

    保存设置

    uci commit network
    

    uci是类似于centos中的systemctl或Ubuntu的service命令。

    重启网络服务,使配置生效

    /etc/init.d/network restart
    

    查看IP,这里如果用ifconfig可能看不全IP信息,可以尝试使用其他命令

    ip addr
    

    嗯,是那个熟悉的味道。

    修改密码

    passwd root
    

    输入两次,回车。

    服务查看

    在浏览器中输入IP地址,进入页面。

    OK, Enjoy yourself.

    友情提示

    可以自行在网上找到别人编译好的固件,跳过编译环节,不过可能存在后门等风险,请自行甄别。

  • 相关阅读:
    总结
    webview细节注意
    对图片的处理
    介绍并提高app中WebView的性能
    工作中新接触的问题
    iOS环信
    Framework静态库制作方法
    多线程GCD
    iOS开发之地图与定位
    ARC内存管理机制详解
  • 原文地址:https://www.cnblogs.com/liuhuan086/p/14892690.html
Copyright © 2011-2022 走看看