关于内网穿透,内网映射的一些想法

10 篇文章 0 订阅
5 篇文章 0 订阅

今天在做php处理邮件的时候,应为php mail()函数要求有一台不需验证就能用的smtp,这个只能在电脑上搭建,突然就想到了内网穿透,内网映射。当时计算机网络老师讲课的时候提过一句,当时想回来自己看看,后来有事就耽误了。今天搜了一下,简单写写,全是个人见解,欢迎指正。

1,什么是内网穿透

简单来讲,在自己电脑上搭了一个apache服务器,或者其他的什么服务器都行,甚至是求生之路。自己localhost访问可以,别人在用一个局域网(交换机,无线网)下输入ip也能访问,但是除了这些别人就访问不了了。这台服务器是在内网的,不是外网(大家都能访问),因为你分配到的ip也只是一个局域网ip,外网压根就找不到你。所以就有了这项技术,内网穿透。

2,内网穿透的例子

有次上web技术导论,老师让做一个网页,如果把网页拷到u盘上拿过去展示太low了,直接在教学电脑上输入网址去访问我的笔记本多方便。这个笔记本是内网的,我就要把他映射到外网上,也就是内网穿透,这样访问一个外网地址就能相当于访问自己pc了。网上已有的花生壳,net123等都可以用。那么自己怎么实现呢,因为真的实现要用到外网的主机,然而穷碧并没有 可怜,所以只能猜想。

3,内网穿透的实现猜想

内网主机A向外网主机B发送数据,会经过你的网管M,所以真实的通讯过程是A->M->B,这时B收到的通讯是M的,也就是说M包办了这个内网所有与外网的通讯,只是端口不同。所以A:a->M:ma->B:b,小b代表端口,B返回数据,B:b->M:ma,这时M中会有记录,Ma这个端口是要给A的,至此完成通讯。重点就是M中会有记录,那个端口给哪个主机,所以就利用这一点。
首先有台外网主机B,然后内网主机A想B主动发送请求包,这个请求包包括A的ip,B会记录下A的ip,M的ip,M的端口,然后new一个ServerSocket,端口ba,为要映射的A开设映射服务,端口是ba,这个服务拿到的数据全都转发给M:a,同时把ba返回给A,A这里就知道B的端口。支持外网数据已经能通过B:ba发给A了,现在处理A如何回复消息。应该是B再new一个Socket访问M:ma,也就是A,这时B中的ServerSocket会拿到两个Socket,一个是外网请求的,另一个是A的,把这两个输入输出流以交换,搞定。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值