少女祈祷中...

需求

  • 因为使用的 Linux 作为主力机,而在 Linux 上并没有一个为系统代理的东西。虽然修改环境变量能实现部分应用的代理,但总归还是太麻烦了。特别是用 docker 拉镜像的时候,只能用第三方应用下好再导入,费时费力。
  • 至于为什么用 vbox 而不是 VM 。因为我这 VM 在解决Ubuntu升级内核导致的无法安装VMware模块问题后玄学断网,我也懒得弄了。

步骤

配置OpenWRT镜像

  • 官网下载镜像。根据需求下载,我一般下载的是generic-ext4-combined-efi.img.gz

  • 下载完后解压,得到openwrt-23.05.5-x86-64-generic-ext4-combined-efi.img

    1
    gzip -d openwrt-23.05.5-x86-64-generic-ext4-combined-efi.img.gz
  • 转化为 VDI

    1
    vboxmanage convertfromraw --format VDI openwrt-23.05.5-x86-64-generic-ext4-combined-efi.img openwrt-23.05.5-x86-64-generic-ext4-combined-efi.vdi
  • 进入 vbox,管理/工具/虚拟介质管理中注册刚刚转化的 VDI 文件。(后续可在此修改大小)

  • 新建虚拟电脑。虚拟硬盘选择刚刚注册的。

配置OpenWRT的网络

  • 安装完之后在 vbox 中设置网络为桥接网卡

  • 进入虚拟机后设置网络为自己电脑所在网段

    1
    vim /etc/config/network
  • 显示内容如下(不用管其他的直接改ipaddr就行了)

    1
    2
    3
    4
    5
    6
    config interface 'lan'
    option device 'br-lan'
    option proto 'static'
    option ipaddr '192.168.1.1'
    option netmask '255.255.255.0'
    option ip6assign '60'
  • 修改完保存重启虚拟机。之后就可以通过修改后的ip访问openWRT的后台了。(默认帐号密码一般是root password)

进行网络配置

  • 输入openwrt的ip进入管理页面,然后到网络那设置一个wan口。选择DHCP,设备选择eth0

  • 然后修改lan的dns、网关等信息,保证与真机一致。保存应用后就可以上网了。

  • 或者直接修改配置文件/etc/config/network中的内容如下(最好去管理页面那设置,直接修改配置文件好像会出问题):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    config interface 'lan'
    option device 'br-lan'
    option proto 'static'
    option ipaddr '空闲的ip'
    option netmask '真机的子网掩码'
    option option ip6assign '60'
    option gateway '真机的网关地址'
    list dns '真机网络的DNS'

    config interface 'wan'
    option proto 'dhcp'
    option device 'eth0'

网络代理的配置

  • 输入passwd设置密码,然后通过 ssh 连接。

    1
    ssh root@刚刚设置的ip
  • 换源,参考清华源

  • OpenClash依赖的是dnsmasq-full,所以需要移除默认的dnsmasq,否则会导致OpenClash安装失败

    1
    opkg remove dnsmasq && opkg install dnsmasq-full
  • 下载OpenClash

    1
    wget https://github.com/vernesong/OpenClash/releases/download/v0.46.050-beta/luci-app-openclash_0.46.050-beta_all.ipk -O openclash.ipk
  • 网络不畅可自己挂梯子下到本机然后上传。
    上传 OpenClash 应用包

  • 添加luci-compact并重启,否则会提示进入 luci 页面错误

    1
    2
    opkg install luci luci-base luci-compat
    reboot
  • 然后就可以在Services/OpenClash看到了。之后就是按照图形化的提示配置了。
    配置 OpenCLash

  • 配置完后 OpenWRT 会没有网络。

使用

  • 因为我只是单纯的自己用所以直接在网络设置中修改网关的地址为 OpenWRT 的地址就可以了。(注意不要设置动态MAC)

  • 局域网设备同理,如果可以访问 OpenWRT 地址但无法上网的话,应该是路由转发没开。查询命令(Ubuntu)如下:

    1
    sudo ufw status verbose
  • 开启路由转发(允许所有路由流量)

    1
    sudo ufw default allow routed
  • 关闭路由转发(默认拒绝所有路由流量)

    1
    sudo ufw default deny routed

参考文章

虚拟 openwrt
旁路由的原理与配置一文通
折腾虚拟机里的OpenWrt做代理用网关
VirtualBox虚拟机安装openwrt供本机使用
OpenWrt安装使用OpenClash
在 VirtualBox VM 中安装 OpenWRT