opewrt软路由安装
方案一:windows系统通过 hyper-v 安装OP系统
前言
配置 12100 8Gx2 3200 512G
环境 win11 hyper-v
硬件选择
根据自身所需的功能选择合适的硬件,最开始我是想利用家里的公网搭建服务器,安装些MQTT服务器个人博客之类的,所以挑选了x86 12100处理器,一旦处理器选高了,主板其他配件也得跟得上,不过自己组装的话价格会低些,我的大概花费是1600。直接一步到位。
不过我这个硬件也是没选择好,十二代处理器确实快,可我当时选的是12100,只有四个核心,就导致添加虚拟机的数量受到了限制,当时就该选个I5的处理器。或者是安装docker,也可以,不过windows中用docker很难受。linux还不是很熟。
环境选择
最开始是打算装ubuntu系统,但是装完后发现用ubuntu还得加虚拟机才能装软路由,索性换成windows系统,用windows自带的Hyper v安装软路由。如果是单纯搞软路由、NAS之类的,最好安装esxi虚拟机
固件选择
环境搭建好就该选择合适的固件,openwrt因为开源,所以衍生出很多很多的版本,有的版本稳定,有的版本功能多,有的自带docker、istore等用起来非常方便,最好是安装固件时就选好所需的插件要求,否则等之后再安装插件就麻烦的多了,找插件是一个问题,安装插件更是个难题,尤其是某些固件不稳定,安装插件结果把op系统搞坏了,这才难受。我之前手动安装一个插件结果op的管理界面出不来了,巨难受,关键是服务器在家里装的,我在省外,最后又在虚拟机里装了个ikuai系统,设置好拨号连接后,又将主路由切换成ikuai,又重新装了个op作为旁路由,这才解决了这个问题。
推荐选择all in版的插件,省的之后再安装之类的插件,最好是带docker和istore版的,istore安装软件相当方便,自带图形化,插件又多,op自带的软件包是插件又少还不好安装,巨laji。
组网选择
组网相当的重要,不要一上来一股脑的装完op就完事了,不然之后遇到的问题很多很多,就例如上面提到我的问题,就是个案例,我上面的悲剧还没结束,ikuai也是个软路由,但由于软件不开源,所以功能少,但很稳定,所以我就再虚拟机装了ikuai+openwrt,即使openwrt搞坏了,起码ikuai还有网,不会导致和服务器失联。但恶心的是ikuai系统后来莫名其妙拨号失败了,搞得家里也没网了,又让我爸帮我插回原来的硬路由器上拨号。
简而言之,我认为组网最佳方式是 光猫+硬路由拨号+openwrt旁路由 目前为止还没发生问题。
固件安装(hyper v)
1、openwrt
将从github下载的固件镜像解压后经过 StarWind V2V Converter 工具转化成可用于hyper v的虚拟硬盘,具体操作网上教程很多。
关键点:
1. 需要先配置虚拟机交换机,虚拟交换机就是将你实际的物理网卡和之后创建的虚拟机中的虚拟网卡连接,毕竟你现在的系统是windows系统,在交换机中,定义你网卡的分配,比如哪个是wan口,哪个是lan口。
2. 创建虚拟机选择二代虚拟机,关闭动态内存,添加后在设置中选择合适的核心数量,用到的网卡,比如是旁路由添加一个lan口即可,如果是作为主路由选择所有的网卡,记住哪个是wan,哪个是lan之后物理接线别搞错。
3:系统开机后先 输入 vi etc/config/network
进入网卡配置界面,修改lan口的IP地址,例如作为旁路由则选择主路由的IP网段,如192.168.1.2,切记旁路由要将主路由dhcp的网段设置靠后些,如果旁路由和客户端ip地址重合,会使旁路由网速非常慢,旁路由可以顺便把网关改成主路由的IP地址,关闭dhcp服务器;主路由将IP地址随便设置即可。
4、openwrt 装完后 必须将lan口物理机连接设备才行,如果不添加则进不去管理界面。
2、Ikuai
Ikuai安装就很简单了,从官网下载iso镜像直接安装就行,网上教程很多。需要注意的是要设置好IP地址,网卡和虚拟机网卡的绑定,必须确保wan后lan都连接上。
BUG总结
openwrt作为作为主路由使用时,一般LAN口会比较多,但是在配置lan口时。系统会出现个bug,就是不管添加几个lan口,只有最开始添加的lan口可以使用,即使这两个lan口的网卡一米一样,也是不行,当时困扰了我很久,最后是通过先创建两个LAN口,但是开启一个LAN口,第一个测试可以使用了,再关闭第一个测试第二个,两个都可以用了,再将第一个lan口桥接第二个lan口。只有这样才能让两个lan口都有网。很奇葩。
添加插件的时候,注意找到luci的插件,不然装了也没有管理界面。
方案二:ubuntu系统通过 docker 安装OP系统
前言
折腾这个是想在家庭服务器上做科学上网,再配合个vpn服务器搞下chatgpt。因为搭建chatgpt首先得解决网络和代理问题,之前尝试直接在linux上装clash,折腾了好久搞完了, 发现开启不了系统代理,就想着换个方法再搞 哈哈哈哈,其实最简单的方法还是在服务器的上级路由器上使用openwrt系统,这样是最方便的,但是怕影响家庭网络,还是想再折腾折腾。
开启宿主机网卡的混杂模式
ip link eth0 promisc on
开启后,openwrt才能接收到数据
eth0为连接网络的网卡
通过 ifconfig
查看当前网络状态,寻找正在使用的网卡
注意 部分网卡是不支持的
我最开始使用是主板(微星h610)自带的网卡,发现部署完openwrt后,进不去后台,而我用另一台老主机上同样的方法却一点问题都没,最后折腾了好久才发现是网卡的问题,好在我服务器主板多增了两个网卡,这才解决这个问题。
创建docker 网卡
docker network create -d macvlan --subnet=192.168.1.0/24 --gatway=192.168.1.1 -o parent=eth0 macnet
根据自己情况配置:
create -d macvlan 创建 macvlan 的网络模式,可以共享主机网络
–subnet=192.168.1.0/24 子网
–gatway=192.168.1.1 网关 主路由的网关
parent=eth0 物理网卡
macnet 新建的网卡名称
查看docker 网络 docker network ls
选择docker镜像
docker pull sulinggg/openwrt:x86_64
我在 https://hub.docker.com/ 试了好多个 发现只有一家的可以使用 https://github.com/SuLingGG/OpenWrt-Docker
注意:根据自己的系统架构选择合适的镜像,不同架构的镜像是不能使用的,尤其是注意后缀 :last 最先版的可能不是你需要的架构,不符合的架构是无法启动的,会一直重启。
启动容器
docker run --restart always --name openwrt -d --network macnet4 --privileged sulinggg/openwrt:x86_64 /sbin/init
我使用的是x86架构 64位
–restart always 总是重启
–name openwrt -d 容器名称
–network macnet4 选择容器网络 就是刚才你创建的docker网卡名称
–privileged 赋予特权
sulinggg/openwrt:x86_64 镜像
/sbin/init 文件位置
修改容器网络配置
镜像中的默认网络配置需要修改,docker exec -it openwrt bash
进入容器系统vi /etc/config/network
修改网络配置
config interface 'lan' |
将lan口下的 IP地址和网关进行修改,这是我修改后的
修改完后 reboot
重启容器
即可在搜索 刚才设置的IP地址进入路由器后台 默认密码 :password
注意:如果你是外网访问服务器的内网IP地址,需要做端口转发,或者内网穿透。
修改后台网络配置
登录后台网站后,点击 ‘网络’ ->’接口’->’lan’ 修改配置 删除自定义DNS ,在物理配置中取消桥接。
{
在防火墙 自定义里面 增加
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE |
缺哪个 加哪个 我是少第一个 所以我只填第一个
}这里面的貌似没必要!
这基本就配置好了
使用openclah 还未成功
发现添加完订阅文件后依然无法使用,还是跟上期的 在linux 装clash 一样,打不开系统代理,我感觉问题出在服务器的系统代理上了,还有一点,
可能这个路由器无法联网,我在安装配置文件时,一直提示下载失败,然后手动上传的配置文件。
使用passwall
使用passwall还是正常配置 添加完订阅文件后,openwrt依然无法连接百度和谷歌,这时需要点击DNS 将缓冲解析结果 和 chinadns-ng的对勾删除,然后点击清空IPSET 在点击保存应用,将右上角未保存的应用也保存下,这时候测试网络就发现可以ping同百度和谷歌了。
使用ipsec vpn
ipsec里面客户端地址段设置为你的内网网段,比如192.168.1.250/24,dns填写内网网关,比如192.168.1.1;开启ipsec,在网络-接口里添加新接口,静态地址,IP地址随便填一个不是你内网网段的就可以,比如10.10.100.1,子网掩码随便填,比如255.255.255.100;其它不用管;物理设置里选择ipsec0接口;防火墙设置如果有V P N选项就选V P N,没有就不用选,保存后到网络-防火墙基本设置里面,转发改为接受即可(有V P N区域可选就不用改)
解决
最终clash正常运行,却发现依然无法连接外网, 原因是浏览器或者是你正在运行的命令窗口没有指向clash的 7890端口
需要添加
root@linux:/opt/clash# export http_proxy=http://127.0.0.1:7890 |
方案三:ubuntu 安装vmware 安装op
先讲 .img文件转化为 .vmdk 文件,使用 StarWind V2V Converter 这个软件转化一直失败,换了几个版本也不行,最后通过qemu-img软件解决,首先下载他的压缩包,解压后在文件夹中通过命令行转化.\qemu-img convert “D:\source.img” -O vmdk “D:\dest.vmdk”