使用VNC软件与花生壳进行内网穿透实现在嵌入式平台中进行广域网下的远程控制

  • 在嵌入式平台中如何实现广域网下的远程登录控制?

文章目录

  • 1 项目需要
  • 2 解决方案
  • 3 首先实现局域网下的VNC远程控制
  • 4 总结

1 项目需要

  • 在IM.X6q硬件平台,Linux4.1.15内核版本中实现在广域网下进行远程登录控制。
  • 主控机为Windows机器,被控机是IMX6平台的Linux系统
  • 被空机与主控机都必须能够连接互联网

2 解决方案

使用开源软件VNC+花生壳进行内网穿透,连接外网。

  • 如何使开发板Linux系统连接互联网请参考文章:USB转WIFI无线网卡驱动程序(RT5370驱动程序)的移植记录之一或者USB转WIFI无线网卡驱动程序(内核自带RT5370驱动程序添加)的移植记录之二+移植wpa_supplicant软件与DHCP软件解密WPA/WPA2
    加密的无线网络
  • 内网与外网之间的通信原理参考文章:五分钟搞懂内网和外网之间的通信的原理
  • 如何使用VNC+花生壳进行内网穿透实现广域网下的远程控制?

参看下图:

在这里插入图片描述

  • 具体实现步骤如下:
  1. 首先使被控主机和主控机能够联网。并且将花生壳软件移植到被控机器。
  2. 将开源软件VNC的客户端和服务端分别移植到主控机和被控机中。
  3. 申请花生壳免费域名,并注册一个护照。
  4. 在被控机上,将花生壳的软件登录到花生壳官网服务器。并运行VNC服务端程序。
  5. 在主控端使用VNC客户端或者直接使用浏览器登录之前注册的域名
  6. 通过花生壳官网服务器的中转,主控机将连接到被控机,并通过VNC服务端获取到的数据,通过花生壳服务器将数据返回给主控机,达到主控机可以控制被控机的功能。

3 首先实现局域网下的VNC远程控制

在实现广域网下的远程控制功能之前,我们这里先实现局域网下的远程控制功能。

首先下载X11VNC源码:点击下载

然后将源码拷贝到Linux系统解压,并进入到源码目录,然后使用下面的命令进行源码编译:

$ tar -xjvf x11vnc-0.9.13.tar.gz
$ cd x11vnc-0.9.13
$CC=arm-fsl-linux-gnueabi-gcc CFLAGS=-O2 ./configure --host=arm-linux --without-x –
prefix=/home/zsl/work/system/x11vnc-0.9.13/_INSTALL/
$ make
$ make install

生成名为x11vnc的可执行程序。将该可执行程序拷贝到IMX6开发板使用下面命令即可:

./x11vnc -noipv6 -rawfb /dev/fb0 -pipeinput UINPUT:touch,tslib_cal=/etc/pointercal,direct_abs=/dev/input/event2,nouinput,dragskip=4 -clip 
1024x768+0+0

最后在Windows主机上下载vnc客户端,将Widows主机与Linux客户机用网线进行连接,并置于同一局域网。然后再VNC客户端中输入Linux服务端中的IP地址,进行远程登录即可控制服务端的界面。

4 总结

  • 目前先实现在局域网内进行远程控制,后面实现了在广域网下的远程控制后会继续写入博客中

学习交流加左侧联系方式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/422876.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HDU 1159 Common Subsequence

/*经典的动态规划*/#include <iostream>usingnamespacestd;charstr1[1000];charstr2[1000];intdp[1001][1001];intmain(){while(cin >>str1 >>str2){intlen1 strlen(str1);intlen2 strlen(str2);intmax -1; memset(dp,0,sizeof(dp));for(inti 0; i <len1;…

【软件开发底层知识修炼】二十七 C/C++中的指针与数组是不同的

上几篇文章学习了ABI-应用程序二进制接口&#xff1a;【软件开发底层知识修炼】二十六 ABI-应用程序二进制接口 学习总结文章目录本篇文章就指针与数组的联系与区别来学习学习 文章目录1 疑问2 指针与数组是不相等的3 解决疑问4 总结1 疑问 在具体用文字理论来说明指针与数组的…

微软MIX11大会第一天主旨以及新产品发布总结

期盼已久的MIX11终于开幕了&#xff0c;虽然没有去现场&#xff0c;但是心情还是蛮激动的。 MIX11第一天Keynote实况大概1个多小时&#xff0c;其中介绍了下一代微软浏览器&#xff0c;新工具更新以及新产品发布等&#xff0c;下面总结一下MIX11第一天的主要话题。 1. Internet…

A Star寻路相关资料汇总

A Star寻路教程&#xff08;译文&#xff09; http://www.cnblogs.com/thunder123/archive/2010/08/18/1802199.html Amits A star Page 中译文 http://dev.gameres.com/Program/Abstract/Arithmetic/AmitAStar.mht A* Pathfinding for Beginners 系列 http://www.policyalmana…

【Git、GitHub、GitLab】三 Git基本命令之创建仓库并向仓库中添加文件

前两篇文章已经学会了Git的基本命令与创建仓库的命令&#xff0c;点击链接查看上一篇文章&#xff1a;【Git、GitHub、GitLab】二 Git基本命令之建立Git仓库&#xff0c;本篇文章就来创建一个有模有样的仓库。该仓库中的代码是一个显示静态页面的小工程代码。 文章目录0 本文所…

Paul Graham:撼动硅谷的人(译文)

Paul Graham&#xff1a;撼动硅谷的人&#xff08;译文&#xff09; 作者&#xff1a; 阮一峰 日期&#xff1a; 2010年12月19日 为《黑客与画家》写"译者序"&#xff0c;遇到一个棘手的问题。 "应该如何介绍Paul Graham&#xff0c;才能让中国读者了解&#xf…

【软件开发底层知识修炼】二十八 C/C++中volatile的作用

上一篇文章学习了C/C中的指针与数组的区别&#xff0c;点击链接进行查看&#xff1a;【软件开发底层知识修炼】二十七 C/C中的指针与数组是不同的本篇文章将学习volatile关键字在C/C中的作用 文章目录1 实例代码分析2 问题分析3 解决方案4 拓展&#xff1a; const和volatile4 总…

计算char,short,int,long类型变量的取值范围

源自《The C Programming Language》P28 pr2-1&#xff1a; 编写一个程序以确定分别由signed及unsigned限定的char&#xff0c;short&#xff0c;int&#xff0c;long类型变量的取值范围。 参考代码&#xff1a; main.c 1 #include <stdio.h>2 #include <limits.h>…

EtherCAT主站实时性分析

转载自&#xff1a;https://blog.csdn.net/ethercat_i7/article/details/54018036 一、实时性的意义 在主从DC同步模式下&#xff0c;主站需要以非常精准的时间发送过程数据&#xff0c;如下图所示&#xff1a; 二、实时性的关键 如下图所示&#xff0c;影响实时性的关键因素是…

VNC实现原理

VNC实现的控制原理1.屏幕控制原理VNC是把被控制端的屏幕做成图像&#xff0c;经过压缩后传送到控制端控制端的控制信息&#xff08;如鼠标信息&#xff09;传送到被控制端后进入消息队列客户端X服务器应用程序vnc viewer<-------------------------->Xvnc(vnc server)<…

VNC源码研究(一)

VNC采用RFB通信协议。RFB ("remote 帧缓存 ") 是一个远程图形用户的简单协议&#xff0c;因为它工作在帧缓存级别上&#xff0c;所以它可以应用于所有的窗口系统&#xff0c;例如&#xff1a;X 11,Windows 和 Mac 系统。 独特的计算环境。 RFB 协议可进行可靠的传输…

枚举的一些常用操作

本章将介绍以下几点&#xff1a; 1、如何把其它类型转换为枚举类型&#xff1f; 2、如何把枚举中的值添加到下拉菜单中&#xff1f; 一、如何把其它类型转换为枚举类型&#xff1f; 我们回顾一下有关字符串与数字之间的转换&#xff0c;如&#xff1a; string strValue&quo…

【Git、GitHub、GitLab】四 Git文件重命名的简单方法以及使用git log查看版本演变历史

上一篇文章学会了使用GIT四次提交建立一个有模有样的仓库。点击链接查看&#xff1a;【Git、GitHub、GitLab】三 Git基本命令之创建仓库并向仓库中添加文件. 本片文章记录git的文件重命名的简单方法&#xff0c;以及使用git log系列命令查看git仓库的版本演变历史的用法的。 文…

10个开源免费的电子商务平台(转自伯乐在线)

如今&#xff0c;人们几乎可以在网络上购买到绝大部分东西&#xff0c;从电子产品、衣服&#xff0c;到机票预订和订餐。购物已转移到互联网&#xff0c;你所做的&#xff0c;只是需要付钱。当然&#xff0c;消费者会 非常注重网站的用户体验。所以&#xff0c;一个整洁安全的平…

「电影」黑洞表面

很老的片子&#xff0c;《黑洞表面》&#xff0c;某次在电视上碰见了&#xff0c;可惜看了五分钟不到&#xff0c;就不得不做别的事情去了&#xff0c;于是乎接着在优酷上翻出来看。估计此片太老了&#xff0c;而且貌似还有点经典&#xff0c;所以优酷还设置了所谓「付费观看」…

【Git、GitHub、GitLab】五 git中裸仓库.git下的内容

上一篇文章学习了git的文件重命名与git -log 的系列命令的使用方法。点击链接查看上一篇文章&#xff1a;【Git、GitHub、GitLab】四 Git文件重命名的简单方法以及使用git log查看版本演变历史 本篇文章学习git中&#xff0c;在没有远端服务器的情况下&#xff0c;裸仓库.git中…

金和oa:自定义表单函数计算一段时期内的工作日

今天介绍一下在自定义表单时如何去计算两个日期之间的工作日。这是很常用的一个js函数&#xff0c;比如在加班中&#xff0c;比如在请假中。。。1&#xff0e; 计算两个日期之间的工作日&#xff0c;写附加元素页面<script language"vbscript"> ...Copyrigh…

【Git、GitHub、GitLab】六 GIT中commit、tree和blob三个对象之间的关系

上一篇文章学习了git裸仓库.git中的内容&#xff0c;点击查看上一篇文章&#xff1a;【Git、GitHub、GitLab】五 git中裸仓库.git下的内容 本篇文章记录学习git中commit、tree和blob三个对象之间的关系。 首先需要会使用下面的命令&#xff1a; cat 命令&#xff0c; 功能&am…

POJ 1006

典型的中国余数定理的应用。设m1,m2,..,mk是k个两两互素的正整数&#xff0c;mm1*m2*...*mk&#xff0c;Mim/mi(i1,2,..,k)。则同余方程组x≡b1(mod m1)x≡b2(mod m2&#xff09;......x≡bk(mod mk)有唯一解。x≡M1M1b1&#xff0b;…&#xff0b;MkMkbk &#xff08;modm&…