本文借鉴 使用frp进行内网穿透 - 少数派
目录
1. 准备材料
2. 服务端部署
3. 服务端后台运行
4. 客户端部署
(1) 一台具有公网IP的实体机(服务端,也可以是vps)
(2) 一台网页部署内网的实体机 (客户端)
我当前的服务端与客户端都是 ubuntu 16.04 amd64
首先需要下载putty.exe,可以在官网下载最新的,也可以在下面的百度云链接下载
putty下载百度云链接:
链接:https://pan.baidu.com/s/1cXyB-rjpW2vVldU_4WL97w
提取码:neyv
下载之后双击打开,直接输入IP地址,端口不用改变,然后点击Open
点击后会弹出类似终端的东西,输入用户名和密码
进入后我们确认一下系统信息
这个时候我们为了区分之前做过的其他项目,我们创建一个新的文件夹test,之后我们输入ls查看一下
进入新的文件夹后下载
我当前使用的是frp,版本为 frp_0.34.3_linux_amd64.tar.gz,现在我的服务端是不能使用图形化界面的,所以只能使用命令下载,到后面客户端的时候可以使用命令下载,下面是 frp_0.34.3_linux_amd64.tar.gz 的百度云链接
链接:https://pan.baidu.com/s/1MHmYyx7sZPeVvTzRoPsHFQ
提取码:hr99
截至2021/7/22日frp已经更新到0.37,我们也可以使用新的版本,如果想使用其他老的版本可以在github上搜索frp,然后选择这个
进入后向下滚找到README,在README中点击这个
进入这个页面后,向下滚动就可以看到之前的版本了
下面我简单说一下如何在linux使用命令行下载github上的文件,在github上进入frp后,点击这个
进入后向下滚,找到v0.34.3,然后点击v0.34.3
进入后向下滚,找到这个
这个时候右键这个链接,然后点击复制链接地址,这个时候我们会得到下载地址 https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_linux_amd64.tar.gz
然后我们在linux命令行中输入 wget https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_linux_amd64.tar.gz
这样就会在我们所在的目录将这个包下载下来
回到我们的部署上来,下载之后进行解压,解压命令是tar –zxvf frp_0.34.3_linux_amd64.tar.gz,解压之后进入文件夹下面有两个文件(由于我之前做过一次并把过程记录下来了,所以下面的文件夹名称为frp)
进入解压后的文件夹,里面除了下图的东西还有frpc和frpc.ini,那个是客户端用的,我把这两个删掉以免之后误操作,命令是
rm frpc
rm frpc.ini
删除之后的解压后文件夹会有以下文件
此时我们修改frps.ini文件,修改之后和下面这个图一样就行
这里面所有的值都是可以自定的,我们第一次弄和教程一样就行
修改之后保存并退出,然后输入下面的命令运行服务器
./frps -c frps.ini
然后这个时候就会出现这个
这个时候我们的服务端已经部署好了,我们此时可以打开服务器的表盘页面,浏览器输入服务器IP+:7500,之后会出现这个页面
为了让关掉putty后,服务端仍然工作,所以我们需要把frp改为后台运行
同时按下ctrl + c退出,退出之后我们就访问不到我们的表盘了,然后此时输入nohup
再输入 nohup ./frps -c frps.ini &
此时再次访问我们的表盘,发现可以访问了
我们最后再确认一下,此时按 ctrl+c 退出,然后输入jobs
如果发现有第三条,说明确实已经在后台运行了,此时可以关掉putty,我们的服务端部署完毕
客户端是我们实际访问的主机,我现在用的客户端也是ubuntu 16.04 arm64,我们把frp_0.34.3_linux_amd64.tar.gz也放在客户端中,我新建了一个文件夹,然后在新建的文件夹中解压
解压
解压之后会解压出这样一个文件夹
我们进去,看一下里面的文件
由于现在是部署客户端,所以我们删掉服务端的文件(frps,frps.ini),避免误操作,删除之后现在文件夹中有这些文件
修改frpc.ini
按照这个格式修改
然后我说一下每个都对应哪个
server_addr是服务端的IP,server_port是之前设置服务端的bind_port,token是之前服务端设置的token
Type不变,local_ip是要访问的IP,我当前的本机,所以我输入127.0.0.1就行,我本机要访问的端口是8081,remote_port是在服务器IP后输入的端口,我现在设置为7001
这个7001的目的是,我现在在浏览器上访问我们服务端的IP+:7001,它就会跳转到127.0.0.1:8081
这个是我们要穿透的另一个端口,我们给到7002
保存退出之后,输入./frpc –c frpc.ini
如果是上图这个情况就可以直接运行了,我测试了一下,在非局域网情况下输入我们服务端的IP+:7001确实可以访问到127.0.0.1:8081
如果此时在其他互联网内能访问到客户端的网页,说明已经穿透成功了,如果出现其他问题建议看一下客户端的部署文件有没有问题
本文的例子是Ubuntu于Ubuntu之间进行穿透,如果使用别的系统也可以实现穿透,使用frp的不同系统即可
我们使用一个服务端可以有多个客户端,比如我下面这个就是在另一个机器上进行穿透的,服务端不用改,我们只需要操作客户端即可
server_addr的IP与上面相同,经测试使用两个机器穿透互相并不影响