能否实现外网连接内网的软件?(200分) (200分)

  • 主题发起人 主题发起人 dage111
  • 开始时间 开始时间
D

dage111

Unregistered / Unconfirmed
GUEST, unregistred user!
我的机器是内网,通过设置网关上网。如何实现端口转换成外网?
假设:电脑一ip是:10.254.8.12,通过网关10.254.8.1连接外网
电脑二ip是:202.96.104.15,通过adsl上网
有没有办法通过一个软件实现访问http://202.96.104.15:6666访问到电脑一http://10.254.8.12:80

有没有办法写一个客户端,一个服务器端,将客户端运行在我的电脑上,将服务器端运行在有真实ip的电脑上。
软件在客户端和服务器端建立一个tcp通道,用户访问服务器的端口的时候,数据通过tcp通道转到电脑一上。

如何实现呢?

就象:信使网络通
http://www.infoscape.com.cn/wlt/wlt_manual/structure.htm
和动态主机
http://www.sharella.com/products/g2lan.asp

如果可能,请给出具体源程序,谢谢
 
我對這個問題也很有興趣!
 
可以的。
但是你要找到相应的网关的资料,在网关里面设置好转发内网电脑的配置。
 
我的意思是不接近网关,如果能接近网关的话,直接使用nat转发了。
能否监控两个端口,把该端口的数据转发到另外一个端口呢?
有示例程序么?
 
电脑一是一台有静态IP的服务器
内部网的机器连上去后,通知服务器它的端口号。
内部网的机器listen 一个端口 ,但在代理上就被映射成另一个端口了。
UDP可以,用这个端口发,再listen 这个端口,
网外的人,就可以从服务器取得IP和端口,连过去就行了。
大约应该是这个方法吧
 
挺难的,学习
 
用軟件不好做,買個硬件更好些...
 
to:kouchun,有什么硬件可以实现??
现在我已有的资源:
两台电脑,一个ADSL线路,一个LAN网线路
在lan网上架设web主机
如何使你能够访问到我。
 
很简单,用VPN解决。已经有了现在的软件,可以虚拟局域网。
网上有SoftEther ,这是一个日本人做的东西。不错。
 
TO:renyi
我现在是想自己写这么一个软件。
不是想使用别人的软件。

如何使用vnp解决,你可以把编程思想说一下么?谢谢!
 
看了一下SoftEther(虚拟网卡) 的介绍,主要实现思路是:1)在OSI Level2(数据链路层)上软件模拟网络通讯,把物理层的通讯内容封包到TCP Package里去(软件模拟Ethernet) 2)把自己的通讯包变成SSL Session,用HTTPS协议穿越Internet,甚至混过Firewall(128bit RC4)只要将模拟HUB在公网IP的机器上运行,然后让局域网内部的机器通过模拟网卡连通.简而言之,就是模拟以太网卡的工作顺序,可以模拟HUB功能使用tunnel特性,实现VPN的功能。
 
UDP应该可以,TCP就难一些!
 
网关上作端口映射
 
ADSL上网路由器就行了,只要两百多元钱.
买回来设置一下就搞定
 
TO:迷糊,jianguobu
你们都误解了我的意思了。
现在我已有的资源:
在浙江省一个ADSL线路上有一台电脑1。
在北京大学的内部一个LAN网线路上有一台电脑2。
在北京大学的内部一个LAN网线路上的电脑2架设web主机。
无法接触到网关。。
如何使你能够访问到我在北京大学的内部一个LAN网线路上的电脑2架设的web主机??
请编程解决。。
 
电脑1不能主动访问到电脑2,如果你可以操作电脑2,你可以在电脑2上使用软件,使得电脑2先连接上电脑1,再实现你的要求,否则只有通过第三台电脑中介。
 
TO:skadon
电脑1(ADSL机)路由器是公网ip,通过端口映射,任何互联网上的电脑都能访问到
电脑2(lan机)是私有ip,本人无法接触到网关,可以主动连接电脑1(ADSL机),但是电脑1无法连接它。
有没有什么好办法实现?
 
访问内网的网站,可以使用IIS的重定向功能。
在网关上安装IIS,指定主目录时重定向到内网机器(http://10.254.8.12),在网站属性的“主目录”中指定。
访问网站时可以访问网关即可http://网关IP:端口
 
根据数据流程自己设计程序实现就是了。

1、电脑2开TCPClientSocket1连接电脑1的TCPServerSocket1,连接上后等待请求。

2、电脑1的TCPServerSocket2端口6666对外服务,当接收到请求后,把接收到的数据交TCPServerSocket1发送到电脑2的TCPClientSocket1。电脑2的TCPClientSocket1接收到数据,开另外的TCPClientSocket_n连接电脑2本机的80端口,发送数据,并把返回数据通过TCPClientSocket1(或新开TCPClientSocket)返回给电脑1,电脑1接收后交给TCPServerSocket2发送给用户。

3、只有一个连接时容易实现,当有多个连接就需要在整个过程中,数据包的发送必须区分(或标记)公网用户的IP、端口信息,以正确完成任务。

4、可以这样说,在ADSL机上安装请求代理,在LAN机上安装反代理。
 
端口映射
10.254.8.12:80<->10.254.8.1:80
202.96.104.15:6666<->10.254.8.1:80往202.96.104.15:6666的数据发到10.254.8.1:80
你要有足够权限才行
 
后退
顶部