近期问我基于RouterOS KX上网的人比较多,但我这方面的确很空白,和周围的朋友了解了下,准备从尝试VPS搭建开始。

我的思路是在VPS上安装RouterOS CHR,然后建立隧道。网上找了制作的命令脚本,自己搞了下失败了,还问了元芳,告诉我他也用这个方法,前天才安装过没任何问题。看来是我哪里出问题了,结果发现,自己替换了旧的chr-6.36.4版本,换为chr-6.46.8,因为两个版本分区类型的区别,导致无法执行脚本,所以一直失败,使用旧版本CHR一切正常。

申请相应的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地址,我把配置简化为:

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

 

整个安装过程如下:

[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)许可注册购买流程