赞
踩
frp是Github上的一个项目,是一种能够将内网ip映射到公网ip的内网穿透工具,启用frp服务之后,本来不具有公网ip的设备将因frp的映射获得一个公网ip,互联网上的设备可以通过访问这个公网ip的特定端口访问该设备。这就给仅拥有内网ip的设备的互联网通信难题带来了解决方案。
以[慈云数据](https://www.zovps.com/)服务器为例,如下图所示
如果是初次接触云服务器的读者,可以参考该博文:
教程以慈云数据为例,但不同的云服务器操作大同小异,稍作调整即可。
2.配置frp服务端
远程连接自己的服务器,进入终端。进入终端后注意当前的用户是否为root,用户名可从启动服务器后的第一行文字获知:
获取用户名信息
图中红线处显示的字符串为"admin",说明我现在正处于admin账户下,需要切换到root账户,在终端中输入:
sudo su root
当看到红线最新弹出的命令行中"@"前的字符串变成"root"时,说明已经成功切换至root用户,此时,我们在终端中输入命令将路径切换至root目录下:
cd /root
接下来,我们访问github,查看frp的最新版本。
https://github.com/fatedier/frp/releases
?github.com/fatedier/frp/releases
本文使用的frp版本为v0.31.1,以下均用v0.31.1作为示例,frp版本如有不同,只需要将下面指令中的所有"v0.31.1"字段更换成目前的版本号即可。
从github上获取并且安装frp:
wget https://github.com/fatedier/frp/releases/download/v0.31.1/frp_0.31.1_linux_amd64.tar.gz
tar zxf frp_0.31.1_linux_amd64.tar.gz
frp安装之后,进入目录并修改frp服务器端配置:
cd frp_0.31.1_linux_amd64/
vi frps.ini
修改frps.ini内容如下:
- #修改frps.ini内容如下:
- [common]
-
- # frp server的工作端口,默认7000,可以更改
- bind_port = 7000
-
- # http和https的端口定义
- vhost_http_port = 80
- vhost_https_port = 443
-
- # 连接时需要的认证token,类似于密码,可选填
- #token = 000000
-
- # 子域名,可选填
- # subdomain_host = frps.com
-
- # 404 页面
- custom_404_page = /root/frp_0.31.1_linux_amd64/404.html
-
- # dashboard图形管理页面使用端口
- dashboard_port = 7500
-
- # dashboard帐号
- dashboard_user = admin
- # dashboard登陆密码,可以自己修改,这里用admin
- dashboard_pwd = admin
修改完成,保存(修改时用到vi编辑器,对vi操作不熟悉的读者可以参考该博客:CentOS常用命令之:VI)
在终端中通过以下命令启动frp:
./frps -c frps.ini
每次需要使用frp服务时,都必须在/root/frp_0.31.1_linux_amd64/目录下输入该命令启动frp服务端,如果觉得每次要用时都要打开比较麻烦,可以通过编写自启动模板使该服务开机自启动,具体的设置可以参考该博客:
CentOS下搭建Frp内网穿透服务_centos6.5开机启动 frps-CSDN博客
?blog.csdn.net/kxwinxp/article/details/88428053
3.在客户端下载并配置frp
在https://github.com/fatedier/frp/releases下载对应版本的Windows版frp,由于本推文中,服务器端使用了frp_v0.31.1_linux_amd64.tar.gz,相应的,在Windows上应该下载frp_v0.31.1_windows_amd64.zip
将下载好的.zip文件解压到自己喜欢的目录,进入该文件夹,可以看到很多文件名中带有"frps"的文件以及文件名中带有"frpc"的文件,分别对应frp的服务器端和客户端,我们正在配置的是客户端,因此文件名中带有"frps"的文件均无需保留,可以删除。
删除后应具有以下文件/文件夹。
文件目录结构示例
用记事本打开frpc.ini,编辑内容如下:
- [common]
- server_addr = x.x.x.x # 填写自己的云服务器公网IP地址,有域名的读者也可以填写域名
- server_port = 7000 # 云服务器设置的端口为7000,所以这里填7000
- # token = 000000 # 与frps.ini设置的token一致,没设置则删去
- ?
- [test1] # []内可以自己起一个拉风的名字^_^
- type = tcp # 传输协议,可以是tcp或者udp
- local_ip = 127.0.0.1 # 计算机网络中,127.0.0.1代表本地地址
- local_port = 80 # 需要映射出去的端口号,80为http默认端口号,此端口号必须被本机放行
- remote_port = 10000 # 映射到云服务器上面的端口号,必须被云服务器的防火墙放行
PS:
最好将frpc.ini中"#“以及”#"后面的注释都删掉,否则frpc可能无法正常运行。
2. remote_port和server_port所用端口号不能被云服务器的其他进程占用,而且必须被云服务器的防火墙放行(我的印象中,慈云数据默认放行,需要在安全组中设置允许该端口的tcp/udp通信;)
3. 保存时确认frpc.ini编码类型为UTF-8。
大功告成,可以运行了。在打开CMD或者Windows Terminal用cd命令进入frpc.ini所在目录,输入:
frpc.exe -c frpc.ini
当出现类似下图的输出时,说明frpc.ini正常启动,已经可以通过公网ip对你的设备进行访问:
frp正常运行
4.创建一键运行脚本(可选)
再做一个小小的优化,每次运行frp服务都要在cmd进入该目录输入指令,略显麻烦,因此,在该目录下创建一个runfrp.txt文档,在文档的第一行输入:
frpc.exe -c frpc.ini
保存文件,修改文件名为runfrp.bat,以后只要双击这个.bat文件,就可以一键启动frp客户端服务了。
至此,frp配置完成。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。