SVN错误是由于服务器上的自定义钩子函数处理导致

SVN错误是由于服务器上的自定义钩子函数处理导致,第1张

从报错信息来看,是在SVN服务器端设置了pre-commit这个钩子,这个钩子在每次发起commit时自动执行,在这个钩子里检查了你的SVN库的占用空间,对于占用空间超过102400000的SVN库就拒绝继续提交
从这里看来,似乎你是租用了一个限制了容量的SVN服务器,但现在你的容量已经满了,估计你得联系SVN服务提供商给你扩容,或者搬迁到其他SVN服务器去了。

基本介绍SVN全名Subversion,即版本控制系统。软件介绍运行方式svn服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊,用户自行选择。存储数据svn存储版本数据也有2种方式:BDB(一种事务安全型表类型)和FSFS(一种不需要数据库的存储系统)。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。详见subversion。集中式版本管理系统Svn是一种集中式文件版本管理系统。集中式管理的工作流程如下图:集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上是不可以工作。下面举例说明:开始新一天的工作:1:从服务器下载项目组最新代码。2:进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多人都有这个习惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修改了那些代码,就需要这样做了)。3:下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。这就是经典的svn工作流程,从流程上看,有不少缺点,但也有优点。缺点:1、 服务器压力太大,数据库容量暴增。2、 如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,就不能提交,还原,对比等等。3、不适合开源开发(开发人数非常非常多,但是Google app engine就是用svn的)。但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题。优点:1、 管理方便,逻辑明确,符合一般人思维习惯。2、 易于管理,集中式服务器更能保证安全性。3、 代码一致性非常高。4、 适合开发人数不多的项目开发。5、大部分软件配置管理的大学教材都是使用svn和vss。安全领域的SVNSVN站在更高层次上对现在的安全产品,从系统和控制的角度进行了"有机"和"无隙"的整合。SVN是一个安全虚拟网络系统,它将系统整体的信息安全功能均衡合理地分布在不同的子系统中,使各子系统的功能得到最大限度的发挥,子系统之间互相补充,系统整体性能大于各子系统功能之和,用均衡互补的原则解决了"木桶原理"的问题。SVN能在跨接Internet, Intranet, Extranet间的网络所有端点实现全面的安全,而且还能提供基于企业策略的信息管理机制以充分有效地利用有限的带宽。SVN可以满足各种企业的要求,通过为公司内部网络、远程和移动用户、分支机构和合作伙伴提供基于Internet的安全连接。所以,我们可以将SVN看成是、防火墙、基于企业策略的信息管理软件集成在一起的Internet安全的综合解决方案。在这样一个网络系统中,所有互联网服务器端和客户端都是安全的,并有一个信息管理机制以不断地通过这个外部网络环境动态地分析及满足客户的特定带宽需求。SVN提供了目前基于网络实现的eBusiness 应用的安全服务,它包含:对多种应用进行全面的安全认证;支持多种认证及PKI;功能强大并对用户透明的通讯加密;面向用户的集中安全策略管理;统一跨接Internet、Intranet、Extranet的通讯。体系结构带有防火墙的网关,它是一个将防火墙和技术紧密结合的网关产品;SVN安全远程客户端软件包,一个功能强大的客户端软件,支持台式机用户、远程用户和移动用户,具有集中化管理的个人防火墙功能和用户的安全认证功能;SVN证书管理模块,一个用于SVN的完整PKI解决方案,它将完善的CA和LDAP目录服务器技术集成在一起;SVN硬件加密卡,可以通过硬件技术实现功能强大的各种算法以提高的速度和性能;SVN智能带宽管理模块,一个基于企业策略的带宽管理解决方案,可以智能地管理有限的带宽资源,以确保用于企业重要应用的性能可靠;SVN冗余管理模块,通过冗余网关集群和防火墙内的SVN冗余模块,对执行重要任务的和防火墙应用在出现故障时实现无缝切换。自动地址转换模块,一个自动管理IP地址和命名的解决方案,通过提供IP地址服务的跟踪和集中化管理,确保可靠地控制地址分配和提高TCP/IP管理效率;SVN安全服务器软件包,专门保护单个应用服务器安全的网关软件,它可以保护进行敏感 *** 作的服务器免受攻击和未授权的访问,使客户端建立与服务器间的安全认证和支持交换加密数据的连接;SVN安全客户端软件包,它将基于状态检测的防火墙和基于IPSec的客户端软件集成在客户端机器上,通过提供集中管理的个人防火墙和对所有企业用户的安全认证,增强客户端机器的安全性。它与 SVN安全远程客户端软件功能相比,增强了客户端的安全功能,如访问控制和安全初始化控制等。发展历史早在2000年,CollabNet, Inc就开始召集开发人员开发CVS的替代品。CollabNet 提供一套名为SourceCast协同工作套件,其中的一部分组件是版本控制。虽然SourceCast使用CVS作为其最初的版本控制系统,但是CVS的种种限制从一开始就处处可见,最后CollabNet明白必须要找到一个更好的解决方案。不幸的是,至少在免费license中,因为没有更好的选择,CVS已经广泛成为了开源世界中事实上的标准。所以CollabNet决定开发一个新的版本控制系统,保留CVS的基本特性但去除CVS的bug和不好的特性。在2000年2月,他们联系《使用CVS开发开源项目》(Open Source Development with CVS)(Coriolis, 1999)的作者Karl Fogel,并征求了他是否愿意在这个新的项目中担任一个角色。巧合的是,当时Karl已经和他的朋友Jim Blandy讨论了一个关于新的版本控制系统的设计。在1995年,这两人就成立了Cyclic Software,一个提供CVS的商业支持的软件公司。虽然他们经营商业服务,但是仍然在每天都在工作中使用CVS。使用CVS的挫折感使得Jim认真思考更好的方法来管理数据,不但确定名字为“Subversion”,而且完成了Subversion档案库的基础设计。当CollabNet的电话到来时,Karl立即答应了加入项目中,而且Jim让他的雇主RedHat Software同意让他在这个项目中不定期工作。CollabNet雇用了Karl和Ben Collins-Sussman,并在5月开始了详细设计工作。在得到了来自CollabNet的Brian Behlendorf、Jason Robbins和Greg Stein(当时是一名活跃在WebDAV/DeltaV规范过程的自由程序员)很多创意的帮助下,Subversion很快地引起了一个活跃开发者社区的注意。它找出并欢迎很多同样在CVS上受到挫折的社员能来为这个项目做点什么。Subversion 最初的设计Team定下了几个简单的目标。 它必须在功能上可取代 CVS,也就是说, 所有 CVS 可做到的事, 它都要能够作到。 在修正最明显的瑕疵的同时, 还要保留相同的开发模式。 还有, Subversion 应该要和 CVS 很相像, 任何 CVS 使用者只要花费少许的力气, 就可以很快地上手。经过十四个月的编码后, Subversion 于2001年8月31日开始实现 “自行管理”。 也就是说, 开发人员不再使用 CVS 来管理 Subversion 的代码, 而以 Subversion 自己来管理。优缺分析所有的文档都显示SVN可以取代CVS,同时SVN的问题和缺点都被隐藏了。不幸的是,我们并不认为SVN是CVS的替代品,尽管很多缺陷都被修改了。更有甚者,它甚至让人重回VSS。CVS和SVN的比较类似于比较C++和Java。很明显CVS和SVN都远比SourceSafe强大的多,如同C++和Java比Basic强大的多。CVS代表了几乎代码控制系统的所有功能项,尽管有时他的实现并不很方便。SVN修正并添加了一些CVS并不拥有功能。例如,创建标志和分支dubious,你在编辑文件时其他人不会有任何通知。SVN并不是CVS的替代品,只是个不同的系统,类似于CVS。它有些特有的功能,足以作为采用它的理由。这些功能使他更适合于开发环境,例如对PowerBuilder。下面你可以找到两者的相对优势、劣势。1 存储类型格式CVS是个基于RCS文件的版本控制系统。每个CVS文件都不过是普通的文件,加上一些额外信息。这些文件会简单的重复本地文件的树结构。因此,不必担心有什么数据损失,如果必要的话可以手工修改RCS文件。SVN是基于关系数据库的(BerkleyDB)或一系列二进制文件的(FS_FS)。一方面这解决了许多问题 (例如,并行读写共享文件)以及添加了许多新功能(例如运行时的事务特性。)。然而另一方面,数据存储由此变得不透明。2 速度CVS比较慢。整体而言,由于架构实现的不同, SVN的确比CVS快很多。在网络上它只传输很少的信息并支持更多的离线模式的功能。但这也是有代价的。速度的代价就是巨大的存储(完全备份所有的工作文件)。3 标志&分支SVN把采用标志和分支而抛弃了其他三件东西,实际上这意味着他们把这个概念替换为在档案库内部复制文件或目录以便保存日志。这样一来,无论标志创建还是分支创建都只是仓库内部的文件复制了。对分支而言:现在分支不过是在仓库内部的一个单独的目录而已了,不像早期还有些什么交错。对标志而言:已经不能对代码加标志了。在某种程度上说,SVN全文件编号补足了这个缺陷,SVN里整个仓库都有版本号,但不是针对单个文件。4 元数据CVS只允许存储文件。 SVN允许一个文件有任意多的可命名属性,功能十分完全。5 文件类型CVS最初是为文本文件存储而设计的。因此其他文件类型(二进制,统一码)文件的支持几乎没有,如需要的话则要有其他信息,并且客户端服务器端都要调整。SVN会关心所有的文件类型,不需要你来手工 *** 作。6 回滚CVS允许任意的回滚,在任意一个已递交的版本上,尽管这要花些时间(所有的文件都要分别处理)。 SVN不允许递交后回滚。建议把版本库里好的状态版本加到末尾,覆盖掉损坏的版本。而损坏的版本无论如何也是会存在数据库里的。(SVN的滚回 *** 作实际上是merge *** 作)7 事务CVS中的“零或一”事务原则根本没有实现。如果检入几个文件的话(加到服务器上),很有可能部分文件完成了,而另几个没有。作为一个潜规则,手工纠正这些并且对余下的文件 (而不是所有文件)一一重复检入。这样这些文件将在两阶段中被检入。SVN的确支持“零或一”事务原则,这是SVN的一大优势。软件相关SVN-Vss与Svn的对比1 支持重命名,这对 Java 开发来说非常重要。为了得到更好的代码,开发中需要经常进行重构,重构就经常涉及到文件的重构名,而重命名中 VSS中是不被支持的。2 开发的时候不一定要锁定。一方面导致重构不方便,另一方面,不能离线开发,使用 SVN就不同,可以带回家继续开发,回来后,提交就行了。3 多平台。可以支持多个平台下的 *** 作4 更好的客户端支持。Eclipse 中的 VSS Plugin 不如它的 SVN Plugin 好用。一个在 Windows 下用的 SVN 客户端 TortoiseSVN 也比VSS 的客户端好用(VSS 只有微软提供的一个 GUI 客户端)。5 更好地与外围工具集成。各种各样的外围工具(主要是服务器端),满足多种需要。如果有需要,也可以自己写插件或管理脚本,开放的架构,允许我们这样做。6 方便。一个例子:部署应用的时候,以前的做法是找出一个项目中修改过的文件,更新到服务器上去,现在可以在服务器上执行 svn export 命令,把代码库中的最新版本导出,完成部署(也可以替换回老版本)。7 速度与稳定性看起来都不错。学习它的管理、它的工作方式,是值得的。而 VSS是一个已经被逐渐抛弃的软件。如果时间不是多得没处用,那么就把时间花在最值得花的东西上面。SVN远程修改密码由于SVN没有自己的远程管理工具,只能上服务器上用命令行 *** 作,故 *** 作起来比较复杂。为此,svn俱乐部开发出svn管家对svn进行远程管理,svn管家目前推出了windows版本和linux版本,部署很方便,不用安装额外的环境如mysql、PHP或JAVA。svn管家不仅可以方便的远程修改用户密码,更可以对svn进行远程管理,极大地方便了SVN的用户。其他从启动这个项目到现在,虽然CollabNet提供了大部分的资金(它付出几位全职 Subversion 开发人员的薪水), 但这还是个开源项目, 由一组松散透明的规则所约定。 CollabNet 拥有代码的版权完全符合 Debian Free Software Guidelines。 换句话说, 每个人都可以随意地免费下载、修改、以及重新发布 Subversion; 完全不需要经过 CollabNet, 或是任何人的允许。

不用把文件复制一份到目录下的上传方法(类似把文件上传到网盘):

1、把URL复制到浏览器中,检查网络是不是通的,输入账号密码可以查看目录结构;

出现下图情况则网络不通或者URL错误,注意区分使用内外网的URL。

2、任意文件夹下右键-TortoiseSVN-版本库浏览器,英文版的菜单名称自行翻译。

3、打开版本库浏览器如下,输入已测试可用的URL,点击箭头可查看目录结构,与资源管理器相似。

4、演示上传一个本地文件夹(包含多个子文件夹、文件的)到“数据”目录下

5、在版本库浏览器的“数据”文件夹下右键-创建文件夹,以需要上传的文件夹名称命名。

6、资源管理器中找到需要上传的文件夹,右键-TortoiseSVN-导入,需要注意的是资源管理器中右键导入不会把最高一级的文件夹也导入,因此需要先手动新增最高一级的文件夹,里面的若干个文件夹和文件都会导入进去。

7、点击“浏览”按钮,选择需要刚刚新增的文件夹,点击确定,导入窗中版本库URL显示为需要上传的路径,点击确定。

8、导入显示如下

9、导入成功后版本库浏览器中可看到已上传的文件夹/文件

11、也可以在版本库浏览器的对应目录下直接右键-加入文件/文件夹,浏览选择需要上传的文件/文件夹

Android studio如何使用SVN进行版本控制?
如题,有哪位大神在实际工作中使用了Android studio和SVN的,能说明一下具体的 *** 作吗?下图是我测试SVN时初始化导入到SVN后,本地项目就变成一片红了,然后点击更新也没用;修改了内容后提交时,提示我没有任何修改,无法提交,真真的是郁闷啊!
添加评论 分享
默认排序

按时间排序
25 个回答
161
赞同
反对 知乎用户 Android Studio关联SVN相关 *** 作
161 人赞同 通过这两天对Android Studio的研究,终于搞通了Android Studio的基本 *** 作及与SVN的相关关联 *** 作(这样才能在公司的开发工作中使用);Google年底将会停止ADT插件的更新和支持,全面转向Android Studio(果然是自己的孩子啊),因此使用Android Studio进行安… 显示全部
通过这两天对Android Studio的研究,终于搞通了Android Studio的基本 *** 作及与SVN的相关关联 *** 作(这样才能在公司的开发工作中使用);Google年底将会停止ADT插件的更新和支持,全面转向Android Studio(果然是自己的孩子啊),因此使用Android Studio进行安卓项目的开发也是大势所趋,项目得闲之时研究一下Android Studio的使用;Android Studio的基本编辑 *** 作现在网上已经很多了,需要的可以找着看看,下面是这几天摸索出来的Android Studio关联SVN的相关 *** 作,时间较短,如果有疏漏或错误的地方还望指正。
一、Android Studio配置SVN
Android Studio关联配置SVN很简单,在Settings里面,找到Version Control->Subversion;在这个页面的控制面板中的General中将Use command line client打勾勾选上,然后浏览本地的SVN安装目录,选到"\svnexe"即可;
在Use command line client下面还有一个Use system default Subversion configuration directory,这个默认是勾选上上的,这个是svn相关配置信息的路径,保留默认路径就行,目前没有发现需要修改什么东西;以上 *** 作如下图:

二、Android Studio项目关联SVN资源库及添加忽略文件
在Android Studio中新创建一个Android项目,成功后我们先来添加要忽略的文件;在Android Studio中添加忽略文件同Eclipse有所不同,在Eclipse上我们什么时候添加忽略文件都可以,但是在Android Studio中只有在未关联SVN之前添加忽略文件才有效(试了好多次才将忽略文件忽略成功啊!)。Android Studio添加忽略文件同样是在Settings->Version Control(跟版本控制有关的设置都在这个目录下)下的Ignored Files里,点击加号进行忽略文件的设置,Android Studio默认给出了三种忽略方式,供开发者进行选择:忽略指定的文件、忽略文件夹下所有文件和忽略符合匹配规则的文件;如图所示:
点击右侧的“+”进行添加,“-”删除;Android Studio创建的Android项目一般需要忽略idea文件夹、gradle文件夹、所有的build文件夹、所有的iml文件及localproperties文件。
忽略完文件后,我们进行项目同SVN的关联,选择VCS->Import into Version Control->Share Project(Subversion);这里说明一点,在Import into Version Control下有Import into Subversion和Share Project(Subversion)两个选项:第一个是直接将项目导入到SVN服务器上,但是这样做本地的项目同SVN服务器没有建立起关联,在导入后项目所有的文件都会变成红色,而且在要提交到SVN服务器时会提示项目不是SVN下的工作副本;第二个是将Android Studio当前项目同SVN服务器关联起来,但是并没有将项目导入到SVN服务器上,需要在完成建立连接后再次提交项目到SVN服务器。两种方式都可以实现将本地代码提交到SVN服务器的功能,但是步骤有所不同,先来完成第二种方式的项目同SVN的关联及代码提交,第一种貌似不正规,之后再说;下图既是第二种方式将本地项目同SVN进行关联的:
之后会d出选择要分享的SVN地址及其他选项,如下图:
在Define share target下选择第二个可以再trunk下创建你当前项目的文件夹,相应的第一个选项是直接将整个文件都放到trunk文件夹下,第三个在项目文件夹下有创建了一个trunk文件夹,因此建议使用第二中方式;选择完成后点击Share就可以了,会d出让你选择SVN工作副本的格式化版本(jdk版本),如下图:
建议选择18format,我之前选择了其他的试了一下,发现项目总会报出一下错误,原因暂时未发现,就先这样选择吧;点击OK等待一会就能创建本地项目同SVN服务器的关联了;成功后悔自动刷新本地的项目,待项目里的内容变成绿色的即表示已经成功了,如下图所示:
到目前为止只是将项目同SVN服务器建立了联系,并没有将代码提交到SVN服务器上去;如何提交呢,其实很简单,只需点击SVN相关 *** 作按钮里的commit就行了(上图SVN相关 *** 作按钮左起第二个按钮);
点击Commit后Android Studio会先对当前代码进代码分析,如果有错误或者警告会d出如下的框,如果有错误冲突等需要解决后再提交,如果是警告可以忽略(同Eclipse相同);第一次将整个代码提交到SVN服务器时时间有可能很长,请耐心等待,之后再创建项目时就不会这么慢了。
成功后我们就完成了新建项目同SVN的关联及导入项目到SVN服务器上了。
关于第一种方式,在将本地代码导入到SVN服务器后将本地代码删除,然后从SVN服务器上将之前提交的代码更新下来,这样一来也可以同SVN建立关联正常进行开发;第一种方式和第二种方式的区别就在于:第一种是将代码先提交到SVN服务器上,然后再从SVN服务器上更新下来(本地项目同SVN服务器建立联系);第二种是先同SVN服务器监理联系,然后将代码提交到SVN服务器上去。建议使用第二种方式进行新项目的SVN关联。
三、Android Studio SVN代码冲突的解决
关于代码冲突解决的问题,首先要感谢一下知友ShinChven的回答建议。在使用SVN更新服务器上的代码时,有时会d出代码冲突的对话框,问你是否进行合并,并提供了三种合并方案:accept yours(使用你的)、accept theirs(使用别人的)和merge(合并);
前两个都是进行的覆盖 *** 作,就不多做解释了;当你选择merge合并时,会d出代码合并对照窗口,一共有三个屏,左右两侧时你和服务器不同的代码并高亮显示不同的部分,带有箭头和叉号,通过点击箭头将两边冲突的代码添加到中间的合并区域中去,点击叉号则辨识放弃那一段代码,待所有冲突处理完成后merge就成功了。

   互联网在我国发展至今的20多年里,以技术带动经济渗透到了人们的生活、工作、社交的方方面面,互联网时代大数据、云计算、AI为代表的技术蓬勃发展的2021年,我们已经离不开互联网了。

   现在的时代是信息与知识的时代,互联网数字化信息交互,信息快速传递和共享,尤其在疫情当下,互联网数字化信息交互,快速弥补了信息的互联互通,在远程办公,远程教育,视频监控,FTP服务器,NAS私有云、水利监管,部署独立服务器上的ERP系统,微信公众号、小程序、开发测试、还是访问局域网电脑、网站、博客、FTP/SVN/MAC等服务器都离不了互联外网访问。

一直以来ipv4的ip就十分紧张,截止2019年11月25日15:35(欧洲时间)最后一批IPv4地址已经分配完毕。这意味着欧洲区的IPv4地址池已经清空,从此之后,RIPE NCC所负责的欧洲、中东、中亚部分地区将完全停止分配IPv4地址,所以,不是每个人都有公网ip。

对普通用户而言,IP地址可以理解为个人网络的门牌号,有了独一无二的门牌号,才能在互联网的汪洋大海里精准定位和识别出,从而正常收取和发送信息。而如果门牌号用光了,就意味着新加入互联网世界的网民,拿不到进入互联网的通行证。

基于这样的情况,IPv6就因此诞了,IPv6的出现,主要是解决IPv4地址空间耗尽的问题,同时其他方面也比IPv4也精进了很多,但是,要真正用上IPV6,需要满足一系列先决条件,从终端设备、网卡、系统到路由器、光猫,以及对应的网站等等,最关键的,其实还是运营商和内容服务商,都要支持或对IPV6做相应的适配,目前ipv6还没有广泛围普及应用,我们还是要面临没有公网IP的问题。

目前局域网环境中主流的外网访问内网分DDNS和内网穿透两种方式,以下将分别介绍:

外网访问内网设备的基础是通过IP来通讯,而且运营商提供的公网IP为动态IP,IP地址会定时变更,所以我们需要使用DDNS服务来使域名绑定随时变化的动态公网IP。

动态域名解析DDNS作为互联网尤其是古早期风靡一时的连接技术,资深网虫网络达人一定不会陌生,在拨号上网、建站风潮迭起的年代,通过DDNS人们可以将本地搭建的个人网站、FTP、管理软件、视频监控等映射到外网进行远程访问。

DDNS不需要用户注册公网固定IP地址,只需要能上网就可以(通常普通用户都是拨号上网这种浮动IP的模式),这种上网方式就决定了每次上网IP都是变化,然后通过DDNS将这个变化的IP与域名绑定,用户只需要记住绑定的动态域名即可,这样就可以通过对应的域名直接访问服务。

DDNS是通过用一个固定的域名绑定动态的公网IP地址,外网只需要使用这个固定域名就可以对内网的服务实现远程访问,服务器端由DDNS服务商负责运营,用户只需安装DDNS客户端即可成功实现动态域名解析,因简单易用、成本低,DDNS迅速得到普及和应用。

借助路由器DDNS绑定域名,可以把电脑当作服务器来使用,帮你在公司或家里构建虚拟主机,而不用花高额费用去付虚拟主机租金,通过域名可以让全球其他互联网用户,访问指定的文件或者网页程序及服务器,并且还可以和用户进行交互;

因为环境和设备及需求不一样,DDNS的解决方案也不一样,主流的有:

①集成DDNS的路由器

具体的说就是采用集成DDNS的路由器,通过申请其域名和服务,把申请所得用户名密码填入路由器DDNS模块相关项,再由路由器上作映射指向所需访问的服务及设备即可,外网通过访问域名即可访问到当前内网相关服务及设备。

②集成DDNS的设备

对于无人值守路由器的状况下,也可采用集成DDNS的网络设备,把申请DDNS服务得到的用户名密码填入相关项,通过一条ADSL等宽带线路直接相连,就可以实现外网通过域名直接局域网的服务及设备。

③运行DDNS客户端软件

在局域网内部的任一PC或服务器上运行DDNS客户端软件,此时域名解析到的IP地址是局域网网关出口处的公网IP地址,再在网关处作端口映射指向即可实现外网访问本地服务及设备。

    如果你无法通过DDNS的方式来实现,那么还是可以选择内网穿透的方式来访问内网设备。

内网是相对外网来说的概念,穿透是在跨网(外网访问内网)下的互通,比如访问搭建在内网服务器上的办公软件(OA、ERP)、网站,甚至内网的个人计算机桌面,如果内网没有公网IP,无法点对点连接,就需要内网穿透。

在实际生活中,我们所在的网络环境其实是很复杂的,可能需要接入的设备连一个公网IP也没有,仿佛在复杂的网络里是会迷失自我,在一层层网络中找不到所寻的路由,最终无法通过路由器连入互联网,这样断开的网络就变成了孤岛,无法接收也无法传送数据。

内网穿透即是内网映射,内网(IP)端口映射外网(IP或域名),进行地址转换,也就是把公网的地址进行翻译,转成为一种私有的地址,然后再采用路由的方式ADSL的宽带路由器,这样就具有一个动态或者是固定的公网IP,最后ADSL直接在交换机 上,以实现将内网服务器、网站、和应用发布到外网访问的目的。

可以自己搭建内网穿透服务,也可以直接借助第三方软件或硬件内网穿透服务器,由服务器代理访问内网安装过客户端的设备,类似有花生壳、金万维等都可以直接在网上找到,通过穿透软件进行端口映射,外网通过映射后生成的域名就可以访问内网应用,基本功能大同小异,结合自己使用场景需求选择。

所以本质上DDNS和内网穿透都在干一件事,但是记录的东西有所不同,前者记录的是公网地址,后者记录的是公网地址和端口号等。

DDNS这功能通常在路由器里实现,穿透是指外来访问经路由器再到具体的一台主机上,这个过程就是穿透,这个也需要本地软件/硬件配合实现。

DDNS 的主要作用就是捕获用户每次变化的 IP 地址,然后将其与域名相对应,这样其他上网用户就可以通过域名来与用户交互了。

选择哪种实现外网内网服务,具体可结合实际环境及设备来选择适合的方案,这样一来,在外也能随时随地访问内网环境下的应用和网站。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13497449.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-19
下一篇 2023-08-19

发表评论

登录后才能评论

评论列表(0条)

保存