说在前面——————以下内容均建立在你有一台外网服务器的基础上进行。阿里云、腾讯云什么的都可以。

本文讲述:

1.在任何地方通过ssh连接公司或者家中的服务器

2.在任何地方通过远程桌面连接公司或者家里的Windows电脑

前言

好久没有与大家分享知识,内心十分过意不去,正好最近有用到frp,所以今天就来简单的和大家说一下通过frp实现内网穿透。

一、为什么要在家远程连接公司的电脑?

1.做我们这行,加班是难免的嘛。即使我们偶尔调休也难免有同事打电话咨询你。可是有很多东西根本记不住,尤其像代码这种东西。有时着急不得不回一趟公司,非常浪费时间。如果我们可以远程连接岂不是更方便。

2.当然也未必是家里到公司,也可以是公司到家里、公司到学校、家到学校,可以穿透到一切你想穿透的地方。

3.这里我们说的是使用frp进行内网穿透,映射端口实现远程连接。可能有人会问了,网络上面有很多类似的现成软件,为什么不直接使用?像TeamViews个人版是完全免费使用的,并不是因为他不好,只是应需定制性并不高,如果公司的网络不稳定,会造成teamviews掉线,无法进行无人值守。

二、什么是frp?除了远程桌面,frp还可以做什么?

1.frp可能有些伙伴了解,有些伙伴不了解。这里呢,简单的介绍一下子。frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。作者fatedier,项目开源在github,大家自行搜索即可下载。

2.也就是说,我们能做的事情有很多,比如通过3389端口映射到外网,即可随时随地远程桌面连接自己的电脑;也可以通过映射22端口实现ssh的穿透;可以通过80、8080等等端口映射穿透自己本机的web服务到公网。还有很多很多的功能我们就不做过多的赘述,作者也不是研究很深,在这里只是给大家实现一些常用的功能。

三、映射22端口实现内网穿透ssh连接公司服务器。

1.首先我们操作云端的服务器,使用wget命令下载frp并解压。


$ wget https://github.com/fatedier/frp/releases/download/v0.23.1/frp_0.23.1_linux_amd64.tar.gz $ tar -zxf frp_0.23.1_linux_amd64.tar.gz


2.进入解压后的目录并编辑frps.ini配置文件。

frpc win7_frpc win7

 

3.除非你想更改映射的端口,否则无需修改,直接执行如下命令:


$ ./frps -c frps.ini


可得如下结果:

frpc win7_远程连接_02

 

4.上图显而易见可以看到是启动成功了,但是我们不能关闭终端,否则会自动关闭。一般来说我们是需要后台一直运行着的,所以我们使用nohup命令让其后台执行。


$ nohup ./frps -c frps.ini


5.再然后呢,就是在我们的云服务器的安全规则中开放对应的端口,这里我就不做详细的介绍了,大家自行开放端口即可。

6.接下来我们配置本地的机器与云端服务器相关联。同样的我们需要先下载frp,步骤同第一步。

7.这次因为我们是客户端,所以我们编辑frpc.ini这个配置文件。

frpc win7_远程桌面连接_03

 

途中的local_ip表示本地客户端的IP,Local_port表示本地客户端对应的端口,remote_port表示对应云端服务器的端口。

8.所有remote_port对应的端口必须在云端服务器中开放,否则无法进行访问。

9.接下来我们启动客户端,我们依然使用后台运行来启动。


$ nohup ./frpc -c frpc.ini


10.万事具备,还欠一个ssh密钥,我们需要将密钥加入到列表中。这样我们就可以使用ssh -p 6002 user@云端IP 远程连接到我们内网的机器了。

四、映射3389端口实现内网穿透远程桌面连接公司Windows桌面。

1.看了上面可能会有人说了,我不需要ssh链接服务器,我只是想远程桌面连接我公司的电脑用来远程调试bug(ps:我们程序员都是非常非常的敬业的,对于IT事业也是非常非常的热爱的)。所以这一部分呢,我们来说一下如何通过frp映射3389实现远程桌面。

2.远端服务器我们无需更改,也不用去动,可以与很多客户端连接也没有问题。所以我们只需要在我们的Windows电脑中安装frpc并启动即可。

3.大家自行搜索frp下载,到其GitHub开源下载中心下载对应的Windows版本即可,解压并修改frpc.ini。如图:

frpc win7_远程连接_04

 

4.因为软件限制,我们无法直接运行exe文件启动,我们需要使用dos命令来启动:


$ cd 解压路径 $ frpc.exe


5.每次启动都要执行这两个命令会非常的麻烦,所以我将其封装成了一个bat批处理文件,每次启动只需双击启动批处理就可以。

frpc win7_远程桌面连接_05

 

6.当然还有一个问题,那就是我们同样无法关闭dos命令框,如果关闭frp也同时被关闭了,所以我们需要同样需要后台执行,所以我找到了一种办法,可以使其后台运行。编写一个vbs脚本。

frpc win7_服务器_06

 

7.我们只需执行该脚本即可实现后台执行bat批处理文件。但我们还需要手动去启动他,相对不太方便,所以我们将其加入到开机启动,这样每次开机都会自动执行这个脚本以启动frp,协助我们实现内网穿透。加入开机启动的方法我就不细说了,大家自行搜索。

8.万事具备我们可以通过Windows自带的远程桌面连接一下:

frpc win7_远程连接_07

 

其实与内网的远程桌面一般无二,仅仅是指定了端口。至于速度嘛,就跟你电脑以及你的服务器息息相关啦。

五、映射80端口实现内网穿透远程访问本地web项目。

1.声明一点,并不仅仅是80端口,任意端口都可以映射本地的web项目,其实上面说了这么多,用法都是一样的,这个呢我就不详细的去说明了,同样域名直接解析到外网服务器就可以,只需映射本地与云端的端口即可实现穿透一切。

六、最后再说几句。

1.好久没有为大家带来有趣、有用的知识了,在这里给大家赔个不是!!!

2.frp呢其实还有好多好多的用法,我也并没有完全的去研究它,大家有空的话可以详细的去研究一下,是一个非常的不错的开源项目,相对于广大的程序员们来说同时也是一个非常有用的工具。

3.最后呢,感谢大家的阅读以及关注,希望日后可以为大家带来更多的有用的知识。