在 vps 上安装 openwrt

 和去年一样 virmach 黑五又开启了耍猴模式,今年的闪购除了几个神机其它都没有诚意,在这几个神机中有一个 64m 内存的小鸡,由于是 kvm 虚拟化,这类内存超小的机器几乎无法使用任何系统,虽然咩抢到这个机器但想起我还有 virmach 最早成立的时候那个 128m 的活动套餐,最早是 openvz 架构,由于 openvz6 不再受到支持时,virmach 给转成 kvm 了,内存加到了 384m, 然而加了内存也仅是能启动一般 linux 而已,事实上,安装 ubuntu16 之后关机都成问题,然后突然想起,还有 openwrt 可用,于是便装了 openwrt 并写一下安装过程.

准备

  • 一个 kvm/xen/vm 小鸡 (像 ovz/lxc 这类的小鸡肯定是没救了)
  • 一个发行版 linux 的 iso/netboot/ 救援系统 (可选,也可以在普通系统下进行,但是有一定几率造成无法启动)
  • openwrt 系统 (直接用官方的即可)

关于救援系统,openwrt 安装方法是使用 dd 写入硬盘,其实可以在一般系统中进行安装,只是一般系统在安装时可能会读写硬盘,从而破环安装的数据导致无法启动 (已经遇到过几次了), 而救援系统往往是将内存的一部分作为虚拟磁盘使用,在救援系统中,系统本身的读写不会影响真实硬盘.

安装

virmach 的 solusvm 提供了救援模式,救援系统包含了 2 个纯 linux 内核系统和一个 Roaring Lionus, 于是便使用了 Roaring Lionus.
在这里不推荐使用纯内核 liunx, 像 Roaring Lionus 这类救援系统往往基于 debian 封装,包含了软件包管理器,因此可以通过 apt 安装我们需要的工具,而纯 linux 内核则只能自己想办法上传自己编译或网上寻找的需要的工具,此外,如果服务商不提供这类救援系统也不要紧,可以可以挂在任意发行版的 iso, 发行版的 iso 几乎全部都带有一个救援模式的 shell, 可以通过它来安装,如果没有任何发行版的 iso, 提供 netboot 相关的 iso 的话也可以用其加载发行版的 netboot 程序来进入发行版的救援模式,若机器不提供任何 iso, 我们也可以通过 gpxe/ipxe 进入一个 netboot 程序 (如:http://boot.salstar.sk/).

回到正题,我们进入 Roaring Lionus 之后首先要安装 wget,Roaring Lionus 是基于 debian 封装的,则可以使用 apt update && apt install wget 安装,安装后我们先查看分区情况,通过 fdisk -l 确认硬盘信息,找到 vps 的硬盘,通常根据 vps 的硬盘大小来判断,比如 vps 的硬盘 10g, 在里面看到 /dev/vda1 为 8g /dev/vda2 为 2g 之类的,则可以确定 vps 的硬盘是 /dev/vda, 然后我们开始 dd 安装 openwrt

机器运行以下命令安装 openwrt 18.06.5 x64, 其中,/dev/vda 是 vps 的硬盘

  • wget -qO- 'http://downloads.openwrt.org/releases/18.06.5/targets/x86/64/openwrt-18.06.5-x86-64-combined-ext4.img.gz'|gunzip|dd of=/dev/vda

这里使用 openwrt 官方的影像,当然也可以选择不同版本或第三方的影像,只要支持即可,文件分区类型的话请无论如何请使用 ext4 格式的影像,squashfs 格式会有问题,另外也可以尝试 x86 的影像,这里之前在物理机和几个 vps 尝试 x86 版本都是有问题的,此外 combined 表示已经集成一些组件了,若要保持最小可以装 rootfs 的,但是 rootfs 似乎没有集成 virtio 的驱动可能会导致问题.

装好后通过救援模式启动的,在面板退出救援模式,通过 iso 启动的在面板取消挂载 iso 并重启,通过 ipxe/gpxe 启动的直接重启即可,重启后进入 openwrt 系统,这时还需要设置一下网络信息才可以使用.

在面板找到 vps 的 network 信息,solusvm 在机器详情下面的 network 选项卡,点击 ip 弹出的新选项卡里有网关子网的信息,开始通过 vnc 配置网络接口和防火墙.

先配置接口,通过指令 vim /etc/config/network 编辑接口信息,如果不出意外,eth0 被设置为了 lan, 将 config interface 'lan' 中的 lan 改成 wan, 然后将 option type bridge 这行注释或删除,然后修改 ip 和 /netmask 为 vps 的 ip 和子网,然后在子网下面加一行 option gateway '192.168.1.1', 这个 192.168.1.1 换成 vps 的网关然后保存并执行 `/etc/init.d/network
restart`

然后配置防火墙,vim /etc/config/firewall 编辑防火墙信息,找到 option name wan 这个 zone, 把这 zone 的 input 和 forward 后面的 REJECT 或 DROP 改成 ACCEPT, 然后保存并执行 /etc/init.d/firewall restart

然后就可以通过 ip 打开 luci 界面了,进去之后先改密码,改完密码之后找到 network->dhcp and dns, 在 General Settings 选项卡中找到 DNS forwardings 设置 dns, 然后切换到 Resolv and Hosts Files 选项卡勾选 Ignore resolve file 然后点击 save & apply 即可

如果需要中文,切换到 system->software 先点击 update 然后在 Filter 里输入 luci-i18n-base-zh-cn 然后点击 find package 然后安装即可.

评论

此博客中的热门博文

廣東話客家話歇後語A~Z

一键网络重装系统,一键DD– 魔改版