一.介绍RouterOS,大名鼎鼎的软路由系统,简称ROS,我是一直知道但是没咋着用。最近某P总给我介绍了这货的一个特殊版本,CHR版,全称Cloud
Hosted
Router,简而言之就是跑在云服务器或者说是虚拟机(虚拟环境)下的特殊版本,默认开放全功能,但是限制端口速率为1Mbit,适合用于演示和学习。
当然啦,我肯定不止拿来学习的,还得搞点事对吧,这个版本的特殊之处在于授权便宜,而且不像常规的L系列授权限制各种用户数之类的,这个版本授权限制的就是速度,
CHR介绍
CHR(Cloud Hosted Router) 是用于在虚拟机上运行的 RouterOS
版本,它支持x86_64架构,支持大多数流行的虚拟化技术,如 VMWare, Hyper-V, VirtualBox, KVM 等。 CHR
拥有 RouterOS 的所有功能,但是授权模式不同于其他的 RouterOS 版本。
CHR 的授权比较宽松,在你购买授权后,可以无限制的更换运行介质(其实就是更换硬盘),只要重新 renew 一次即可。
CHR 授权
CHR 有4个授权级别:
免费版 (在官网注册账号后,可享2个月的免费试用时间)
p1 (永久授权-1,官网售价 $45,可在淘宝上搜索中国代理商,价格一般是¥160-190)
p10 (永久授权-10,官网售价 $95)
p-unlimited (永久授权-无限制版,官网售价 $250)
下表为各授权级别的限制比较
[td]
LICENSE | 带宽限制 | 售价 |
免费 | 1Mbit | 免费 |
P1 | 1Gbit | $45 |
P10 | 10Gbit | $95 |
P-Unlimited | 无限制 | $250 |
看上去美滋滋好嘛,因为p1授权等同于L4授权,便宜的一逼简直(因为实际上你去淘宝或者官方代理那儿买基本上200人民币左右就能拿下了)
同时CHR版本和普通版本基本上是同步更新的,你能一直用到最新的版本,而不用死命折腾5.x版的破解了。
wget http://download2.mikrotik.com/routeros/6.39.2/chr-6.39.2.img.zip
-O chr.img.zipgunzip -c chr.img.zip > chr.imgqemu-img convert -f raw
-O qcow2 chr.img chr.qcow2#请自行替换id为虚拟机IDrm vm-id-disk-1.qcow2mv
chr.qcow2 vm-id-disk-1.qcow2#可以看你需要调整虚拟磁盘的最大容量,只能增qemu-img resize -f
qcow2 vm-id-disk-1.qcow2 +4Gchmod 640 vm-id-disk-1.qcow21
2
3
4
5
6
7
8
9wget http://download2.mikrotik.com/routeros/6.39.2/chr-6.39.2.img.zip -O chr.img.zip
gunzip -c chr.img.zip > chr.img
qemu-img convert -f raw -O qcow2 chr.img chr.qcow2
#请自行替换id为虚拟机ID
rm vm-id-disk-1.qcow2
mv chr.qcow2 vm-id-disk-1.qcow2
#可以看你需要调整虚拟磁盘的最大容量,只能增
qemu-img resize -f qcow2 vm-id-disk-1.qcow2 +4G
chmod 640 vm-id-disk-1.qcow2
登陆后我们需要分配IP
/ip address add interface=ether1 address=机器IP/CIDR broadcast=机器IP network=网关IP/ip route add dst-address=0.0.0.0/0 gateway=网关IP1
2/ip address add interface=ether1 address=机器IP/CIDR broadcast=机器IP network=网关IP
/ip route add dst-address=0.0.0.0/0 gateway=网关IP
这样我们就能使用WEB或者是WinBOX来进行登陆管理了,当然请务必记得改下密码
三.附赠在某些有救援模式或者能挂载ISO的云主机上安装CHR版本
wget http://download2.mikrotik.com/routeros/6.39.2/chr-6.39.2.img.zip
-O chr.img.zip && gunzip -c chr.img.zip >
chr.img && mount -o loop,offset=33554944 chr.img /mnt
&& ADDRESS=ip addr show eth0 | grep global | cut -d' ' -f 6 |
head -n 1 && GATEWAY=ip route list | grep default | cut -d' '
-f 3 && echo "/ip address add address=$ADDRESS
interface=[/interface ethernet find where name=ether1]/ip route add
gateway=$GATEWAY " > /mnt/rw/autorun.scr && umount /mnt
&& echo u > /proc/sysrq-trigger && dd if=chr.img
bs=1024 of=/dev/vda && 1
2
3
4
5
6
7
8
9
10
11wget http://download2.mikrotik.com/routeros/6.39.2/chr-6.39.2.img.zip -O chr.img.zip &&
gunzip -c chr.img.zip > chr.img &&
mount -o loop,offset=33554944 chr.img /mnt &&
ADDRESS=ip addr show eth0 | grep global | cut -d' ' -f 6 | head -n 1 &&
GATEWAY=ip route list | grep default | cut -d' ' -f 3 &&
echo "/ip address add address=$ADDRESS interface=[/interface ethernet find where name=ether1]
/ip route add gateway=$GATEWAY
" > /mnt/rw/autorun.scr &&
umount /mnt &&
echo u > /proc/sysrq-trigger &&
dd if=chr.img bs=1024 of=/dev/vda &&
# 下载wget http://download2.mikrotik.com/routeros/6.40.9/chr-6.40.9.img.zip -O chr.img.zip
# 解压gunzip -c chr.img.zip > chr.img
# 挂载并写入自定义脚本,目的是修改阿里云内网IP地址,其实外网IP地址阿里云不写在Linux上,统一由路由转发
mount -o loop,offset=33554944 chr.img /mnt &&
ADDRESS=`ip addr show eth0 | grep global | cut -d' ' -f 6 | head -n 1` &&
GATEWAY=`ip route list | grep default | cut -d' ' -f 3` &&
echo "/ip address add address=$ADDRESS interface=[/interface ethernet find where name=ether1]
/ip route add gateway=$GATEWAY " > /mnt/rw/autorun.scr &&
umount /mnt
# 写入镜像到虚拟磁盘
echo u > /proc/sysrq-trigger &&
dd if=chr.img bs=1024 of=/dev/vda
# 重启reboot
命令说明:
1、wget从ros官方下载CHR镜像到本地目录,并命名为chr.img.zip;建议wget下载。自己搭建http下载的地址,比如可以放到阿里云的oss下载路径。
http://lbros.oss-cn-hangzhou.aliyuncs.com
2、gunzip把chr.img.zip解压为chr.img
3、把chr.img镜像释放到/mnt目录下
4、抓取eth0的IP地址,并赋值参数为ADDRESS0
5、抓取eth1的IP地址,并赋值参数为ADDRESS1
6、抓取ip route里的10.0.0.0/8网关,并赋值参数为GATEWAY0
7、抓取ip route里的默认网关,并赋值参数为GATEWAY1
8、echo后面的为ros里的命令,ROS的内网网卡赋值内网IP,外网网卡赋值外网IP,并设置默认网关以及到阿里云的局域网段的网关,
阿里云的局域网有三个段分别是10.0.0.0/8,100.64.0.0/10,172.16.0.0/12
并赋值给/mnt/rw/autorun.scr,这里可以干好多事情,大家自由发挥
9、umount /mnt,卸载已经加载的文件系统/mnt
10、echo u > /proc/sysrq-trigger 立即重新挂载所有的文件系统为只读
11、dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
if=文件名:输入文件名,缺省为标准输入。即指定源文件。
of=文件名:输出文件名,缺省为标准输出。即指定目的文件。
12、reboot重启机器
命令说明:
1、wget从ros官方下载CHR镜像到本地目录,并命名为chr.img.zip;建议wget下载。自己搭建http下载的地址,比如可以放到阿里云的oss下载路径。
http://lbros.oss-cn-hangzhou.aliyuncs.com
2、gunzip把chr.img.zip解压为chr.img
3、把chr.img镜像释放到/mnt目录下
4、抓取eth0的IP地址,并赋值参数为ADDRESS0
5、抓取eth1的IP地址,并赋值参数为ADDRESS1
6、抓取ip route里的10.0.0.0/8网关,并赋值参数为GATEWAY0
7、抓取ip route里的默认网关,并赋值参数为GATEWAY1
8、echo后面的为ros里的命令,ROS的内网网卡赋值内网IP,外网网卡赋值外网IP,并设置默认网关以及到阿里云的局域网段的网关,
阿里云的局域网有三个段分别是10.0.0.0/8,100.64.0.0/10,172.16.0.0/12
并赋值给/mnt/rw/autorun.scr,这里可以干好多事情,大家自由发挥
9、umount /mnt,卸载已经加载的文件系统/mnt
10、echo u > /proc/sysrq-trigger 立即重新挂载所有的文件系统为只读
11、dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
if=文件名:输入文件名,缺省为标准输入。即指定源文件。
of=文件名:输出文件名,缺省为标准输出。即指定目的文件。
12、reboot重启机器