一、基本概念

IP:找到接入网络的某台主机。
端口号:找到主机上的某一个网络进程。

二、问题描述

一般位于不同局域网的两台电脑是不能直接进行通信的(ping通),它们分配到的都是私网IP,只在当前网络具有特异性,诸如192.168.x.x等IP,它们需要借助公网IP通信。

三、如何借助公网IP进行不同局域网之间通信

3.1方案

第一种:使用SSH反向隧道(本文介绍)
第二种:使用frp
第三种:使用花生壳

3.2简述

以上都是内网穿透的方案。内网主机要找到公网服务器十分简单,反过来的话需要进行内网穿透,使具有某一个特定源 IP 地址和源端口号的数据包不被 NAT 设备屏蔽而正确路由到内网主机。

3.3SSH反向隧道原理

主机A建立与公网服务器B之间的联系,然后主机C找到服务器B便能借助服务器B建立与主机A的联系。

四、安装autossh

这里使用树莓派和公网服务器Ubuntu系统(做实验)

sudo apt install autossh

五、autossh的使用

5.1公网服务器配置

vi /etc/ssh/sshd_config

修改以下内容

GatewayPorts yes


重启服务

sudo service sshd restart

说明:不修改这个的话,公网服务器是使用127.0.0.1这个IP进行监听。

5.2树莓派配置免密码登录

5.2.1生成秘钥

ssh-keygen

一路回车

5.2.2将秘钥发给公网服务器

ssh-copy-id -i /home/pi/.ssh/id_rsa.pub  用户名@公网IP

输入密码

5.2.3验证

ssh 用户名@公网IP

5.3autossh常用参数介绍

-f 后台执行ssh指令
-C 允许压缩数据
-N 不执行远程指令
-R 将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口
-M 指定端口用于检测是否断开连接

5.4开启autossh

autossh -M 4000 -fNR 8080:localhost:8080 -fNR 9000:localhost:22 用户名@公网IP

服务器4000端口用于监听是否断开。
服务器8080端口“绑定”树莓派8080端口。
服务器9000端口“”绑定“”树莓派22端口。

六、应用

6.1使用公网IP登录树莓派


登录密码使用树莓派密码

6.2通过公网IP获取树莓派摄像头推流

6.2.1开启mjpg推流

6.2.2浏览器查看

http://公网IP:8080/

Linux公网通信(一)神器autossh(树莓派跨局域网远程监控和远程登录)相关推荐

  1. (超高性价比)有了PLC上网神器,PLC远程监视,PLC远程监控,构建工业物联网很简单

    您还在用VPN方案的产品吗,智能时代无需VPN,只需一个智能网关,就可以完成很多有趣的功能. 嵌入式版本通讯协议支持:  MODBUS-RTU(施耐德全系列PLC.仪表) MODBUS-TCP (施耐 ...

  2. 利用SSH 反向代理 ,实现跨局域网连接家里的linux 主机 (树莓派)

    最近我买了一台树莓派主机 ,并且装上了官方系统(Raspbian ).打算用它来跑跑脚本之类的.但是遇到一个问题,我在外的时候,怎么远程连接家里的在局域网中的主机呢? 我已经成功的解决了这个问题,期间 ...

  3. 跨局域网远程连接神器——frp内网穿透

    跨局域网远程连接神器--frp内网穿透 ​ 放寒假回家想用服务器跑代码.想用校园网下文章.甚至还想用服务器打两把游戏.这该怎么办?有的大佬会想,可以在家买一个服务器嘛!如果是这样就打扰了...对于我这 ...

  4. 28个Unix/Linux的命令行神器 | 酷壳 - CoolShell.cn

    28个Unix/Linux的命令行神器 | 酷壳 - CoolShell.cn 28个Unix/Linux的命令行神器 | 酷壳 - CoolShell.cn slurm 查看网络流量的一个工具 官方 ...

  5. Linux有问必答:如何安装autossh

    Linux有问必答:如何安装autossh 提问: 我打算在linux上安装autossh,我应该怎么做呢? autossh 是一款开源工具,可以帮助管理SSH会话.自动重连和停止转发流量.autos ...

  6. linux进程同步/通信,线程同步/通信的区别

    大家常问的是线程的同步和进程的通信,较少问线程通信和进程同步的,那它们有什么区别呢?其实它们没啥区别,线程同步和线程通信其实就是一回事,进程通信和进程同步也是一回事,不要被这些搞混了. linux线程 ...

  7. Linux CAN通信

    Linux CAN通信 实现了Linux下的CAN通信--初始化,发两个送和接收(采用队列形式),使用两个线程,还有一个超时响应目前未写.接收部分使用select实现. #ifndef _CAN_H_ ...

  8. Linux进程通信的四种方式——共享内存、信号量、无名管道、消息队列|实验、代码、分析、总结

    Linux进程通信的四种方式--共享内存.信号量.无名管道.消息队列|实验.代码.分析.总结 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须 ...

  9. linux进程管道通信缺点,Linux进程通信(IPC)的方式详解

    前言:Linux进程通信的方式 什么是进程通信?进程通信是指进程之间交换信息 进程通信方式共有6种: 管道(pipe),包括流管道(s_pipe)和有名管道(named pipe) 信号(signal ...

最新文章

  1. mysql表导出和导入命令行_MySQL命令行导出导入数据库和数据表-Go语言中文社区...
  2. 【干货】JDK动态代理的实现原理以及如何手写一个JDK动态代理
  3. 05 Python 并发编程(管道,事件,信号量,进程池)
  4. document引用图片的src属性能干嘛_如何实现图片懒加载
  5. 亚信安全火力全开猎捕“坏兔子”,全歼详解
  6. 征战蓝桥 —— 2013年第四届 —— C/C++A组第6题——逆波兰表达式
  7. 关闭本机的代理服务(Proxy)
  8. 不要以为写写代码就是计算机科学
  9. 免费中文Python电子书 转载
  10. GeoDa空间自相关分析和计量模型的权重问题
  11. Linux【操作系统】
  12. 文件搜素神器-everthing 快
  13. 【Java EE 学习第21天 使用易宝支付接口实现java网上支付功能】
  14. gromacs 安装_gromacs cpu版安装
  15. 【数据分享】2022年11月华东地区POI数据分享(上海、江苏、浙江、安徽)
  16. 通过瑞利判据对显微镜物镜进行分辨率研究
  17. QRCode插件的使用(二维码识别与生成)
  18. R语言跳跃序列c(),R语言时间序列模型
  19. 养殖户怎么利用生猪期货套期保值(生猪企业套期保值的一些思路)
  20. 奇妙而又有趣的密码学

热门文章

  1. div-css计算器制作
  2. Linux下的压缩解压缩命令详解
  3. k3系统 中间层服务器,k3中间层服务器远程
  4. c++实现多线程同步
  5. 联想A670T刷机包 最新MIUI V5源码适配 更新底包
  6. matlab横坐标为时间,matlab以时间为横坐标
  7. Axure钢笔工具使用技巧
  8. 计算机专业期末试卷,2017计算机基础期末试题及答案
  9. javaweb+jasperreports报表+struts2
  10. 怎么设置电脑计划任务?设置电脑计划任务的方法