通过ssh反向代理实现外网主动向内网通信 | 实例:实现个人云中心,实现离线下载,并可以远程控制 

背景:
  1. 公网的IP是有限的,运营商提供的ip不太可能是公网的ip, 就算是也做了非常多的限制
  2. 由于众多防火墙的缘故,中国的网络是由众多的小型互联网组成的,内部主机是无法直接进行通信的;
  3. 由于众多智能设备的成长,局域网非常阻碍网络的发展。
原理:
  • 虽然外网不可以向内网请求连接,但内网可以向外网建立通信的连接
  • 可以通过连接后,再反向传输数据
  • openssh有很成熟的实现反向传输数据,可以端口的转发
  • 同时,传输的数据是经过认证和加密的

实例:实现个人云中心,实现离线下载,并可以远程控制 
物理硬件:
  • 1. 路由器(带usb,型号支持刷openwrt)
  • 2. 移动硬盘(推荐)或U盘
软件:
openwrt固件
openssh-server, openssh-client, openssh-keygen
aria2

  • 1. 设置路由器,使其可以上网
  • 2. 挂载移运硬盘
  • 3. 使用公钥实现,来实现不使用密码登陆
  • 4. 使用openssh-server, openssh-client, openssh-keygen, autossh, 移除默认的ssh server
  • 5. 在自己的服务器上搭建yaaw,设置nginx, 把一个域名的请求转到本机的6800端口
  • 6. 绑定外网服务器的6800端口到路由器的6800端口

autossh -M 5678 -fNR 6800:localhost:6800 tianbao@xx.xx.xx.xx -i ~/.ssh/linode >/dev/null 2>&1 &

linode为私钥


  • 7. 监控绑定状态,如果失败则重连
  • 8. aria以服务运行,实现多线程离线下载