从外网访问局域网中的机子

yuchun0607 2004-11-26 01:49:03
比如我是通过局域网上网的,你不是在我的局域网内的,怎么访问我?
...全文
436 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
srxumin 2005-01-16
  • 打赏
  • 举报
回复
可使用socket连接
如果两台机器都在局域网内,必须要有台公网服务器做中转,两台客户机主动连接公网服务器,公网服务器被动连接
如果有一台有公网IP,使用局域网内的机器主动连接公网机器即可成功

具体原理如下:
对于两台机器都在局域网和防火墙内的连接,大家都已司空见惯了,这个叫“UDP打洞”的技术倒是可以解决:
NAT A分配一个属于自己的UDP端口62000以在A和S之间建立通讯连接,而NAT B分配一个31000端口用于在B和S之间建立连接。通过与服务器的通讯,A和B可以从服务器S上得到对方的公共IP地址和端口号。客户端A现在发送一个UDP数据包到地址138.76.29.7,端口31001(注意端口数目的增加),而客户端B同时发送一个数据包到地址的155,99.25.11,端口62001上。如果NAT A和B依次为新的连接分配端口,如果从A-S和B-S连接建立后没过多少时间,那在A和B之间的一个双向通讯通道就可以工作起来。A到B的数据包让NAT A建立一个新的连接,NAT A(所期望的)分配一个公共端口62001,因为之前A和S的连接会话用的62000端口,接下来就是62001。同样的,B到A的数据包将让NAT B打开一个新连接,并将(也是所期望的)分配一个端口31001。如果客户端可以正确的预测到NAT为新的连接分配的端口,一条双向的UDP通讯通道就会象如下图所示一样建立起来。

Server S
18.181.0.31:1234
|
|
+----------------------+----------------------+
| |
NAT A NAT B
A-S 155.99.25.11:62000 B-S 138.76.29.7:31000
A-B 155.99.25.11:62001 B-A 138.76.29.7:31001
| |
| |
Client A Client B
10.0.0.1:1234 10.1.1.3:1234


显而易见有很多情况都能导致这种方法失败。假如任意一个预测的端口碰巧已经被其他无关的连接占用,NAT将会错过正确的端口,连接尝试也将失败。假如任意一个NAT有时或者总是选择非连续的端口号,这个方法也将失败。假如在A(B)建立了它和S的连接之后,但在发送第一个数据包到B(A)之前,一个不同的客户端在NAT(也或者B)打开一个新的外部连接到任何外部主机,无关的客户端会不注意的"偷"了(A TO B或者B TO A)所要求的端口。因此在任一NAT都包含不止一台客户端时,这种方法很少使用。
实际上,如果那些NAT是cone NAT,或者一个是cone NAT,另一个是对称NAT,这种情况下的P2P应用程序依然需要工作,应用程序需要实现查明在任何一个上与end [STUN]有关的NAT是哪一钟,并按此来修改它的工作方式,这样增加了算法的复杂程序并让网络变的脆弱。最终,假如任何一方客户端在2级以上的NAT下并且离客户端最近的NAT是对称的,预测端口的方式是无法工作的。对所有这些原因来说,应用程序是无法实现这种方法的,在这里被提及是为了历史和信息目的(就是告诉大家有这么回事,我想)
haoztao 2005-01-16
  • 打赏
  • 举报
回复
http端口!
landlordh 2005-01-16
  • 打赏
  • 举报
回复
A有IP(公网),配置路由器用nat,IP映射A网中的那个a机,a机的ip用公网IP

这样B中的机子都可以访问A中的a
alost 2005-01-15
  • 打赏
  • 举报
回复
路由器把你机机器端口映射出去
还有就是把外网的机器放到你的局域网中,用ipsec
alost 2005-01-15
  • 打赏
  • 举报
回复
路由器端口映射
ipsec 方式
kevin521 2005-01-15
  • 打赏
  • 举报
回复
比较难,帮你顶
henrysap 2005-01-15
  • 打赏
  • 举报
回复
用Web Server 方法吧
yuchun0607 2005-01-14
  • 打赏
  • 举报
回复
老问题,顶上去
Layto 2004-12-20
  • 打赏
  • 举报
回复
三层结构,访问,,我准备开始这样做,
cdo 2004-12-20
  • 打赏
  • 举报
回复
nat技术,就跟QQ一样的p2p技术
yuchun0607 2004-12-20
  • 打赏
  • 举报
回复
up
yuchun0607 2004-11-26
  • 打赏
  • 举报
回复
up
yuchun0607 2004-11-26
  • 打赏
  • 举报
回复
主机加端口

biduan(笔端),能说的详细点吗?
「已注销」 2004-11-26
  • 打赏
  • 举报
回复
主机加端口
mxfeng 2004-11-26
  • 打赏
  • 举报
回复
两台机器根本不能实现,
但能实现
局域网的机器(无公网ip)访问公网(有ip)
*************************************
这是一个被动和主动// 接受服务和提供服务的关系
****************************************************
要想实现你的功能,需要你局域网里的服务器代理
yuchun0607 2004-11-26
  • 打赏
  • 举报
回复
我是问写代码,或用哪些类,
各位给点提示吧
fungchou 2004-11-26
  • 打赏
  • 举报
回复
用QQ
兔子-顾问 2004-11-26
  • 打赏
  • 举报
回复
telnet
远程登陆
兔子-顾问 2004-11-26
  • 打赏
  • 举报
回复
ftp
一、启用guest来宾帐户; 二、控制面板→管理工具→本地安全策略→本地策略→用户权利指派里,“从网络访问此计算机”加入guest帐户,而“拒绝从网络访问这台计算机”删除guest帐户; 三、我的电脑→工具→文件夹选项→查看→去掉“使用简单文件共享(推荐)”前的勾; 四、设置共享文件夹; 五、控制面板→管理工具→本地安全策略→本地策略→安全选项里,把“网络访问:本地帐户的共享和安全模式”设为“仅来宾-本地用户以来宾的身份验证”(可选,此项设置可去除访问时要求输入密码的对话框,也可视情况设为“经典-本地用户以自己的身份验证”); 六、右击“我的电脑”→“属性”→“计算机名”,该选项卡有没有出现你的局域网工作组名称,如“work”等。然后单击“网络 ID”按钮,开始“网络标识向导”:单击“下一步”,选择“本机是商业网络的一部分,用它连接到其他工作着的计算机”;单击“下一步”,选择“公司使用没有域的网络”;单击“下一步”按钮,然后输入你的局域网的工作组名,如“work”,再次单击“下一步”按钮,最后单击“完成”按钮完成设置。 访问网上邻居时显示:" windows xp系统访问局域网时显示 "WORKGROUP无法访问.您可能没有权限使用网络资源.请与这台服务器的管理员联系以查明您是否有访问权限.此工作组的服务器的列表当前无法使用." 我用的是xp系统 我也遇到过这样的情况,当时也是着急得不轻,后来看到了以下的内容,照着一步步的做了做,真的好了。内容不少,但是仍然希望你能耐住性子,仔细的看看自己属于那种情况,应该会有所收获。 局域网互访 - [ 网络 ] 我也是类似问题。 以前一个局域网10多台机子访问。安了蕃茄花园v2.3,感觉主题漂亮,桌面壁纸自动换,很爽。访问局域网计算机没问题。可网内其它机子在工作组内能看到我的机子,但打不开。说什么“没有权限”。所有设置都作了如下改动(网上找的),依然无效,何故?但求高手指点。 “网上邻居”无法互访问题解决方法大全 “网上邻居”无法互访的问题实在是太常见了,无论在学校,网吧还是家里多台电脑联机,都有可能遇到网上邻居无法互访的故展。“网上邻居”无法访问的故障多种多样,总结起来基本上有下面的几个: 1,没有共享资源/共享服务未启用。 症状:电脑与电脑间可以Ping通,但无法访问共享资源,在“计算机管理”查看“本地共享”后会弹出“没有启动服务器服务”的错误对话框。 解决:在控制面板-管理工具-服务启动Server服务。并设置“启动类型”为“自动”。 2,IP设置有误。 症状:双机之间无法互Ping,连接用的双绞线经过测试没有问题,没有安装防火墙。 解决:检查两台电脑的IP是否处在同一网段,还有子掩码是否相同。 3,WINXP默认设置不正确。 症状:从WIN98/2000/2003上无法访问另一台WINXP的机器。 解决:在“控制面板”的“用户帐户”启用Guest帐号。然后在运行输入secpol.msc启动“本地安全策略”。 本地策略 -> 用户权利指派,打开“从网络访问此计算机”,添加Guest帐户 本地策略 -> 安全选项,禁止"帐户:使用空白密码的本地帐户只允许进行控制台登陆"。 另外有时还会遇到另外一种情况:访问XP的时候,登录对话框的用户名是灰的,始终是Guest用户,不能输入别的用户帐号。 解决:本地策略 -> 安全选项 -> "网络访问:本地帐户的共享和安全模式",修改为"经典-本地用户以自己的身份验证" 4,系统漏洞修补软件修改了安全策略。 症状:在“网上邻居”可以看到对方的计算机,但是访问共享时却提示“没有权限访问网络” 解决:在开始菜单运行输入secpol.msc启动“本地安全策略”,本地策略 -> 用户权利分配,打开“拒绝从网络访问这台计算机”,删除guest用户。 5,防火墙规则。 症状:安装了防火墙(包括WINXP系统自带的防火墙),出现无法Ping通,或者是访问共享资源的时候提示"XXX无法访问"、"您可能没有权限使用网络资源"、"请与这台服务器的管理员联系以查明您是否有访问权限"、"找不到网络路径"等类似的提示。 解决:停止防火墙或者添加局域网访问规则。 WINXP自带的防火墙:打开控制面板 -> 网络和Internet连接 -> Windows防火墙 -> 例外,勾选“文件和打印机共享”。 6,Win2000/XP与Win98互访 症状:Ping命令可以通过,但无法在“网上邻居”实现互访。 解决:在WIN2000/XP系统:控制面板 -> 管理工具 -> 计算机管理 -> 本地用户和组 -> 用户,在Guest帐户上点击鼠标右键,选择属性,在常规项里取消
"网络执法官"是一款局域网管理辅助软件,采用网络底层协议,能穿透各客户端防火墙对网络的每一台主机(本文主机指各种计算机、交换机等配有IP的网络设备)进行监控;采用网卡号(MAC)识别用户,可靠性高;软件本身占用网络资源少,对网络没有不良影响。 软件不需运行于指定的服务器,在网内任一台主机上运行即可有效监控所有本机连接到的网络(支持多网段监控),主要功能如下: 一、 实时记录上线用户并存档备查 网络任一台主机,开机即会被本软件实时检测并记录其网卡号、所用的IP、上线时间、下线时间等信息,该信息自动永久保存,可供查询,查询可依各种条件进行,并支持模糊查询。利用此功能,管理员随时可以知道当前或以前任一时刻任一台主机是否开机、开机多长时间,使用的是哪一个IP、主机名等重要信息;或任一台主机的开机历史。 二、 自动侦测未登记主机接入并报警 管理员登记完或软件自动检测到所有合法的主机后,可在软件作出设定,拒绝所有未登记的主机接入网络。一旦有未登记主机接入,软件会自动将其MAC、IP、主机名、上下线时段等信息作永久记录,并可采用声音、向指定主机发消息等多种方式报警,还可以根据管理员的设定,自动对该主机采取IP冲突、与关键主机隔离、与网络所有其它主机隔离等控制措施。 三、 限定各主机的IP,防止IP盗用 管理员可对每台主机指定一个IP或一段IP,当该主机采用超出范围的IP时,软件会判定其为"非法用户",自动采用管理员事先指定的方式对其进行控制,并将其MAC、IP、主机名作记久记录备查。管理员可事先指定对非法用户实行IP冲突、与关键主机隔离、与其它所有主机隔离等管理方式。 四、 限定各主机的连接时段 管理员可指定每台主机在每天允许与网络连接的时段或不允许与网络连接的时段(可指定两个时段,如允许每天8:30-12:00和13:30-5:00与网络连接),并可指定每一用户是否被允许在每个周六、周日与网络连接。对违反规定的用户,软件判其为非法用户,自动记录并采用管理员事先指定的方式进行管理。管理方式同样可为IP冲突、与关键主机隔离、与其它所有主机隔离等。 总之,本软件的主要功能是依据管理员为各主机限定的权限,实时监控整个局域网,并自动对非法用户进行管理,可将非法用户与网络某些主机或整个网络隔离,而且无论局域网的主机运行何种防火墙,都不能逃避监控,也不会引发防火墙警告,提高了网络安全性。管理员只需依据实际情况,设置各主机的权限及违反权限后的管理方式,即可实现某些具体的功能,如禁止某些主机在指定的时段访问外网或彻底禁止某些主机访问外网;保护网络关键主机,只允许指定的主机访问等等。
主要功能描述: 提供端口资源的转发和传递。 区别于传统于本地端口转发的优点: 1.转发服务所在机只需要提供一个端口资源。 2.端口转发和获取与转服务无关,转服务不需要对转发的端口资源进行任何配置处理。 3.端口资源转发提供级连扩展,可以将端口资源传递给任意多级的转站。 4.资源提供、转、资源获取,三个模块分离设计,任意组合,可一对多,多对多连接,极大扩展连接的范围。 应用实例 假设有5台机子分别处于不同的网段,且它们的连接关系只能如图所示:A-B-C-D-E A只能连接B,不能连接CDE,C只能连接BD,不能连接AE 现有的端口转发工具要在BCD上分别设置,各开两个端口用于一个连接的转发,如果转发连接多了,不但设置非常麻烦,而且占用大量的端口资源(连接数量*转次数*2)。 使用Pyvidc,在BCD上运行vidcserver,只要一个监听端口,设置服务级连,B级连C,C级连D 这样,在A上可以任意发出多个连接给B,在BCDE上都可以自由获取A的端口资源。比如socks服务或者远程桌面。 另外ABCDE可以理解为5个处于不同网络的用户。 各功能模块说明: mailip:mailip.py,mailipr.ini 通过email转发定位ip地址,类似花生壳只是双方都要运行这个程序,并且使用相同的邮箱账户做转。 mps:mps3.py,mps25.py,mps.ini 端口转发工具,mps25.py是核心模块,mps3是个调用的外壳。每5秒输出连接信息,包括负载均衡的情况和连接数量。 -----------------以上为两个独立模块,下面的三个是pyvidc的组件------------------------------- vidcclients.py,pyvidcc.ini 端口资源发布模块。(A机运行,提供本机或本地其他网络端口资源) vidcservers.py,pyvidcs.ini 连接转和再转服务模块。(BCD机运行,转连接资源) vidcusers.py,pyvidcu.ini 获取被转连接的模块。(E或BCD上运行获取连接资源) pyvidc运行机制如下: A机运行vidcclients,把自己能够访问的连接资源,比如自己的远程桌面,或者本地局域网的其他远程桌面,加上一个标识发送给vidcserver(B机)。 BCD机运行vidcservers,B机接受连接资源后会根据设置判断是否将连接传递给C,C再判断是否传递给D。 E机或者BCD机运行vidcusers从自己能够连接的任意vidcserver通过标识判断,获取需要的连接资源。 这样运行vidcuser的用户(E或BCD)就可以远程桌面或者同时socks到A机以及A能访问的所有资源。 同时,一个server可以连接任意多的client和user,client和user也可以同时连接不同的server。(资源受内存数量限制,目前大约一个成功连接的资源占用64kb) *重要提示: 不要用windows自带的notepad来编辑ini文件,它会在ini的[main]前面添加一堆乱码,造成ini读取错误。 可以简单的用edit命令就可以查看和修改错误的ini文件。 其他说明: 1.由于是初次尝试,对连接的安全性、验证机制方面并没有深入考虑。 2.所有ini配置文件都有简要的说明和配置范例。 3.python无控制台运行的方法,理论上更名成.pyw后是自动用pythonw来运行的,可是会莫名其妙地退出。 所以还是延用vb的后台运行方法来调用py文件,附带两个vb脚本范例。hidemps.vbs,hidevidcc.vbs 4.目前代码使用了大量的try陷阱做保护,在一定程度上影响性能。日后逐步取代try的使用。 chentca@21cn.com 2009-06-10 初步成型端口转发机制 2009-06-12 把mailip和pyvidc三个功能模块化,可以单独执行和被其他模块调用,使用方法见pyvidcgroup.py 所有代码添加了简单注释。 2009-07-16 设计了连接的自动扩展级连,标识使用"vidcsEx:n:flag:" 例子:33=127.0.0.1 5899 127.0.0.1 80 vidcsEx:1:扩展连接: vidcsEx:表示允许服务端把连接传递给下一级的服务端。 n:控制允许被服务端端级连的次数 flag:是连接的名称。允许使用文,更加安全和不容易重名。 2009-07-17 调整修复了扩展连接bug,增加了服务器是否使用连接扩展的开关 用py2exe在py2.5下打包成独立运行包,mailip打包失败,mps打包成功,pyvidc打包成功(包含client+server+user) 包里的文件是用py2exe打包成独立运行的,不需要安装python环境。 包含了mps和pyvidc,但是不含mailip的定位功能,因为打包后不能用。 包内配置的简单说明: mps运行后:把对本地的8881端口的访问,均衡分散给本地的9050,9060,9070端口使用。这个是我在本地开了三个tor用来bt的。 pyvidc运行后:把本地的5个端口资源送到本地vidc服务器上,pyvidc服务器又根据特定标志把这些连接发送给下级的三vidc服务器(chentcahome,81 chentcahome,80 192.168.10.100,80),让它们三个都能同时获取本地的5个端口资源。而vidcuser仅向服务器提交了三个资源标识的获取请求。不过它只能得到1个,因为另外标志在服务器上是没有的。 标志支持使用文。

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧