外网访问学校寝室局域网内任意电脑


[success]最近一直在研究内网穿透,因为我在自己的服务器上面部署了很多服务,想自己去访问,但是一个一个穿透过去实在麻烦,而且直接暴露在公网上也有很多安全问题。所以我把目光转向了VPN[/success]

说实话我一直以为VPN就是拿来翻墙的,虽然现在的确有很多人拿来翻墙用,不过我自己谷歌了一下,才发现并非如此,下面是VPN的介绍。

是一种常用于连接中、大型企业或团体与团体间的私人网络的通讯方法。它利用隧道协议(Tunneling Protocol)来达到保密、发送端认证、消息准确性等私人消息安全效果,这种技术可以用不安全的网络(例如:互联网)来发送可靠、安全的消息。需要注意的是,加密消息与否是可以控制的,如果是没有加密的虚拟专用网消息依然有被窃取的危险。

VPN属于远程访问技术,简单地说就是利用公用网络架设专用网络。例如某公司员工出差到外地,他想访问企业内网的服务器资源,这种访问就属于远程访问。


说的直白一点就是我的路由器如果启动了VPN服务器,如果我连接到了这个VPN就相当于我自己连接了这个路由器,然后就可以像平常一样,直接访问服务器里面的各种资源。而且你访问网站时其实是通过我的路由器来访问,然后发送数据给你。所以这也是为什么VPN可以拿来翻墙的原因。当然如果你的路由器开启了SSR服务,你也顺便可以拿这个VPN来翻墙。。。

路由器开启VPN服务

说实话,感觉路由器刷了潘多拉固件就是爽,不仅路由器变成了一个mini的linux系统,而且还有了非常多的功能。

潘多拉固件自带VPN服务,所以我可以直接打开。

[infobox title=”注意”]VPEN协议只能选openVEN,PPTP和L2TP因为端口固定,还有国内网络提供商会自动把这个东西给过滤掉(这也是为什么国内的VPN基本上没用的原因)。所以你是无论如何都连接不上的。。。我刚开始用PPTP死活连接不上,搞得我一度以为是自己的问题。。。还有L2TP虽然连接上了,但是根本无法访问网络(或者说网速几乎为0)。所以这里我们就只能选择openVPN了。

当然,虽然公网访问是会被屏蔽,但是如果你只是在局域网内访问,那么就没问题。比如我的wifi就在校园网的局域网下面,那么我就只需要记住路由器的IP地址就可以了,然后直接访问这个地址就可以了

[/infobox]

这些设置其实都不用管,默认就可以了,当然要注意自己把默认端口改一下,这样网速会快一点。。。

还有要注意的一点就是,我们要自己生成一下秘钥

然后导出client.ovpn文件就可以了。然后我们下载一下openVPN的客户端

然后自己导入配置文件,选择你自己生成的clien.openvpen文件就可以了。

然后就可以在局域网内访问了。。。当然因为我的路由器设置的是动态的ip,所以局域网访问还得时刻知道ip地址。。。

内网穿透

只是在局域网访问就没什么意思了,我想在任何地方访问那么该怎么办呢?这个时候就要请出内网穿透这个大佬了。

内网穿透其实也很简单,我这里使用的是frp,nps还没有时间去研究。。。

frp我之前写过一篇文章讲解如何使用,这里我就不多说,我们需要下载服务端和客户端。服务端我下载的是amd64的版本,路由器是不能用这个的,我的路由器不是amd架构,而且还是32位。。

自己根据自己的路由器和服务器情况进行选择(linux下可以输入 uname -a查看系统架构和位数)

然后把服务端放在阿里云服务器上,客户端放到路由器里面。

服务端和路由器的配置文件分别如下。

服务端

[block]
[common]
bind_port = 7000
token=xxxx(服务端和客户端必须相同才可以访问)
[/block]

客户端

[block]

[common]
server_addr = xxxxx #服务器IP地址
server_port = 7000 #通信端口
token= xxxxxxx

[vpn_port1]
type = udp
local_port = 1924 #这个是本地的openvpn端口
remote_port = 1924 #这个是你服务器的映射端口

[/block]

配置好后,自己直接让两个服务都挂在后台即可。

这里说一下让服务在后台运行的指令。

[highlight lanaguage=”bash”]

#这个是当终端退出时继续运行这条命令
nohup command  >  out.file  2>&1  & 
#这里是把错误和日志都打印在out.file这个文件中
#注意,必须要按照这个规范写,当然还有简写的形式
nohup command &

[/highlight]

2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个&, 是让该命令在后台执行。 试想2>1代表什么,2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出.

文章作者: 小游
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小游 !
  目录