背景

物联网设备使用5G流量,无公网IP,需要将这些设备通过虚拟组网形成VLAN的效果,虚拟局域网内互联互通。

Pole介绍

不仔细开展,大致作用是多个不同网络的客户端通过一个公网服务端连接,利用KCP/UDP协议,使客户端可以通过虚拟ip访问,非常符合我的要求,详细地址:https://github.com/polevpn/polevpn_router,放上一张官方架构参考。

环境准备

  • router服务端:临时租用阿里云ECS服务器,自带公网ip
  • gateway客户端:模拟两个相互不通的客户端
    • 笔记本1:Centos7虚拟机,接入办公wifi,192.168.110.x网段
    • 笔记本2:Centos7虚拟机,连手机热点,192.168.56.x网段

安装步骤

服务端安装

  1. (可选)安装git、go环境
  2. git clone https://github.com/polevpn/polevpn_router.git并进入
  3. go build编译并启动
  4. 阿里云安全组开放443udp端口,注意是udp
  5. config配置调整
{"kcp":{"listen":"0.0.0.0:443","enable":true},"wss":{"listen":"0.0.0.0:443","enable":false,"cert_file":"./keys/server.crt","key_file":"./keys/server.key"},"shared_key":"!@#dFXemc$%*%^0K"
}

客户端安装

  1. (可选)安装git、go环境
  2. git clone https://github.com/polevpn/polevpn_gateway.git并进入

  3. go build编译

  4. 两个客户端允许ip路由转发

    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A POSTROUTING -s 169.254.0.0/16 -j MASQUERADE
  5. 192.168.110.235配置调整

    {
    "route_server":"kcp://120.25.237.107:443",
    "shared_key":"!@#dFXemc$%*%^0K",
    "gateway":"169.254.0.2", // 虚拟IP,用该IP相互访问
    "local_networks":["192.168.110.0/24"], // 本地网络段
    "acls":["0.0.0.0/0"], // 允许访问的网络段
    "route_networks":["169.254.0.0/16"] // 虚拟路由网络段
    }
  6. 192.168.56.101配置调整

    {
    "route_server":"kcp://120.25.237.107:443",
    "shared_key":"!@#dFXemc$%*%^0K",
    "gateway":"169.254.0.3", // 虚拟IP,用该IP相互访问
    "local_networks":["192.168.56.0/24"], // 本地网络段
    "acls":["0.0.0.0/0"], // 允许访问的网络段
    "route_networks":["169.254.0.0/16"] // 虚拟路由网络段
    }

go build问题处理

  • unknown revision问题:由于go mod需要自行git下载其他模块,需改成ssh连接模式
git config --global url."git@github.com:".insteadOf "https://github.com/"# 若改后使用git会提示pubkey问题,需要查看ls /root/.ssh是否有密钥对,无则自行生成
ssh-keygen -t rsa -b 2048 -C "你自己的邮箱地址"# 查看最新公钥并复制到github账户中
cat /root/.ssh/id_rsa.pub
  • unrecognized import path "golang.org/x/crypto"问题:加入代理后再build
# 加入go代理
export GOPROXY=https://goproxy.io

联调测试

启动后可在服务端日志查看到,两个客户端均已上线,使用的是不同的互联网出口

进行ping及ssh测试,均能使用

物联网基于pole异地组网相关推荐

  1. 输变电设备物联网节点设备无线组网协议_AIS-Link-艾森智能的工业物联网连接协议...

    深圳市艾森智能技术有限公司致力于低功耗广域物联网技术创新和行业应用,推出了多个原创的联网解决方案,如TDM over LoRaWAN,.LoRaLAN 和LoRa Mesh等,为工业应用客户创造价值的 ...

  2. 基于WIFI无线组网的水雨情远程监测预警系统

    水雨情是重要的水文资料,在水资源配置和管理中有重要的参考价值,具体是指水位.流速.流量.降雨量.降雨强度等参数.随着物联网.雷达遥测.无线通信技术的发展,这些数据都能实现自动感知和远程监测,对于防汛抗 ...

  3. 异地组网(非端口透传)

    异地组网:n2n 需求: 需要将异地的能联网可编程设备组到同一个内网内,非端口透传方式 起因: 物联网网关设备可联网并可编程,可能无公网ip,所以异地操作网关进行命令下发时无法连接. 解决方案: 问题 ...

  4. 异地组网方案可以详细展开说一一下

    异地组网是指将多个计算机设备连接在远离彼此的地点上,以共享资源和信息的一种技术方案. 下面是异地组网的一些常见方案: 基于以太网的异地组网:通过使用以太网技术连接不同地点的计算机,并通过交换机或路由器 ...

  5. totolink 异地组网

    totolink 异地组网 1.条件:两条都具备Internet 的 路由器(主路由器 & 从路由器) 2.主路由器设置: 1.重启路由器,链接好Internet:首页 - 检测网络连接正常 ...

  6. 用异地组网路由器,实现家校互联

    前言: 十万分的抱歉,开学工作太忙晚上基本倒头就睡,最近才难得上网翻看自己的文章,发现好多回复.感谢大家的厚爱和关注,很多留言都没有及时回复大家,万分抱歉.说起来实在惭愧,数数一个多月没更新文章,让大 ...

  7. 异地局域网对接:异地组网原理与实操

    无论是在工作还是学习过程中,我们经常会有异地访问局域网的需求.所谓异地组网,就是要打通两地的局域网络环境,在任何一地的局域网络环境下,能够通过输入异地局域网地址的方式,实现类似于本地局域网访问的效果. ...

  8. 如何使用vps 异地组网_异地组网简要配置指南

    Tag : 异地组网 异地组网简要配置指南 多台网关设备没有公网地址的情况下,需要能够互相访问各网关设备之间的局域网. 目前异地组网只支持星型网络,成功建立组网后,只允许从分支节点局域网访问中心节点的 ...

  9. ssh登录极路由后台_十八聊智能 篇一百一十:搭建个人云盘,蒲公英企业级路由G5评测:个人私有云+企业异地组网两大杀手锏_路由器...

    2020-10-21 16:08:201点赞8收藏1评论 本文来自#千兆网络有什么用#征稿活动,不断提速的网络给你的生活带来了什么变化?快来参与活动,聊聊你玩转互联网,高速网上冲浪的经历!>点击 ...

最新文章

  1. 探寻背后的机制化繁为简:网站程序升级不过是文件同步
  2. matlab温度数据怎么滤波_卡尔曼滤波算法思想理解 Kalman filter 第一篇
  3. linux系统常用快捷键,文件类型,后缀名,语言修改,转义
  4. 【Scratch】青少年蓝桥杯_每日一题_8.03_飞猫
  5. Mybatis更新和删除数据
  6. java jstat gc_分析JVM GC及内存情况的方法
  7. 鹤峰:美丽的茶乡—— 舞狮篇
  8. PCL “(”:“::”右边的非法标记 和 E2512 功能测试宏的参数必须是简单标识符
  9. Struts2-2.了解struts.xmlpackageactionresult的name属性
  10. linux用户间文件互传,linux之间的文件互传-scp命令
  11. 当浏览器输入url的时候发生了什么
  12. java8 32位脱机安装_java8离线安装包32位 官方最新版
  13. 大篆汉字对照表_篆书的写法(附篆楷常用字对照表)
  14. 解决笔记本拔掉电源线和插上电源线鸣笛问题
  15. 10个办法带你提高工作效率
  16. 崇明东平森林公园一日游
  17. 01.基于Irises的springboot项目框架(简版)
  18. 圆形Shape输出面积和周长
  19. VC驿站黑客编程(关机,重新启动,注销)
  20. LeetCode题解(0625):最小因式分解(Python)

热门文章

  1. 图灵奖得主长文报告:是什么开启了计算机架构的新黄金十年?(上)
  2. 智能优化算法:天牛须搜索算法
  3. Cdr安装显示服务器出现,CorelDraw去掉出血位置打印 CDR双击编辑位图提示启动服务器应用程序失败 对象合并...
  4. Model Builder空间选址建模技术
  5. git如何同步本地仓库与远程仓库代码
  6. 百度智能云 x 小寻手表丨AI赋能,业务持续升级
  7. 定义一个时间类Time
  8. mc服务器皮肤和别人显示一样,我的世界获得别人皮肤,国际自制皮肤怎么让别人看到...
  9. Java之Eclipse实现——弹球小动画(轨迹和线框版本)
  10. req.getparameter()