找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 1048|回复: 17

[Router OS] routeros通过container安装openwrt实现透明网关

[复制链接]
本帖最后由 fang186 于 2024-2-27 15:21 编辑

首先感谢zengkid[Router OS] routeros通过container安装clash实现透明网关stu1025e[Router OS] MikroTik-RouterOS-7.13永久L6授权 (支持各种ESXI PVE 2.5G i225 i226网卡直通)两个帖子,给了我思路。
本人一直就是一个伸手党,在ros和clash方面近乎一个白痴。爬了几天的论坛,折腾了无数次routeros通过container安装clash,无一成功。主要是知识太少,有几次container安装clash倒是成功了,但UI面板却始终搞不好。然后换一种思路,直接通过container安装openwrt,没想到竟是出乎意料的简单。当然并不是所有的编译包都能用,我试过官方的rootfs.tar.gz包,导入、运行都正常,但不能联网,盲猜是新的ntf防火墙与ros适配不好,但转换之后才10MB的容量很是诱人。

感谢Kiddin,我是用他的的定制包测试成功的,他的站点上可以定制固件,但非注册会员不能直接生成rootfs.tar.gz包(白嫖也是有限度的),我是在PVE shell里把squashfs-combined.img.gz转换成tar.gz,导入Docker Desktop,再导出为.tar包,就可以导入routeros的container了。
具体步骤:
0、环境:X86-64,pve8.1.4,虚拟安装routeros,双网卡,内网IP段:192.168.5.0/24,ROS的ip地址:192.168.5.1,openwrt地址:192.168.5.2(虚拟网卡veth1)。
1、下载自己喜欢的固件并转换成LXC可用的.tar.gz包;
请参考ethan.wong从squashfs-combined.img.gz中一键提取LXC模板的脚本,他这个太高端、大气、上档次了!我看不大懂,我是一行一行复制到pve shell执行的,当然根据自己的情况作了点小改动,然后用xftp等传输工具将openWrt.tar.gz复制到D盘根文件夹备用。
2、下载安装Docker Desktop,导入.tar.gz包转换输出.tar包
安装Docker Desktop后,打开“命令提示符”(Win+R调出运行窗口,输入cmd确定),假设.tar.gz包在D盘根文件夹,则输入 docker import d:\openwrt.tar.gz openwrt 回车,再输入docker save -o d:\openwrt.tar openwrt 回车,则会在D盘根文件夹生成openwrt.tar文件。
  1. docker import d:\openwrt.tar.gz openwrt
  2. docker save -o d:\openwrt.tar openwrt
复制代码

3、winbox登录MikroTik-RouterOS,开启容器。打开终端,输入 /system/device-mode/update container=yes ,会提示强制断电,重新启动生效。(这里在PVE里面选中虚拟机,点“重置”就可以了)

输入 /system/device-mode/print 检查状态,返回  mode: enterprise  container: yes字样表示成功了。
4、添加虚拟网卡'veth1',上传.tar包,可以用它自带的"Files"实现,不过速度感人,大概1MB/秒,我是用xftp传的,大约20MB/秒。


5、打开winbox里的终端,输入
  1. /container/add file=openwrt.tar interface=veth1 hostname=OpenWrt cmd=/sbin/init root-dir=container/openwrt
复制代码
点左边的“Container"打开容器窗口,大约几秒导入完成,状态变成”stopped“,选中,点上方的”Start“按钮,直到状态变成”running“,这些操作也可以在终端进行

  1. /container/start number=0 # 启动容器
复制代码
修改IP地址、网关等等
  1. /container/shell number=0 # 进入容器的shell

  2. vi /etc/config/network #编辑openwrt网络配置文件
复制代码
按”i"进入编辑状态,删除有关桥接config device节点(非必须),把config interface 'lan'节点里面的'br-lan'改成'eth0',改好ip地址、网关、dns后,按esc退出编辑状态,输入 :wq 退出,改完的像这个样子

  1. config interface 'loopback'
  2.         option device 'lo'
  3.         option proto 'static'
  4.         option ipaddr '127.0.0.1'
  5.         option netmask '255.0.0.0'

  6. config globals 'globals'
  7.         option packet_steering '1'

  8. config interface 'lan'
  9.         option device 'eth0'
  10.         option proto 'static'
  11.         option ipaddr '192.168.5.2'
  12.         option netmask '255.255.255.0'
  13.         option gateway '192.168.5.1'
  14.         option delegate '0'
  15.         list dns '223.5.5.5'
复制代码

不出意外的话,浏览器打开http://192.168.5.2,就见到熟悉的openwrt界面!然后在ros里面把网关和dns指向openwrt就完了,那里面住着一只小猫咪。

本人转换,可直接上传ros的tar包阿里云盘下载,由于限制了zip共享,于是加了张牛姐的相片,文件名为“3.jpg”,下载后把扩展名改成“3.zip”再解压。感谢大家多年的分享,也不设置什么回复可见之类的了。(op的用户名和密码都是root)
https://www.alipan.com/s/vXmb3DxsAqg


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的恩山、我的无线 The best wifi forum is right here.
脱了裤子放屁,没有必要的复杂。

点评

用wireguard和OSPF分流,会容易被墙吗?跟“师夷长技以制夷”相比  详情 回复 发表于 2024-4-27 20:58
您说得很对,咱就是瞎折腾! 不过容器和虚拟机互ping,延迟在0.1-0.2ms之间,觉得还是可以的。  详情 回复 发表于 2024-2-27 15:23
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
mantouboji 发表于 2024-2-27 15:20
脱了裤子放屁,没有必要的复杂。

您说得很对,咱就是瞎折腾!
不过容器和虚拟机互ping,延迟在0.1-0.2ms之间,觉得还是可以的。

点评

去搜索我的帖子,用wireguard和OSPF分流,不需要什么狗皮旁路由,更不需要什么OpenWRT这么庞大的玩意儿。  详情 回复 发表于 2024-2-27 17:22
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

rootfs.tar.gz 可以从 openwrt 下载站获取
https://downloads.openwrt.org/releases/23.05.2/targets/x86/64/

或者 immortalwrt 下载站也可以
https://downloads.immortalwrt.or ... 5.1/targets/x86/64/

进入容器后用 uci 修改 ipv4/gateway/dns 更简单
https://openwrt.org/docs/guide-u ... wrt_as_clientdevice

至于 app,可以 opkg install open 小猫咪,也可以通过 wget 安装 shell 小猫咪

点评

下载后要转换就可以了,在PVE下用如下命令可以成功转换,先上传到/tmp tar -xzvf /tmp/rootfs.tar.gz -C /tmp/rootfs tar -cvf rootfs.tar -C /tmp/rootfs . docker import rootfs.tar openwrt:latest docker save -  详情 回复 发表于 2024-4-27 22:09
我也比较喜欢用immortalwrt,但是用这个里面的 rootfs.tar.gz,用不了,导入失败,不知道为什么,打开看和楼主提供的结构都好像不一样  详情 回复 发表于 2024-4-27 20:57
试过官方的,下载包只有4MB多一点,转换后也才11MB左右,在PVE LXC容器里开嵌套可以联网,但在ROS的容器里不行,我也不知道啥原因,求大佬指点一下,如果这个能行的话,体积应该会比我现在用的小一半左右。 谢谢提醒  详情 回复 发表于 2024-2-27 16:14
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
edywh 发表于 2024-2-27 15:56
rootfs.tar.gz 可以从 openwrt 下载站获取
https://downloads.openwrt.org/releases/23.05.2/targets/x86/6 ...

试过官方的,下载包只有4MB多一点,转换后也才11MB左右,在PVE LXC容器里开嵌套可以联网,但在ROS的容器里不行,我也不知道啥原因,求大佬指点一下,如果这个能行的话,体积应该会比我现在用的小一半左右。
谢谢提醒,的确专用的uci命令要好用一些,原来没学过

点评

通常 Linux distro 用 docker 部署 openwrt 容器,需要新建 macvlan 网络接口,但 routeros container 不支持 macvlan,需要使用 veth 虚拟以太网接口  详情 回复 发表于 2024-2-27 17:43
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

fang186 发表于 2024-2-27 15:23
您说得很对,咱就是瞎折腾!
不过容器和虚拟机互ping,延迟在0.1-0.2ms之间,觉得还是可以的。 ...

去搜索我的帖子,用wireguard和OSPF分流,不需要什么狗皮旁路由,更不需要什么OpenWRT这么庞大的玩意儿。

点评

您那个太复杂太高端了,作为一个小白我看不懂,只能用容量换低难度。再者openwrt作为一个轻量化平台,添加各种插件也方便,适合和我一样不爱学习的低端小白而已。  详情 回复 发表于 2024-2-27 18:42
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

fang186 发表于 2024-2-27 16:14
试过官方的,下载包只有4MB多一点,转换后也才11MB左右,在PVE LXC容器里开嵌套可以联网,但在ROS的容器 ...

通常 Linux distro 用 docker 部署 openwrt 容器,需要新建 macvlan 网络接口,但 routeros container 不支持 macvlan,需要使用 veth 虚拟以太网接口

点评

是用的veth接口,官方包和定制包的最大区别是一个防火墙用的nftable,另一个是iptable,怀疑问题出在这里。但我人笨,不懂nftable规则配置,只有等以后慢慢学习。 两者容量差别是很明显的,官方包安装pw和猫咪后占用  详情 回复 发表于 2024-2-27 18:57
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
mantouboji 发表于 2024-2-27 17:22
去搜索我的帖子,用wireguard和OSPF分流,不需要什么狗皮旁路由,更不需要什么OpenWRT这么庞大的玩意儿。 ...

您那个太复杂太高端了,作为一个小白我看不懂,只能用容量换低难度。再者openwrt作为一个轻量化平台,添加各种插件也方便,适合和我一样不爱学习的低端小白而已。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
GNUisNotUnix 发表于 2024-2-27 17:43
通常 Linux distro 用 docker 部署 openwrt 容器,需要新建 macvlan 网络接口,但 routeros container 不 ...

是用的veth接口,官方包和定制包的最大区别是一个防火墙用的nftable,另一个是iptable,怀疑问题出在这里。但我人笨,不懂nftable规则配置,只有等以后慢慢学习。
两者容量差别是很明显的,官方包安装pw和猫咪后占用空间不到120MB,而定制包仅安装完猫咪就有245MB。内存占用前者也只有后者的一半左右。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

你看了一下ROS的CPU利用率吗,我前段时间试用最新版的openwrt,ROS的CPU利用率会一直保持在100%

点评

[attachimg]675533[/attachimg]  详情 回复 发表于 2024-2-28 13:01
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

兄弟你的ros容器链接失效了

点评

链接: https://pan.baidu.com/s/1UgP9pLQOeSkcGSkj4E0nRg?pwd=wga5 提取码: wga5  详情 回复 发表于 2024-2-28 12:50
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

还用clash???????

点评

对,就是因为我配置不好容器安装clash,于是心一横,塞了个openwrt进去!  详情 回复 发表于 2024-2-28 13:04
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
本帖最后由 fang186 于 2024-2-28 12:51 编辑
lspzj 发表于 2024-2-27 23:46
兄弟你的ros容器链接失效了

链接: https://pan.baidu.com/s/1UgP9pLQOeSkcGSkj4E0nRg?pwd=wga5 提取码: wga5
阿里恶心人啊
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
lyy506 发表于 2024-2-27 22:13
你看了一下ROS的CPU利用率吗,我前段时间试用最新版的openwrt,ROS的CPU利用率会一直保持在100% ...


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
319226 发表于 2024-2-28 02:06
还用clash???????

对,就是因为我配置不好容器安装clash,于是心一横,塞了个openwrt进去!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-29 21:30

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表