SSH 隧道功能

项目背景:

有一个带sd接口的电路板P,没有wifi不能联网,现在要通过ssh隧道实现两个功能:

1. 可以让一台linux主机通过ssh登陆到P板进行程序调试等操作;

2. 在P板上直接运行需要联网获取数据的程序。

 

1. 假设有一台主机A能联网,将P板SD接口插在主机A上,这样可以将P板看成主机A的一个SD卡,组内的人制造了一套工具,可以通过SD口和主机A实现上面所需的上网功能。具体的实现不是特别清楚,大概就是监听主机A的一个固定端口(假设是2200),有各种消息来的时候去对应地操作SD卡(P板)实现不同的功能。

比如:ssh -p 2200 root@10.238.225.61 通过ssh方式登陆到P板(10.238.225.61是主机A的ip, root是P板虚拟的ssh登陆用户名)

 

由于实现方式的局限性,上面这样ssh只能开一个,需要多开几个ssh或者ssh登陆着的同时想要scp向P板copy东西的话,就需要在本地(我们假设称之为主机B)第一次ssh登陆P板时开一个Local forward端口(假设是2222),如:

$ssh -p 2200 -L 2222:127.0.0.1:22 root@10.238.225.61

之后再从主机B登陆P板可以这样:ssh -p 2222 root@localhost

通过scp命令由主机B向P板copy东西,可以这样:scp -P 2222 stock root@localhost:/zcy

这里要说明的是,127.0.0.1:22是指P板的22端口,至于怎么是22,之前讲了,P板是通过一个工具利用主机A实现联网的,端口22就是在工具的配置文件中写死的。

 

2. 我们假设主机B可以通过一个代理服务器联外网,可以ssh登陆P板,那么可以在主机B ssh登陆P板时开一个Remote forward端口,让P板可以联外网。

$ssh -p 2200 -R 8080:10.7.211.16:912 root@10.238.225.61

这样P板上就可以通过localhost:8080端口联外网了。在P板上还要设置一下环境变量,指定proxy:

#export http_proxy=http://127.0.0.1:8080/

这里要说明的是10.7.211.16:912是主机B联外网的代理服务器地址和端口。

 

 

参考文章:

http://blog.pluskid.org/?p=369

http://blog.wuxinan.net/archives/78

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值