近期问我基于RouterOS KX上网的人比较多,但我这方面的确很空白,和周围的朋友了解了下,准备从尝试VPS搭建开始。
我的思路是在VPS上安装RouterOS CHR,然后建立隧道。网上找了制作的命令脚本,自己搞了下失败了,还问了元芳,告诉我他也用这个方法,前天才安装过没任何问题。看来是我哪里出问题了,结果发现,自己替换了旧的chr-6.36.4版本,换为chr-6.46.8,因为两个版本分区类型的区别,导致无法执行脚本,所以一直失败,使用旧版本CHR一切正常。
PS:关于新版CHR的mount失败的原因是mount offset的编译值问题,fdisk -l chr.img,可得到IMG的数据信息,其中有开始的镜像扇区数N与每个扇区的长度,如下:
6.36.4.img镜像是两个分区,我们从
root@raspberrypi:~# fdisk -l chr-6.36.4.img
Disk chr-6.36.4.img: 128 MiB, 134217728 bytes, 262144 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type
chr-6.36.4.img1 * 1 65536 65536 32M 83 Linux
chr-6.36.4.img2 65537 262143 196607 96M 83 Linux
65337*512=33554944
6.47.8.img的分区:
root@raspberrypi:~# fdisk -l chr-6.47.8.img
Disk chr-6.47.8.img: 64 MiB, 67108864 bytes, 131072 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type
chr-6.47.8.img1 * 1 131071 131071 64M 83 Linux
直接使用N=1,Sector=512B,相乘即可得到offset = 1*512 = 512 (Byte)
申请相应的VPS,硬件配置单核CPU,1G内存、20G以上存储空间足够,安装操作系统选择CentOS7.x或Debian9.x的linux系统都ok
VPS申请完成后,通过SSH或者控制台检查网络是否正常,确保DNS已经配置正确
[root@myvps ~]# cat /etc/resolv.conf
; generated by /usr/sbin/dhclient-script
nameserver 108.61.10.10
[root@myvps ~]#
可以通过ping命令测试DNS解析是否正常
[root@myvps ~]# ping www.google.com
PING www.google.com (74.125.137.106) 56(84) bytes of data.
64 bytes from 74.125.137.106 (74.125.137.106): icmp_seq=1 ttl=110 time=6.40 ms
64 bytes from 74.125.137.106 (74.125.137.106): icmp_seq=2 ttl=110 time=6.41 ms
64 bytes from 74.125.137.106 (74.125.137.106): icmp_seq=3 ttl=110 time=6.45 ms
64 bytes from 74.125.137.106 (74.125.137.106): icmp_seq=4 ttl=110 time=6.54 ms
^C
— www.google.com ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 6.405/6.454/6.546/0.079 ms
[root@myvps ~]#
DNS解析正常,才能从mikrotik下载CHR安装文件
通过ip addr命令查看网卡名称
[root@myvps ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 56:00:03:11:1d:22 brd ff:ff:ff:ff:ff:ff inet xx.42.101.160/23 brd xx.42.101.255 scope global dynamic eth0
valid_lft 86019sec preferred_lft 86019sec inet6 2001:19f0:6001:3f4a:5400:3ff:xxxx:1d22/64 scope global mngtmpaddr dynamic valid_lft 2591888sec preferred_lft 604688sec inet6 fe80::5400:3ff:xxxx:1d22/64 scope link valid_lft forever preferred_lft forever
[root@myvps ~]#
命令查看到,公网IP地址的网卡名称为eth0
查看硬盘名称,通过命令fdisk -l
[root@myvps ~]# fdisk -l
Disk /dev/vda: 26.8 GB, 26843545600 bytes, 52428800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0009a079
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 52428766 26213359+ 83 Linux
[root@myvps ~]#
确认磁盘名称为/dev/vda
以上信息确认完成后,确保对应的网卡和磁盘名称和执行脚本匹配,如果不一样,自己修改下(chr版本使用6.36版本,不要使用最新版本,会导致安装失败)
wget http://download2.mikrotik.com/routeros/6.36.4/chr-6.36.4.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 &&
reboot
以上配置是网上找到的,据说是基于阿里云的操作,但我在国外的两家VPS上测试,发现都做了dhcp服务器,IP地址绑定了VPS。对于上面脚本获取IP地址参数是没有必要的,CHR会创建dhcp-client配置,自动获取公网IP地址,我把配置简化为(及时没有开启DHCP服务,也可以通过VNC进行静态IP地址配置):
wget http://download2.mikrotik.com/routeros/6.36.4/chr-6.36.4.img.zip -O chr.img.zip &&
gunzip -c chr.img.zip > chr.img &&
mount -o loop,offset=33554944 chr.img /mnt &&
umount /mnt &&
echo u > /proc/sysrq-trigger &&
dd if=chr.img bs=1024 of=/dev/vda &&
reboot
PS:在使用中我的这家服务商,VPS出现异常一度显示VPS离线状态,恢复后发现DHCP服务失效了,所以建议在安装完成后,还是VNC上配置静态IP地址,避免DHCP服务故障,出现IP无法获取,导致网络中断。
整个安装过程如下:
[root@myvps ~]# wget http://download2.mikrotik.com/routeros/6.36.4/chr-6.36.4.img.zip -O chr.img.zip &&
gunzip -c chr.img.zip > chr.img &&
–2020-11-19 02:48:53– http://download2.mikrotik.com/routeros/6.36.4/chr-6.36.4.img.zip
Resolving download2.mikrotik.com (download2.mikrotik.com)… 2600:9000:201f:f400:1f:88e9:60c0:93a1, 2600:9000:201f:d000:1f:88e9:60c0:93a1, 2600:9000:201f:1c00:1f:88e9:60c0:93a1, …
Connecting to download2.mikrotik.com (download2.mikrotik.com)|2600:9000:201f:f400:1f:88e9:60c0:93a1|:80… connected.
HTTP request sent, awaiting response… mount -o loop,offset=33554944 chr.img /mnt &&
umount /mnt &&
echo u > /proc/sysrq-trigger &&
dd if=chr.img bs=1024 of=/dev/vda &&
reboot200 OK
Length: 44994630 (43M) [application/zip]
Saving to: ‘chr.img.zip’
chr.img.zip 100%[=============================================>] 42.91M 5.78MB/s in 7.6s
2020-11-19 02:49:01 (5.67 MB/s) – ‘chr.img.zip’ saved [44994630/44994630]
-bash: : command not found
[root@myvps ~]# gunzip -c chr.img.zip > chr.img &&
-bash: : command not found
[root@myvps ~]# mount -o loop,offset=33554944 chr.img /mnt &&
-bash: : command not found
[root@myvps ~]# umount /mnt &&
-bash: : command not found
[root@myvps ~]# echo u > /proc/sysrq-trigger &&
-bash: : command not found
[root@myvps ~]# dd if=chr.img bs=1024 of=/dev/vda &&
131072+0 records in
131072+0 records out
134217728 bytes (134 MB, 128 MiB) copied, 1.50282 s, 89.3 MB/s
-bash: : command not found
[root@myvps ~]# reboot
这些报错都不管,执行到reboot后,如果vps不自己重启,在控制台手动重启VPS,下面是启动完成后的的登录界面,账号为admin,密码为空

进入控制界面后,通过/ip add print检查ip地址

检查网络没问题后,输入password命令修改admin密码,黑客对VPS扫描很厉害。
我安装完后没有及时修改密码就被黑了,黑的方式是,添加RouterOS计划任务,定时通过fetch下载脚本,import导入脚本,脚本会开启ip socket服务,允许指定IP连接到RouterOS的socket接口,然后关闭掉ip service下的所有服务端口,使得远程无法管理RouterOS,还好没有修改admin密码。
进入/system package upgrade下,使用check-for-updates命令,检查最新版本

使用download命令,下载更新RouterOS版本

然后使用/system reboot命令重启

重启完成后,使用winbox登录最新版本的RouterOS系统,完成配置,建议在/ip service菜单下关闭或修改不需要的服务端口。
进入winbox配置完成后,可以申请CHR的许可,但需要先注册MikroTik账号,进入system license查看ID

点击renew license,输入MikroTik注册的账号密码,申请P1许可,可以免费使用60天

60天内都可以购买正式版,P1等级就够用了,价格45USD,关于CHR的许可注册购买流程可以参见CHR(Cloud Host Router)许可注册购买流程
未经允许不得转载:OZ分享-吉家大宝官方博客 » RouterOS CHR安装到VPS