5分钟学会神器frp内网穿透

青年:最近我想升级一下电脑配置,向项目经理申请,他拒绝了,产品经理听到后,也帮忙出主意说,最近用的teamviewer都是商用的,你能为公司省点钱,找个免费的替代产品,换电脑的事就板上钉钉了。

禅师:国外认为人类是由猿猴进化而来的,在中国神话故事里也有类似的桥段。话说猴子如果想转世做人,就要把毛拔掉,有些猴子一毛不拔,直到现在也不配做人。

青年:大师就教教他们怎么好好做人吧

禅师:本猿已经够秃了,不能再拔了。

青年:目前市面上的远程工具动不动要收费,实在是不友好,尤其是teamviewer莫名其妙的就判为商用,苦其久矣。有没有什么更优秀的远程工具?

禅师:何必使用第三方工具,自己搭建一套内网穿透工具,想怎么玩就怎么玩,也避免了被卡脖子。目前推荐使用frp实现内网穿透,不仅可以远程访问,也可以通过 ssh 访问内网机器,通过http或https访问内网web 服务等等,让家里的电脑成为公网服务器,相比腾讯云或阿里云,简直把上云成本降为零。

青年:听上去很诱人,刚刚双十一买了一个腾讯云服务器,新用户99一年,1核CPU、1G内存,就这点配置也就只能挂个静态页面。听大师这么一说,感觉前途又光明起来了呢。

禅师:年轻人不要高兴的太早,脚踏实地才是我们搞技术的本分。接下来就一起踏上这场“穿透”之旅吧。首先第一步,先买一个云服务器。

青年满脑子充满了问号,内网穿透不就是为了干掉云服务器,怎么第一步就是先买一台云服务器呢,难道我们长大后都要变成自己讨厌的样子吗。

大师不紧不慢的说,买云服务器是为内网穿透找一个跳板,比如你公司里的电脑想要访问家里的电脑是不可能的,两个不同局域网的电脑就像两个不同世界里的人,说不上话的,这个云服务器就是穿线搭桥的红娘,千里姻缘一线牵。

首先说明的是,需要一台win10系统的家里电脑作为客户端,一台腾讯云服务器作为服务端,搭建好后就可以用手机,单位电脑,或者笔记本访问家里电脑上的服务了。

5分钟学会神器frp内网穿透_第1张图片

1.frp服务端设置(腾讯云服务器)

       下载软件传到腾讯云服务器上

https://github.com/fatedier/frp/releases/

5分钟学会神器frp内网穿透_第2张图片

使用FinalShell工具将frp_0.34.3_linux_amd64.tar.gz上传到腾讯云的/opt路径下,在腾讯云服务器终端执行以下命令进行frp服务端设置

cd /opt

tar -zxvf frp_0.34.3_linux_amd64.tar.gz 

mv frp_0.34.3_linux_amd64 frp

cd /opt/frp

vi frps.ini

frps.ini内容设置

[common]
bind_port = 7000
token = thismytoken
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = 123456
vhost_http_port = 10080
vhost_https_port = 10443

 

  • bind_port表示客户端和服务端连接的端口,客户端也需同样设置并一致(必填)
  • token是用于客户端和服务端连接的口令,客户端也需同样设置并一致(必填)
  • dashboard_port是服务端仪表板的端口,服务端仪表板查看frp服务运行信息。(按需)
  • dashboard_user和dashboard_pwd是打开仪表板页面登录用的用户名和密码(按需)
  • vhost_http_port和vhost_https_port用于HTTP或HTTPS请求时使用的端口(按需)

按Esc输入:wq保存frps.ini内容

使用命令启动frp服务器端

cd /opt/frp

./frps -c frps.ini

启动成功

2.frp客户端设置(家里电脑)

将从https://github.com/fatedier/frp/releases/下载的frp_0.34.3_windows_amd64.zip放在家里电脑的D盘下并解压

5分钟学会神器frp内网穿透_第3张图片

打开frpc.ini,设置如下

[common]
server_addr = 1.1.1.1
server_port = 7000
token = thismytoken

[rdb]
type = tcp
local_ip = 127.0.0.1           
local_port = 3389
remote_port = 6000

  • server_addr就是购买腾讯云服务器给的外网访问的IP,此处的1.1.1.1是瞎写的,填上自己购买的腾讯云服务器IP即可,可在云服务器-实例-主IPv4地址看到(必填)
  • bind_port表示客户端和服务端连接的端口,服务端也需同样设置并一致(必填)
  • token是用于客户端和服务端连接的口令,服务端也需同样设置并一致(必填)
  • [rdb]是一个规则名称,可自定义
  • type是转发的协议类型
  • local_port是本地应用的端口号,本例子的3389是远程桌面的默认端口
  • remote_port是该条规则在服务端开放的端口号,在公司电脑win10电脑开始里输入mstsc,调出远程桌面连接,输入腾讯云服务器IP加remote_port就可远程家里电脑了,比如,填入1.1.1.1:6000

启动客户端

由于win10电脑没法像linux电脑使用命令行启动frp,需要新建一个vbs格式文件,按win10电脑的方式启动frp客户端,本质上也是启动文件和配置文件一起启动

创建文件frp.vbs,输入内容

dim objShell 
set objShell=wscript.createObject("WScript.Shell") 
iReturnCode=objShell.Run("D:\frpc\frp_0.34.3_windows_amd64\frpc.exe -c D:\frpc\frp_0.34.3_windows_amd64\frpc.ini",0,TRUE)

其中有两处路径替换为frpc.exe所在的目录,如D:\frpc\frp_0.34.3_windows_amd64

点击frp.vbs,查看任务管理器

在浏览器中输入腾讯云服务器IP:7500也就是1.1.1.1:7500,查看服务端仪表板frp服务信息,输入账号:admin,密码:123456

5分钟学会神器frp内网穿透_第4张图片

单位win10电脑中点击开始,输入mstsc调出远程桌面连接,输入腾讯云服务器IP:6000也就是1.1.1.1:6000,就可以远程访问家里电脑了,以后就可以告别teamviewer了

5分钟学会神器frp内网穿透_第5张图片

3.frp应用

3.1ssh连接

由于以上家里的电脑(frp客户端)安装在win10系统上,使用3389可实现远程桌面,对标linux系统,远程访问软件就要用到FinalShell或Xshell,因此在linux系统上安装客户端需要在frpc.ini,加上以下内容:

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 7001

在FinalShell或Xshell中输入腾讯云服务器IP:7001也就是1.1.1.1:7001,加上linux的账密就可访问

5分钟学会神器frp内网穿透_第6张图片

 

3.2web服务连接

家里的电脑(frp客户端)开启了一个web服务,比如启动tomcat,那么客户端的配置文件frpc.ini需要填入以下内容

[web]
type = http
local_ip = 127.0.0.1
local_port = 8080
custom_domains = www.youdomain.com

以上custom_domains格外扎眼,这个就是域名设置,必须要有,www.youdomain.com还是在腾讯云买的最便宜5块钱一年,域名注册-我的域名-注册域名中即可购买,然后解析域名,将腾讯云服务器IP和自定义的域名绑定,以后访问腾讯云服务器就直接输入域名就可以了,比如用百度,就直接输入www.baidu.com

然后公司电脑浏览器输入www.youdomain.com:10080即可(此处的10080就是服务端设置的vhost_http_port),查看到家里电脑(frp客户端)启动的web服务

 

3.3文件访问服务

家里电脑(frp客户端)的frpc.ini添加以下内容

[my_static_file]
type = tcp
remote_port = 6001
plugin = static_file
plugin_local_path = E:\\temp
plugin_strip_prefix = static
plugin_http_user = abc
plugin_http_passwd = 123
plugin是需要用到的插件
plugin_local_path是要对外暴露的文件目录
plugin_strip_prefix访问url携带的前缀
plugin_http_user访问账号
plugin_http_passwd访问密码

单位电脑的浏览器输入:

http://1.1.1.1:6001/static/

输入账号密码就可查看家里电脑分享的文件,其中1.1.1.1是腾讯云服务器对外的IP

 

青年:说了那么多的腾讯云,请问大师这么卖力的为腾讯云宣传,能拿多少提成?

禅师:这个是商业机密,你能保守秘密吗?

青年:当然

禅师:我也能

 

总结:

1.frp服务端设置( 腾讯云服务器)

2.frp客户端设置(家里局域网电脑)

3.frp应用

你可能感兴趣的:(实用工具)