通过frp内网穿透实现外网访问校内资源
原文地址 https://www.iots.vip/post/frp...
又到了要交论文的毕业季,如何在外网访问学校免费的万方、知网等数据库是个问题,本文记录了通过frp工具实现内网穿透从而实现外网访问校内资源的过程。<!--more-->
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。项目地址:frp
准备工作
我们需要用到的有:
- 一台具有公网IP的VPS(本文使用的CentOS 64位)
- 一台学校内网电脑(不要求有固定公网IP,能免费访问万方等数据库就行,本文使用的系统为win7 64位)
根据系统环境从项目版本页 下载对应的版本。这里我们下载 frp_0.18.0_linux_amd64.tar.gz与frp_0.18.0_windows_amd64.zip
配置服务器端
将frp_0.18.0_linux_amd64.tar.gz上传到服务器中并解压,这里服务器端只需要用到frps与frps.ini两个文件,其他的可以删除。
配置文件使用默认,执行:
sudo chmod +x frps ./frps -c frps.ini
输出信息为
2018/05/05 11:45:23 [I] [service.go:96] frps tcp listen on 0.0.0.0:7000 2018/05/05 11:45:23 [I] [root.go:172] Start frps success
即可。
配置客户端
解压frp_0.18.0_windows_amd64.zip,这里客户端也只需要用到两个文件,frpc.exe 与frpc.ini
我们这里使用http_proxy模式,关于frp的其他功能配置见frp项目首页 使用notepad++修改frpc.ini如下:
[common] server_addr = 你的服务器IP server_port = 7000 [http_proxy] type = tcp remote_port = 6000 plugin = http_proxy
打开命令提示符cmd,CD到解压目录
执行:
frpc.exe -c frpc.ini
无error即可。
同时在服务器端输出类似于
2018/05/05 11:45:39 [I] [proxy.go:86] [0dasdasdaadf3] [http_proxy] get a new work connection: [xxxxxx:xxx]
信息即表示测试通过。
正式部署
服务器端
将服务器端的程序丢到后台执行:
nohup ./frps -c frps.ini & #这里是将命令./frps -c frps.ini在后台执行不挂起,忽略输入并把输出追加到"nohup.out,可以使用jobs -l查看该进程
客户端
通过vb来实现后台启动frp客户端:
新建文件frp.vbs,添加内容为:
dim objShell set objShell=wscript.createObject("WScript.Shell") iReturnCode=objShell.Run("C:\Windows\frp\frpc.exe -c C:\Windows\frp\frpc.ini",0,TRUE)
这里C:Windowsfrpfrpc.exe -c C:Windowsfrpfrpc.ini 我是将frpc.exe与frpc.ini两个文件置于C盘Windowsfrp文件夹下的,大家可以根据自己的路径来修改。
这样我们直接双击frp.vbs即可执行,可以在任务管理器中看到frpc.exe的进程。
打开运行(开始菜单-运行)输入
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
并回车弹出资源管理器,将frp.vbs放入该目录下,即可实现开机后台自启(具体有什么用,你懂的)
浏览器设置
现在我们已经在家里准备用学校的万方了,应该怎样设置呢?
由于我们frp客户端使用的是http_proxy模式,所以需要在我们的浏览器中添加一个代理服务器:
点击浏览器设置——代理服务器设置(360极速浏览器直接在地址栏输入chrome://settings/proxy360)
在代理服务器列表中输入: 你的IP:6000,并在代理服务器设置中勾选该代理即可。
现在你已经能够免费下载万方等数据库的论文了。
其他注意事项
- 客户端与服务器端时间不能相差太大!否则会出现认证超时的错误:authorization timeout,关于如何同步服务器时间,可见CentOS服务器设置自动时间同步