当前位置:编程学习 > C#/ASP.NET >>

两个局域网之间怎么通信?

写了一个局域网聊天工具,局域网内部可以实现,但是局域网之间怎么实现呢? --------------------编程问答-------------------- 你可以有两种方法来解决这个问题。

一种方法是通过网络设备来解决这个问题。比如说你架设一个网桥,使不同网段内的机器可以互相访问。

另一种方法是通过软件来解决,比如说你在这两个网段的机器都能访问到的一个地址,架设一个中转服务。
--------------------编程问答-------------------- 路由转换或者VPN --------------------编程问答-------------------- VPN很方便的 --------------------编程问答-------------------- --------------------编程问答-------------------- VPN
或者通过一个外网的服务器中转 --------------------编程问答--------------------   你可以有两种方法来解决这个问题。

一种方法是通过网络设备来解决这个问题。比如说你架设一个网桥,使不同网段内的机器可以互相访问。

另一种方法是通过软件来解决,比如说你在这两个网段的机器都能访问到的一个地址,架设一个中转服务。
1楼说得对,但或许还有其他方法,常用的是这两种。 --------------------编程问答-------------------- 仅仅为了实现两个网段的互访而采用VPN,可以是可以,但是代价大了点吧。
不要忘了VPN自身的缺点。 --------------------编程问答-------------------- 规划和部署VPN的代价有多大,楼上提VPN方案的有没有自己部署过VPN?真是不经过大脑的建议。

如果不是对安全有很高的要求,建议还是不要用VPN。
哪怕你有安全方面的需求但仅仅做到一般的安全性,也完全没有必要用VPN,最多来个证书加密就能搞定一般的安全需求了。

--------------------编程问答-------------------- 用映射 --------------------编程问答--------------------
引用 7 楼 xinyaping 的回复:
仅仅为了实现两个网段的互访而采用VPN,可以是可以,但是代价大了点吧。
不要忘了VPN自身的缺点。
你好像很牛逼,来,给大家普及下VPN的知识,路由转换的原理,谢谢 --------------------编程问答--------------------
引用 10 楼 ssp2009 的回复:
引用 7 楼 xinyaping 的回复:
仅仅为了实现两个网段的互访而采用VPN,可以是可以,但是代价大了点吧。
不要忘了VPN自身的缺点。
你好像很牛逼,来,给大家普及下VPN的知识,路由转换的原理,谢谢


假如两个网段之间已经部署了VPN,那么直接用就可以了,确实方便。
但是,假如这两个网段之间并没有VPN,你要从头来规划和部署VPN,我请问你,代价有多大。

论牛逼谁敢跟您比。
那就由你来解答一下部署VPN的代价吧。谢谢。
--------------------编程问答-------------------- 10年前,我当IT部门经理的时候,在一个办公室和一个工厂之间,铺设一条VPN线路。
光设备投入就上万。这还只是跨越半个京城,还没涉及到不同城市之间呢。
不知10楼是否也有丰富的城域网络部署经验。

VPN,你们说得轻巧,就为一个局域网聊天软件的中转?

我花几百元随便租个服务器空间,再花两小时功夫写个中转程序,连写程序带测试,全都搞定,别说跨城,跨国也没问题。

这么点小事也要仰仗VPN?反正花的是企业的钱,你们个人不心疼是吧。
--------------------编程问答-------------------- 哥啊,你做部门经理可真是替公司着相,一个普通的局域网通信,还花钱搞,现在破解的VPN代理软件一堆一堆的,一把年纪了,还喜欢出头。懂就给楼主提个可行方案,不懂就别唧唧歪歪,别人回帖又没针对你,真是 --------------------编程问答-------------------- 恩,软件代理就算了 --------------------编程问答-------------------- 不就一个外网访问内网的问题?真接用端口映射不就可以了么? --------------------编程问答-------------------- 最优秀的选择就是 建立一个公网server端. 并且还使用udp打洞.p2p连接消息直接传递.并且还要对消息加密...

一般情况建立一个公网server端即可.server端自己负责消息转发投递 --------------------编程问答--------------------
引用 13 楼 ssp2009 的回复:
哥啊,你做部门经理可真是替公司着相,一个普通的局域网通信,还花钱搞,现在破解的VPN代理软件一堆一堆的,一把年纪了,还喜欢出头。懂就给楼主提个可行方案,不懂就别唧唧歪歪,别人回帖又没针对你,真是


我当你有什么高招,原来是这个,哈哈哈

你有破解的VPN代理软件,我就没免费空间可选择吗?或者我就捎带手在公司网站上占用几百K的空间放个代理程序不行吗?

再说,你用VPN代理软件,等于说把通信的两端,都放到一个庞大且低速的第三方网络里。

虽说我在11楼已经假定了您的牛逼,您也不必拿这么业余的方案来自毁形象吧。
--------------------编程问答--------------------
引用 16 楼 chichenzhe 的回复:
最优秀的选择就是 建立一个公网server端. 并且还使用udp打洞.p2p连接消息直接传递.并且还要对消息加密...

一般情况建立一个公网server端即可.server端自己负责消息转发投递


如果是不方便直接相通的两个网段,那么我倾向于你的这种做法。
这也正是我1楼的方案二。
--------------------编程问答--------------------
引用 14 楼 chenandczh 的回复:
恩,软件代理就算了


当然不一定非得要软件代理。

楼主没有说这是怎样的两个网段。
如果就是在企业内部的两个网段,那么按照我1楼的方案一,也就是在三层交换机上添置几行记录而已。
--------------------编程问答-------------------- 大家消消气,我是初学者,编个程序纯粹是练练手
公司局域网分为厂区和研发区,两地相差挺远,当然我不是网管,没有权限搞什么vpn,纯粹是个人学习
我的想法是厂区写个,管着clientA1,A2,A3...
研发区写个,管着client,B2,B3...
如果A1发信息给B1,是不是就要A1—Server_A—Server_B—B1了,
Server_A和Server_B之间是怎么联系,用最简单的方法,最不花钱的方法 --------------------编程问答-------------------- 怎么联系?现在的问题是你是不是已把两个网络用物理手段连接上了呢?
还是只
如果涉及安全的话,去广域网租空间可不是什么好办法。 --------------------编程问答-------------------- webservice --------------------编程问答--------------------
引用 21 楼 gaoz 的回复:
如果涉及安全的话,去广域网租空间可不是什么好办法。


涉及安全,这是和很含混的说法,正确的提法是需要达到什么样的安全级别或者需要在防范窃听上达到什么样的效果。

基本上证书加密已经可以做到工业级的安全性了。甚至哪怕在你租的那个空间的服务器上有人窃听,证书加密也可以做到除通信双方之外其它人(包括中间人,包括服务器上的窃听程序)无法解析秘文。

民用的应用做到这一点已经可以了。还要怎样。 --------------------编程问答-------------------- 可用路由转换 --------------------编程问答-------------------- 如果是跨城的话,给网通客服打个电话问问不就可以了⋯⋯

--------------------编程问答--------------------
引用 20 楼 xugeer 的回复:
大家消消气,我是初学者,编个程序纯粹是练练手
公司局域网分为厂区和研发区,两地相差挺远,当然我不是网管,没有权限搞什么vpn,纯粹是个人学习
我的想法是厂区写个,管着clientA1,A2,A3...
研发区写个,管着client,B2,B3...
如果A1发信息给B1,是不是就要A1—Server_A—Server_B—B1了,
Server_A和Server_B之间是怎么联系,用最简单的方法,最不花钱的方法


根据你的描述,我可以理解为:Server_A和Server_B之间在网络上无法做到互联互通,而且你也没有权限修改任何交换机和路由器的设置。

那么你就要向Server_C寻求帮助。虽然Server_A和Server_B彼此访问不到对方,但是他们都能访问到Server_C。

那么就要看你应该把Server_C放到哪里最经济了。

最好的情况是在厂区和研发区都能访问到公司内部的某个公共网段,那么Server_C当然放在这个公共网段。
最坏的情况是在厂区和研发区并不存在这么一个公共网段,那么你就要把Server_C放在外网/互联网上。

无非就是这样的。如果是最坏的那种情况,也许你要花钱,但是花的钱也不多,而且这个交换服务所占资源应该很少很少,所以你假如租个小空间来放置我们这个交换程序,那么还可以用这个小空间做点别的事情,相当于尽可能收回一些成本了。
--------------------编程问答--------------------
引用 12 楼 xinyaping 的回复:
10年前,我当IT部门经理的时候,在一个办公室和一个工厂之间,铺设一条VPN线路。
光设备投入就上万。这还只是跨越半个京城,还没涉及到不同城市之间呢。
不知10楼是否也有丰富的城域网络部署经验。

VPN,你们说得轻巧,就为一个局域网聊天软件的中转?

我花几百元随便租个服务器空间,再花两小时功夫写个中转程序,连写程序带测试,全都搞定,别说跨城,跨国也没问题。

这么点小事也要仰……


我记得你不是说你做开发十年了吗?怎么刚做开发你就当经理了? --------------------编程问答-------------------- to XinYaping:
猫爸怎么也跑CSDN来了 --------------------编程问答--------------------
引用 27 楼 aspnetchengxu 的回复:
我记得你不是说你做开发十年了吗?怎么刚做开发你就当经理了?


确实是我职业生涯的早期的一桩经历。

那是个唱片公司,在北京有400名员工、一座楼和一个库房、一个工厂。
我那时做得很杂,写网站程序、写公司内部的OA、修改工厂的进销存软件,管网络,管电话交换机,管监控系统,维修员工的电脑(PC和Mac),负责企业的网络推广,负责在公司的原创音乐论坛里面组织音乐人的线上线下活动。做了半年,升为IT技术部经理,业务范围又扩大了两个:给设计部和影视后期制作的工作室提供技术支持。

那时候我的办公室紧挨着雪村的办公室。

--------------------编程问答--------------------
引用 28 楼 jonas401 的回复:
to XinYaping:
猫爸怎么也跑CSDN来了


见到你很高兴!

(站内短消息聊。^-^ ) --------------------编程问答-------------------- 呵呵,高手那么多 --------------------编程问答-------------------- p2p --------------------编程问答-------------------- vpn是虚拟专用网吧?没必要重新铺线路吧,两段加vbn设备,利用互联网就可以了,一般防火墙ms都带vpn模块

vpn没搞过,说错了算瞎说 --------------------编程问答--------------------
引用 33 楼 hdt 的回复:
vpn是虚拟专用网吧?没必要重新铺线路吧,两段加vbn设备,利用互联网就可以了,一般防火墙ms都带vpn模块

vpn没搞过,说错了算瞎说


可以把两个网段都接入互联网,然后利用互联网铺设VPN链路;
也可以直接把两个网段物理相连。
如果是比较近的距离,比如说临近的两栋大楼之间,可以考虑直接物理相连,组成Extranet VPN。
距离比较远的话就直接通过互联网组成Access VPN
VPN本身是一个开放的架构,没有规定说必须要这样或那样组建VPN链路,组成的方式是很灵活的。

VPN模块可以和防火墙集成,也可以和路由器或者网关集成。一般现在VPN防火墙用得比较多一些,因为这种集成方式VPN可以和防火墙的安全策略很好地在一起工作,避免了VPN和防火墙采用不同的厂商的产品而带来的不兼容的问题。所以一般大一点的企业通常用的都是VPN防火墙。
有些防火墙的VPN模块也可以是备选的,可以买的时候没有,日后需要的时候再增加这个模块。
--------------------编程问答-------------------- 最好是“固定IP”
这样连接起来方便 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答--------------------
引用 34 楼 xinyaping 的回复:
引用 33 楼 hdt 的回复:

vpn是虚拟专用网吧?没必要重新铺线路吧,两段加vbn设备,利用互联网就可以了,一般防火墙ms都带vpn模块

vpn没搞过,说错了算瞎说


可以把两个网段都接入互联网,然后利用互联网铺设VPN链路;
也可以直接把两个网段物理相连。
如果是比较近的距离,比如说临近的两栋大楼之间,可以考虑直接物理相连,组成Extranet VPN。
距离比……


刚刚baidu一下
3) Extranet VPN(外联网VPN):与合作伙伴企业网构成Extranet,将一个公司与另一个公司的资源进行连接 
没说一定要物理连接
貌似vpn的关键就是在公网上建立虚信道, --------------------编程问答-------------------- 如果自己布线,不管是光线,专线等等,何必要vpn --------------------编程问答--------------------
引用 38 楼 hdt 的回复:
刚刚baidu一下
3) Extranet VPN(外联网VPN):与合作伙伴企业网构成Extranet,将一个公司与另一个公司的资源进行连接 
没说一定要物理连接
貌似vpn的关键就是在公网上建立虚信道,


举例而已,没说一定要这样。 --------------------编程问答-------------------- 有物理连接貌似就不能叫vpn
你都能直接能连了,还走什么虚拟,不是脱裤子放屁,还是什么? --------------------编程问答--------------------
引用 39 楼 hdt 的回复:
如果自己布线,不管是光线,专线等等,何必要vpn


涉及到线路的两端是两个相对独立的组织机构,但又要在一个组织中拥有受限地访问另一组织资源的权限,这是就有可能产生VPN的需求。 --------------------编程问答--------------------
引用 42 楼 xinyaping 的回复:
引用 39 楼 hdt 的回复:

如果自己布线,不管是光线,专线等等,何必要vpn


涉及到线路的两端是两个相对独立的组织机构,但又要在一个组织中拥有受限地访问另一组织资源的权限,这是就有可能产生VPN的需求。

受限完全可以使用别安全产品,比如访问控制列表,比如防火墙,行为管理,比如域管理等等 --------------------编程问答-------------------- 学习,理性,大家理性讨论。 --------------------编程问答-------------------- 让我想起一件事,当时给致公党总部网络项目评标,报价近1百万,服务器就二十多台,软件从orcal,office,window2000,好几十套,最后一看,基础接入设备,全是tplink的hub --------------------编程问答-------------------- --------------------编程问答--------------------
引用 43 楼 hdt 的回复:
受限完全可以使用别安全产品,比如访问控制列表,比如防火墙,行为管理,比如域管理等等


如果从头规划这一整套安全策略,当然我说的这种情况,VPN不是首选。
但是往往我们不是从头规划安全策略,而是在老设施老应用的基础上规划安全策略。
有些应用系统,由于建立之初的短视行为,限制了它只能是一个局域网应用,后来又需要从另外一个网络来实用这个系统,怎么办呢?又假设重新开发旧的应用系统代价极大?

从应用角度来说,VPN的作用是:我本来不在那个LAN里面,但是通过VPN,使我虚拟地连接到那个LAN里面。

从头规划一个新的系统,往往没有兼容旧的系统那么复杂。不是吗?



--------------------编程问答-------------------- 那个叫XYP的,到处装B,到处掐架,汗!不得瑟能死啊! --------------------编程问答-------------------- --------------------编程问答-------------------- ……你们把楼主吓坏了吧,都不敢回来看了。

从楼主的需求和前期设计来看,楼主面临的情况应该大概如下:

在宿舍里面写了个局域网聊天程序,舍友们玩了玩感觉还不错,但是其他宿舍的同学与楼主的宿舍之间就不能通信了。(假设,或者猜测每个宿舍一个公网接口,宿舍成员公用一个交换机或者路由器)

如果符合上述条件,只需要楼主写一个服务端(或使用已经有的服务端)放在一台机器上,然后通过交换机或者路由器将该机器的ip暴露给公网(很多路由器自带DMZ功能,交换机需要额外设置了),将Client端设置为自己所在局域网的公共ip即可。

============================================================================

以上只是根据lz的技术得分,结贴率,还有问题所处环境猜测的解决方案(lz应该是练习一下Socket编程吧),因为没有办法获得lz的详细环境信息,故给出如上解决方案。如果lz所处环境比较复杂,那请楼主继续发帖描述自己的信息吧。

============================================================================

另外给ls各位犀利的大牛们:软件的产生根本原因是客户需求和市场需求,并且软件的实现需要考虑具体的环境,因地制宜。没准儿人家就想学学Socket编程,甚至NAT穿透都还没有考虑到,就别拿VPN啊虚拟主机啊什么的吓唬人家了。谁刚刚Socket编程就直接上VPN,虚拟主机的。
作为大牛,你们应该推荐lz看TCP UDP协议的相关书籍和资料。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,