注意阿里云的安全组建议开放任意协议和端口,任意IP允许访问
*今天测试阿里云2C4G的死活失败,但是1C1G就OK。大家注意下。
阿里云环境centos6.9 x64:
内网网卡为eth0
外网网卡为eth1
阿里云的linux下硬盘名称为/dev/vda
安装ROS:chr-6.39.2.img版本
内网网卡为ether1
外网网卡为ether2
上面描述的很重要,你要根据你的VPS实际网卡情况,来设定脚本。
脚本内容:
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 && \
ADDRESS0=`ip addr show eth0 | grep global | cut -d' ' -f 6 | head -n 1` && \
ADDRESS1=`ip addr show eth1 | grep global | cut -d' ' -f 6 | head -n 1` && \
GATEWAY0=`ip route list | grep '10.0.0.0/8' | cut -d' ' -f 3` && \
GATEWAY1=`ip route list | grep default | cut -d' ' -f 3` && \
echo "/ip address add address=$ADDRESS0 interface=[/interface ethernet find where name=ether1]
/ip address add address=$ADDRESS1 interface=[/interface ethernet find where name=ether2]
/ip route add dst-address=10.0.0.0/8 gateway=$GATEWAY0
/ip route add dst-address=100.64.0.0/10 gateway=$GATEWAY0
/ip route add dst-address=172.16.0.0/12 gateway=$GATEWAY0
/ip route add gateway=$GATEWAY1
" > /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重启机器