码迷,mamicode.com
首页 > 其他好文 > 详细

如何用ssh实现端口的映射

时间:2018-05-13 21:05:41      阅读:326      评论:0      收藏:0      [点我收藏+]

标签:nsa   for   登录   服务器   station   ack   soc   发送   term   

如何用ssh实现端口的映射?

为了解决什么问题,应该就是ssh服务器程序在22号端口监听,难道这就是用软件实现了

实现隧道的方法真是有好几种,包括使用ssh,包括使用tap,或者使用ssh都是可以的,今天试验下如何使用ssh实现隧道功能。

测试程序在

codebox/net/sock/inet/server.cpp

codebox/net/sock/inet/client.cpp

codebox/net/sock/inet/Makefile

在目录里make一下就可以

测试的方法就是在虚机中跑上server,然后在宿主机上连上ssh,

 ssh -L 7001:192.168.0.110:10943 192.168.0.110
此时client端需要把包发到:127.0.0.1:7001端口,ssh会在这个端口上监听

这个时候需要程序的就需要在配置文件中增加本地proxy的选项了。

192.168.0.110 这个地方应该填啥东西呢?

ssh     456 root    5u  IPv4 3146860      0t0  TCP localhost:afs3-callback (LISTEN)
此时就是ssh在监听这个地址,所有发往这个结果的地址都会被发送到本地:7001这个地址,然后通过ssh这条线发送。

就是我ssh的线程在监听呀

但是使用这个段需要保证ip_forward一定要打开吗?好像是不需要的!

试一下,果然是不需要的,比tap的方法好;

那么能不能实现一个真正的管道程序呢?有这样三台机器:

client    -----> stationA (192.168.0.110) -------> Terminate(192.168.1.110)

使用如下的指令,192.168.1.110 ,然后使用ssh登录stationA,然后在这个stationA,然后在client上执行client,此时就就可以把所有的流量都导流到了stationsA,stationsA上sshd,就会收到这个这份数据,然后转发Terminate机器上啦。

ssh -L 7001:192.168.1.110:10943 192.168.0.110

这篇文章可以与之前写的ppp协议作对比

之前想过,其实用户态程序本来可以完成数据转发的功能,可以不依赖于内核的ppp功能,两篇文章对比下

 

如何用ssh实现端口的映射

标签:nsa   for   登录   服务器   station   ack   soc   发送   term   

原文地址:https://www.cnblogs.com/honpey/p/9033144.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!