IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 物联网基于pole异地组网 -> 正文阅读

[嵌入式]物联网基于pole异地组网

背景

物联网设备使用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测试,均能使用

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-02-26 11:46:32  更:2022-02-26 11:49:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 9:45:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码