阿里云安装mikrotik7配置内网互通

阿里云近期推出了200M不限量机器,对于没有公网接入的中小企业可以借助这个机器对多地分支机构进行内网互通。目前已经有很多机构用这个搞跨云k8s,跨云集群了。

mikrotik作为一个商用的软件,操作性比一些开源的软件好用不少。

本文使用的网段为172.16.105.0/24,可根据需要进行修改

一、安装mikrotik

阿里云机器并没有mikrotik操作系统模板,我们可以通过dd命令的方式进行安装。阿里云机器基本上是virto网卡,本身mikrotik是有这个网卡驱动的,不用进行额外的操作

安装命令如下

先安装rockylinux 8.9 非UEFI版本

安全组 将22端口 设置成单个ip可访问,不要开放所有ipv4访问,

ssh登录后执行如下命令

复制代码
# 下载
wget https://download.mikrotik.com/routeros/7.17/chr-7.17.img.zip

# 解压
gunzip -c chr-7.17.img.zip > chr.img

# 查看device start值 为34 65570可执行后续脚本,如果不是将后续 offset值替换为对应值*512
fdisk -lu chr.img

mkdir -p /mnt/chr_img1
mkdir -p /mnt/chr_img2

# 挂载镜像并写入自定义脚本,修改阿里云内网IP地址,外网IP地址阿里云不写在Linux上,统一由路由转发,所以不要配置服务器公网IP
mount -o loop,offset=33571840 chr.img /mnt/chr_img2 && \
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/chr_img2/rw/autorun.scr && \
umount /mnt/chr_img2

# 立即重新挂载所有的文件系统为只读
echo u > /proc/sysrq-trigger

# 用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换(注意上文提及的磁盘/dev/vda)
dd if=chr.img bs=1024 of=/dev/vda

# 重启服务器
reboot

# 等待服务器重启后用winbox连接服务器,注意阿里云是有防火墙的,需要防火墙添加8291端口才能访问成功,方法见阿里云防火墙添加端口博文

重启服务器完成后 安全组设置tcp 8291 开放单个ip访问

winbox下载:https://download.mikrotik.com/routeros/winbox/3.41/winbox64.exe

winbox 首次链接使用ip连接 ip使用服务器ip 用户名admin 密码默认为空,首次登录后修改密码

注意,设置完密码前,阿里云22 8291端口不要开启所有ipv4访问,否则容易被扫到让别人控制。

二、mikrotik安装wireguard

winbox菜单-->wireguard-->+-->Apply-->OK

复制其中的publickey 后续使用 我这里是QpNfpW60t+TZlYYgqF+C3BZdloF0xH/kcAVzVXi+4F4=

配置wireguard网段

winbox菜单-->ip-->Address ->+ 填入如下信息 这里配置的是172.16.105.0/24网段

Address 172.16.105.1/24

Network 172.16.105.0

Interface wireguard1(上面的网卡)

上面wireguard默认使用的13231的udp端口,需要在阿里云安全组开放13231 udp端口的所有ip访问。

最后在mikrotik里添加两条防护墙规则

winbox菜单-->New Terminal 逐个执行下面两条命令

复制代码
/ip firewall filter add action=accept chain=input comment="allow WireGuard" dst-port=13231 protocol=udp 
/ip firewall filter add action=accept chain=input comment="allow WireGuard traffic" src-address=172.16.105.0/24 

三、客户端配置

下载windows客户端(系统需要win7及以上,win7需要多安装3个补丁KB2533623 KB2921916 KB4457144,其他系统不需要)

https://download.wireguard.com/windows-client/

注意不要下载wireguard-installer.exe 这个只是个安装器,大部分人下载wireguard-amd64-0.5.3.msi即可

初次使用

左下角-->新建隧道-->新建空白隧道

默认会生成一个客户端的公钥和私钥

填写名后,在后面追加 这里的peer里的publickey就是上面mikrotik的wireguard生成的公钥

复制代码
Address = 172.16.105.2/32
DNS = 114.114.114.114

[Peer]
PublicKey = QpNfpW60t+TZlYYgqF+C3BZdloF0xH/kcAVzVXi+4F4=
AllowedIPs = 172.16.105.0/24
Endpoint = 114.215.87.93:13231
PersistentKeepalive = 30

最终填写如下

保存后,复制客户端里的公钥wWZif/wEs1YpWDJ1T5WlI/dEP/rwN9ujyW2zIe5aeEU=

需要填写到mikrotik的peer菜单里

winbox菜单-->wireguard-->peers--> +

填写如下内容

Interface : wireguard1

Public Key : wWZif/wEs1YpWDJ1T5WlI/dEP/rwN9ujyW2zIe5aeEU= (对应客户端新建时生成的公钥)

Allow Address: Address = 172.16.105.2/32 (对应客户端Interface的Address字段)

之后点击客户端的连接,通过日志可以看到连接成功还是失败

此时客户端可以尝试ping mikrotik上的172段地址

可以看到能ping通说明连接正常

mikrotik上可以反过来ping 客户端172段地址,默认由于win10 win11默认禁止局域网ping,需要防火墙放行

放行如下

防火墙高级面板方式

打开控制面板,选择Windows Defender防火墙。

选择高级设置。

点击入站规则,找到核心网络诊断 - ICMP回显请求 (ICMPv4-ln)。

右键点击规则,选择启用规则(如果已经启用,则显示的是禁用规则)。

放行之后,再从mikrotik ping可以看到ping 能正常返回了。

四、多客户端互访

参照上一节的过程配置客户端地址为172.16.105.3

之后客户端之间相互ping 可以看到客户段互ping正常

下一篇介绍lan to lan访问。

相关推荐
花千烬9 小时前
crictl info 连不上 containerd 怎么办?endpoint、socket 与权限一次查清
云计算
AKAMAI3 天前
每百万 Token 成本砍六成,出海 AI 团队开始重算推理这笔账
人工智能·云计算
Inhand陈工16 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Database_Cool_16 天前
什么是数据仓库物化视图?AnalyticDB MySQL 实时物化视图能力解析
人工智能·mysql·阿里云
Database_Cool_16 天前
大规模数据分析降本指南:AnalyticDB Serverless 弹性架构实战
数据仓库·阿里云·架构·数据分析·serverless
tiancaijiben16 天前
阿里云Kubernetes集群托管完全指南:从创建到生产级运维
云计算
我是小bā吖16 天前
Claude Code 模型接入阿里云 AI 网关并统计不同使用者的模型用量
网络·人工智能·阿里云
翼龙云_cloud16 天前
阿里云国际代理商:如何使用RDS MySQL 构建网站数据库?
数据库·mysql·阿里云
互联网推荐官16 天前
上海软件定制开发公司推荐:从PaaS工程化路径看D-coding的技术取舍
云原生·云计算·paas·软件开发·开发经验·上海
sbjdhjd16 天前
从零搭建企业级 CI/CD(下):Jenkins+GitLab+Harbor 全链路实战指南
git·servlet·ci/cd·云原生·云计算·gitlab·jenkins