前段时间将家里闲置的树莓派拿了出来,在一番改造安装后,已经成为了家庭的媒体共享中心。不仅可以挂 PT 刷上传获取最新优质影视资源,也可以通过 Samba DLNA WebDAV 等方式将资源共享给多个终端使用,如电视、手机,还可以当作家庭内部共享网盘,在没有装内网文件传输软件时可以拿来中转,十分的方便。之后便想到我的一个云主机平时做的事情很少,所有的任务都可以通过 OpenWrt 来完成,并且由于 OpenWrt 自带网页管理,相比起来之前每次都要 SSH 连上去管理要方便不少,于是开始着手将 OpenWrt 安装到云上。
前提
想要安装的前提有不少。一,云服务需要支持在线 VNC,否则在安装后将无法配置与使用。二,云服务需要支持(自定义)ISO 启动,这样我们才可以用硬盘之外的系统对硬盘进行修改。
开始
此文以 Vultr 为例来说明。由于安装的是原本为路由器设计的系统,所以云服务器的配置可以选择的余地很大,最小配置的服务器也完全可以。选择一个服务器,进入详细信息页面,在 Settings – Custom ISO 中选择 Upload/Manage,将 Ubuntu 16.04 的安装镜像下载到云服务器中 http://releases.ubuntu.com/16.04/ubuntu-16.04.6-desktop-amd64.iso
。之后返回 Custom ISO,选择刚下载好的镜像,点击 Attach ISO and Reboot。
之后我们打开 VNC,进入 Ubuntu 的安装界面,选择 Try Ubuntu 之后稍等便进入桌面环境。按下 Ctrl+Alt+T 打开 Terminal。接下来开始输入命令。
首先是切换到 root
用户。
sudo -i
之后选择 x86_64 版本的 OpenWrt 固件,下载。目前最新版本号为 19.07.2。
wget http://downloads.openwrt.org/releases/19.07.2/targets/x86/64/openwrt-19.07.2-x86-64-combined-ext4.img.gz
解压。
gzip -d openwrt-19.07.2-x86-64-combined-ext4.img.gz
写入硬盘镜像。
dd if=openwrt-19.07.2-x86-64-combined-ext4.img of=/dev/vda
经过验证,此时结束并不能成功启动,会提示 XZ-Compressed data is corrupt
。接下来调整分区大小。首先清除分区的日志特性。
tune2fs -O ^has_journal /dev/vda2
之后修改分区大小。
fdisk /dev/vda
按 p
,列出分区的详细信息。需要记住 vda2 分区的起始位置,我这里是 33792
。按 d
删除分区,接着按 2
表示选择删除第二个分区即 vda2。按 n
新建分区,接着按 p
表示建立主分区,接着按 2
表示新建分区作为第二个分区,接着输入新分区的起始位置,即之前记下的位置,我这里是 33792
,接下来询问 Last sector
时无需输入直接回车即可。最后按 w
保存修改,按 q
退出。之后是调整文件系统大小,让系统真正可以认出及使用真实分区。
resize2fs /dev/vda2
再检查一下分区是否存在问题。
e2fsck /dev/vda2
最后再加上日志。
tune2fs -O dir_index,has_journal,uninit_bg /dev/vda2
此时可以回到 Vultr 的管理面板中,在 Custom ISO 中选择 Detach ISO 并重启云服务器,再重新打开 VNC,就可以看到 OpenWrt 的启动了。
配置
在 VNC 中看到启动日志停止滚动后,随意按下按键即可进入 OpenWrt 管理后台。
第一件事就是修改网络设置。
vi /etc/config/network
将其中的 lan
口配置删除并添加以下配置。
config interface 'wan'
option ifname 'eth0'
option proto 'dhcp'
config interface 'wan6'
option ifname 'eth0'
option proto 'dhcpv6'
option reqaddress 'try'
option reqprefix 'auto'
此处修改的前提是你的云服务器是使用 DHCP 获得 IP 地址的,否则需要自己手动修改 IP 配置。然后重启网络模块,云服务器就可以连上网络了。
/etc/init.d/network restart
之后再将防火墙关闭就可以使用网页配置了。
/etc/init.d/firewall stop
此时在浏览器中输入服务器的 IP 地址即可看到 OpenWrt 的 LuCI 界面了。
其中,防火墙需要打开 80 端口及 443 端口以便在重启后还可以继续连接。