解惑:如何使得寝室的电脑和实验室的电脑远程相互访问(Linux和Windows)
解惑:如何使得寝室的电脑和实验室的电脑远程相互访问
一、前言
自从接触计算机网络之后就一直想着把实验室的电脑和自己寝室的电脑远程连接起来,结果总是郁郁不能成功,网上这样的教材也少的可怜,于是总是搁置下去,但是总是在脑中挥之不去,直到最近才有了一些思路和理解。
二、解决办法
2.1 前置条件
首先就是需要准备的环境,这里为了保密,将一些关键数据做了某些处理:
登录路由器:登陆的方法就是首先在自己的电脑上ipconfig/ifconfig出当前的网关,这个地址就是路由器的地址。
路由器中的“端口转发”和DMZ的区别:端口转发一条规则只能转一个端口,只是映射指定的端口。DMZ后,路由的所有端口都转发到指定的内网机器,开了DMZ后,不用再做端口转发。DMZ相当于映射所有的端口,并且直接把主机暴露在网关中,比端口映射方便但是不安全。 端口映射:端口映射分为动态和静态,动态端口映射:当连接关闭时,NAT网关会释放分配给这条连接的端口,以便以后的连接可以继续使用。静态端口映射: 就是在NAT网关上开放一个固定的端口,然后设定此端口收到的数据要转发给内网哪个端口,不管有没有连接,这个映射关系都会一直存在,就可以让公网主动访问内网的一个电脑。DMZ是“demilitarized zone”的缩写,中文名称为“隔离区”,也称“非军事化区”。它是为了解决安装防火墙后外部网络不能访问内部网络服务器的问题,而设立的一个非安全系统与安全系统之间的缓冲区,这个缓冲区位于企业内部网络和外部网络之间的小网络区域内,在这个小网络区域内可以放置一些必须公开的服务器设施,如企业Web服务器、FTP服务器和论坛等。另一方面,通过这样一个DMZ区域,更加有效地保护了内部网络,因为这种网络部署,比起一般的防火墙方案,对攻击者来说又多了一道关卡。
电脑安装的系统:windows或Linux
系统需要进行的操作:
- 如果是Linux系统,我们需要安装ssh相关的软件(openssh-client,openssh-server,ssh等),之后在电脑上运行这个ssh(sudo /etc/init.d/ssh start或者service ssh start),并且使用 ps -ef|grep ssh 去检查是否可以连接。
- 如果是windows系统,首先我们要关闭防火墙,这个是必须关闭的,不然不能ping通,同时需要在控制面板中进行远程连接设置。之后就需要安装SecureCRT这样的软件,以便能够远程连接和登录到具有ssh服务并打开的Linux系统。
寝室:一台路由器、几台笔记本电脑通过WiFi连接至该路由器,当然也可以使用网线。
登录路由器可以查看详细的信息,路由器的公网IP(210.41.xx.xxx),寝室PC的IP(192.168.1.xxx)。
实验室:一台路由器、几台台式机和笔记本,通过网线或者WiFi连接至路由器。
同样的登录路由器查看路由器的公网IP(211.83.xxx.xxx),自己实验室的台式机或笔记本的IP(192.168.31.xxx)。
2.2 实验室PC连接寝室PC
这一步其实就是让寝室的PC能暴露出来,在公网上能够得到访问,需要在寝室的路由器上设置,将自己想要暴露出去的机器的IP做成虚拟服务器,这样当外网链接到这个寝室的公网IP的时候,就会被导向到自己寝室的笔记本的IP上面,这是一种IP之间的映射关系。具体的方法根据路由器的不同而有所不同,包括需要暴露出的端口号(22),需要暴露出的IP等,设置完成生效即可。
将IP映射并暴露出来之后,我们需要做的就是在远程(实验室)进行连接了,这里我们寝室用的是Linux(Ubuntu18.04.2),实验室里面我们首先使用windows系统安装着SecureCRT的电脑来新建连接,输入寝室的公网IP和需要连接的电脑的端口号(22),之后成功的话需要输入计算机的密码,然后确认登录即可登录成功了。当然也可以使用实验室的Linux系统来登录,这个更容易一点,使用ssh 寝室的公网IP,输入密码,确认登录即可。
这样我们就能从实验室访问寝室的电脑了。既然我们等于登录了寝室的电脑,那我们是不是相当于寝室的电脑和实验室的电脑都在实验室的感觉呢?!但是如果我们回去了寝室,就不能享受这样的方便了,于是我们需要使得实验室的电脑也能够被寝室的电脑远程访问。
2.3 寝室PC访问实验室PC
其实这里是大同小异的,首先在实验室登录到实验的路由器上面,找到端口映射或者虚拟服务器,然后将访问规则写入路由器,并使之生效即可(这里我们可以设置访问的端口不是22,以便与实验室的其他同学进行区别)这样当我们从寝室访问实验室电脑的时候使用同样的办法,如果是windows使用SecureCRT输入实验室的公网IP,输入相应的密码登录即可。由此可以看到上述设置之中最重要的就是路由器了。
在这里我们如果在实验室,还需要到寝室进行设置吗?!答案是不用的,因为在2.2中我们已经能够登陆寝室的Linux系统了,那么我们只需要在登录的系统中使用ssh 实验室的公网IP即可。设置我们还可以将笔记本连接到其他的WiFi来使用SecureCRT连接实验室的台式机的电脑,看看设置是否成功。
2.4 路由器的设置
这里寝室使用的迅捷路由器,实验室使用的小米路由器,其中登录之后的UI界面是不一样的,迅捷路由器是并列的,很容易找到设置虚拟服务器的地方,而小米路由器需要绕一点,从系统设置-》高级功能-》端口转发中找到,最后一定要使之生效。
另外小米路由器还有一个DHCP,IP与MAC静态绑定,我们可以了解一下,这样我们设置的IP就和这台电脑进行一一绑定了,不会再被重新分配导致连接失败的情况发生。
三、windows与windows之间的远程桌面连接
同样的,windows之间的连接不需要ssh了,但是微软有着功能更强大的远程连接工具,我们可以通过这个连接工具来实现两台windows电脑之间的连接,首先让我们考虑局域网下的两台windows系统,IP分别为:192.168.31.144和192.168.31.160。
首先确保完成以下几件事情:
1、关闭两台电脑的防火墙;
2、在“我的电脑”-》“属性”下面的远程连接设置中允许远程桌面。
3、使用win+R,输入gpedit.msc打开本地组策略编辑器界面,在两台电脑上都要进行设置:
在下面界面中的条目,将一些允许的配置,默认是关闭的,打开之后输入TERMSRV/*,来使得生效。至于选择多少个这样的配置可以根据实际情况考虑,并且要使得生效需要使用gpupdate /force来更新组策略。
此策略设置适用于使用 Cred SSP 组件的应用程序(例如远程桌面连接)。 此策略设置在通过 NTLM 实现服务器身份验证时适用。 如果启用此策略设置,则可以指定可向其分配用户保存的凭据的服务器(保存的凭据是通过使用 Windows 凭据管理器来进行选择以保存/记忆的凭据)。如果未配置(默认情况下)此策略设置,则在正确的相互身份验证之后,允许向运行在任何计算机上的远程桌面会话主机 (TERMSRV/*) 分配保存的凭据,但条件是,客户端计算机不是任何域的成员。如果客户端加入某个域,则默认情况下不允许向任何计算机分配保存的凭据。如果禁用此策略设置,则不允许对任何计算机分配保存的凭据。 注意: 可以将“允许分配保存的凭据用于仅 NTLM 服务器身份验证”策略设置设置为一个或多个服务主体名称(SPN)。SPN 表示可以向其分配用户凭据的目标服务器。指定 SPN 时允许使用单个通配符。 例如: TERMSRV/host.humanresources.fabrikam.com 表示在 host.humanresources.fabrikam.com 计算机上运行的远程桌面会话主机 TERMSRV/* 表示在所有计算机上运行的远程桌面会话主机。 TERMSRV/*.humanresources.fabrikam.com 表示在 humanresources.fabrikam.com 中的所有计算机上运行的远程桌面会话主机
4、确保两台电脑都有密码,如果密码为空,有两种解决办法,一种是在刚刚的本地组策略编辑器中进行密码设置,另一种是打开账户设置,设置新的密码。
5、确保连接的时候两台电脑都在同一局域网下,并且没有关机,休眠,然后使用对方的IP,用户名,密码即可登录了,在连通之后还要注意如果将被连接的电脑睡眠或关机,则连接断开。需要注意的是,一旦一台电脑被远程连接,另一台电脑就会被锁屏,如果强行登陆,则被连接的电脑将会掉线。
最后让我们使用公网来连接,同样的需要在路由器中将这个网址使用NAT静态绑定暴露出去,方法比较简单,设置相关的端口规则或者虚拟服务器即可。然后将一台电脑连接到其他WiFi上面就可以测试了,发现完全可以连接。我们发现windows的远程桌面功能还是挺不错的,功能也比较强大,但是美中不足的是,有的时候我们在输入正确的账户密码的时候却连接失败,笔者也遇到这样的情况,每当这个时候就需要检查一下上面的一些设置看看是否是正确的,如果还是不行的话就去网上查一下看看到底是怎么回事。如下图所示,我们可以看到远程桌面的端口是3389,连接是没问题的,但是容易遭受黑客攻击,这个时候我们可以通过修改注册表来解决这个问题,选择自定义的端口来连接,具体可以参考这个网址来修改。
到了这里我们可以思考一下这两台电脑如何进行文件传输呢,其实也非常简单,在连接的时候进行一些设置,将本电脑上的一些磁盘映射到远程的电脑上即可实现文件传输了,非常的方便。
注意:在上述的操作中,可能有的键盘映射可能会出问题,解决办法为Fn+NumLock来切换回正常的输入。
ps:有兴趣的同学可以尝试一下在A电脑上远程控制B,并且在控制B的界面上远程控制A,这个时候会发生什么事情呢?!(两台都灭屏了,哈哈~~)很有意思吧!如果是在B电脑上听音乐,B的实体电脑会播放吗?如何能使得B的实体电脑播放呢?如果是对B关机呢?
四、修改Windows远程桌面端口号
修改端口号有这几种好处,第一,避免端口冲突,特别是一些常用的端口,自己占用之后别人就只能选择其他端口了;第二,增加安全性,修改端口之后使得外在侵入需要不断尝试,避免敏感端口被入侵,但是能够登录到路由器的人还是能够看到的。那么我们就要理解IP+portNumber的使用了,如果我们输入IP+端口号,那么这个端口号指的是需要连接的其他电脑的端口号,这点很重要。
下面我们来举例说明:
首先明确修改本机远程桌面端口号的意义是指其他机器访问本机的时候最终进行通信的端口号是已经修改的端口号,那么其他机器是否要指明自己访问的本机的端口号呢?!分两种情况,第一种是局域网访问,这点就必须需要了,也就是“内网IP+端口A(修改过的,记为A)”,不然使用默认端口号3389不能进行通信;第二种是外网远程访问,这个时候我们在本机所在的路由器上已经进行了端口映射设置,规则如下:外网端口(3389)-》内网IP+内网端口A+TCP协议;这样的话使用外网访问其实如果外网端口是3389,则会自动为我们转换,这个时候就不需要带端口号了,即使要带也是3389。当然是用内网用本局域网的公网IP来访问也是不需要的。一切都是因为NAT.
其次我们来谈谈怎么修改端口号吧,其实很简单修改注册表,然后重启即可。
注意要修改两个部分的,然后重启,这样即可生效。
最后就是路由器的设置了,端口映射一定要思考清楚是外网的什么端口映射到内网的什么IP,什么端口,使用什么协议,这样就能完全理解了。
比如本机修改端口为A,那么在本机所在的路由器上就要对外网连接到本机所对应的端口改为A;如果外网的端口为B,那么就需要在本机所在路由器上修改外网端口为B,本机根据情况修改。访问时如果是外网则不需加端口号,如果是内网,则须指明端口号。也就是在mstsc中输入IP:port即可。
五、总结
由此可以看到其实不使用DNS域名服务器,不需要域名也是可以远程进行连接的,前提是我们需要知道对应的公网IP,其实我们学习的计算机网络也是这样讲的,路由器在寻路的过程之中使用的协议并没有涉及到域名解析的,而是在刚开始的时候使用DNS服务器来获得域名对应的IP地址,也就是我们的公网IP,仅此而已。但是加上了域名与IP的绑定之后,使得我们更方便的记忆和使用相应的网站。同时路由器的设置,IP地址与公网地址的端口绑定(NAT),端口转发规则,windows的防火墙设置等等都是我们需要理解和掌握的。最后既然都搞定这个了,那么在一个局域网内,我们也很容易的使得两个电脑相互访问了。如果两个都是Linux,那么都安装ssh,运行并且ping通即可,如果都是windows,那么就要使用远程桌面了,如果一个Linux,一个windows,那么我们可以使用windows上的SecureCRT来链接即可。