需求
- 因为使用的 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
6config 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
12config 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
网络不畅可自己挂梯子下到本机然后上传。
添加
luci-compact
并重启,否则会提示进入 luci 页面错误1
2opkg install luci luci-base luci-compat
reboot然后就可以在
Services/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