Table of Contents
前言
提供内网穿透服务的厂家还挺多,但是问题层出不穷。所以自己就搭建一套服务,自己来使用。
流程
- 码云自建加速服务
- 购置云服务器
- 购置本地服务器
- frp简介
- frp穿透类型
- frp-tcp/udp
- frp-http服务
- 服务器端配置
- 本地服务器配置
- 停止运行
- 应用:文件服务器
一、码云自建加速服务
frp项目是位于GitHub上的,如果用wget命令去下载包,在国内的速度是非常慢的,在服务器环境下,安装一个代理是比较麻烦的,为了能让自己快速安装,也方便同事也能快速安装。可以在国内的代码平台码云部署拷贝一份frp项目。
「码云」的地址是:https://gitee.com,它有一个功能是「从GitHub、GitLab导入仓库」,可以将GitHub的项目导入进去。
首先是在GitHub项目中,复制对应的链接。
然后在「码云」中导入。
导入项目之后,「码云」上面是没有发布版本的,这就需要从「GitHub」上将发布的最新版本下载下来。
下载完成之后,在「码云」中,创建一个发布版本,将GitHub中的安装包打包进去。
完成之后,就可以获得frp安装包的直接下载地址。
右击文件,点击「拷贝链接」,即可。这里的frp文件的地址是:https://gitee.com/megeeks/frp/attach_files/857563/download/frp_0.37.1_linux_amd64.tar.gz
得到该地址之后,就可以使用wget指令,就可以直接下载该文件了。
wget https://gitee.com/megeeks/frp/attach_files/857563/download/frp_0.37.1_linux_amd64.tar.gz
服务器和本地服务器都使用该命令进行安装。
二、购置服务器
如果对延迟的要求很高,例如远程桌面、VNC等,你就可以购买国内的服务器,这样延迟会低很多,网速也会很快。
如果对延迟的要求不高,大可推荐使用国外的服务器,国外的服务器,价格低,大带宽,非常的实惠。
服务器服务厂家选择大厂最好。
三、购置本地服务器
本地服务器比较虚,可以选择一个树莓派,也可以买一台瘦客户端,都是没有任何问题的。Frp可以安装的。
四、frp简介
如果你不在家也访问家里的设备,家里的设备都是内网IP,没有外网IP,这就需要内网穿透技术。
商业的公司有不少,但是效果差强人意,我用过国内最大一家的产品,效果是不行的,延迟比frp大太多了。
五、frp穿透类型
按照网络的协议来讲,分为了TCP、UDP、HTTP等。
5.1 frp-tcp/udp
5.2 frp-http服务
http协议是需要域名的,而且国内的服务器是需要备案的,所以不推荐使用,推荐使用TCP代替。
六、服务器端配置
首先是将frp进行下载
wget https://gitee.com/megeeks/frp/attach_files/857563/download/frp_0.37.1_linux_amd64.tar.gz
由于是压缩包,需要解压压缩包
tar -zxvf frp_0.37.1_linux_amd64.tar.gz
进入该目录
cd frp_0.37.1_linux_amd64
删除没有用的文件
rm frpc
rm frpc.ini
rm frpc_full.ini
修改配置文件,修改配置的命令是
sudo vim frps.ini
将内容修改为
[common]
bind_port = 7000
dashboard_port = 7500
token = 12345678
dashboard_user = admin
dashboard_pwd = admin
后台运行该服务
nohup ./frps -c frps.ini &
输出如下内容即表示正常运行
nohup: ignoring input and appending output to ‘nohup.out’
此时可先使用Ctrl+C关闭nohup,frps依然会在后台运行,使用jobs命令查看后台运行的程序。
jobs
在结果中我们可以看到frps正在后台正常运行
[1]+ Running nohup ./frps -c frps.ini &
七、本地服务器配置
首先是将frp软件进行下载
wget https://gitee.com/megeeks/frp/attach_files/857563/download/frp_0.37.1_linux_amd64.tar.gz
解压压缩包
tar -zxvf frp_0.37.1_linux_amd64.tar.gz
进入该目录
cd frp_0.37.1_linux_amd64
删除没有用的文件
rm frps
rm frps.ini
rm frps_full.ini
修改配置文件,修改配置的命令是
sudo vim frpc.ini
将内容修改为
[common]
server_addr = x.x.x.x
server_port = 7000
token = 12345678
[rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 7000
[novnc]
type = tcp
local_ip = 127.0.0.1
local_port = 6081
remote_port = 6081
7.1 服务器配置
common字段下的三项即为服务端的设置。
- “server_addr”为服务端IP地址,填入即可。
- “server_port”为服务器端口,填入你设置的端口号即可,如果未改变就是7000
- “token”是你在服务器上设置的连接口令,原样填入即可。
7.2 自定义映射
frpc.ini的rdp、novnc 字段都是自己定义的规则,自定义端口对应时格式如下。
- “[xxx]”表示一个规则名称,自己定义,便于查询即可。
- “type”表示转发的协议类型,有TCP和UDP等选项可以选择,如有需要请自行查询frp手册。
- “local_port”是本地应用的端口号,按照实际应用工作在本机的端口号填写即可。
- “remote_port”是该条规则在服务端开放的端口号,自己填写并记录即可。
7.3 运行frp服务
配置完成frpc.ini后,就可以运行frpc了,由于我们的本地服务器一般都是运行在Linux中的,所以可以作为服务运行在后台。
nohup ./frpc -c frpc.ini &
如果需要后台运行,则需要使用完整的路径
nohup /home/iecube/frp_0.37.1_linux_amd64/frpc -c /home/iecube/frp_0.37.1_linux_amd64/frpc.ini &
八、停止运行
获取进程
ps -aux|grep frp| grep -v grep
结果如下
root 2986 0.0 0.1 712732 11452 pts/0 Tl 15:09 0:00 ./frpc -c ./frpc.ini
root 2992 0.0 0.1 712732 10804 pts/0 Tl 15:11 0:00 ./frpc -c ./frpc.ini
root 3000 0.0 0.1 713884 11152 pts/0 Sl 15:13 0:00 ./frpc -c frpc.ini
root 3007 0.0 0.1 712732 11392 pts/0 Sl 15:16 0:00 ./frpc -c frpc.ini
关掉进程
kill -9 2986
结果是
root 2992 0.0 0.1 712732 10804 pts/0 Tl 15:11 0:00 ./frpc -c ./frpc.ini
root 3000 0.0 0.1 713884 11152 pts/0 Sl 15:13 0:00 ./frpc -c frpc.ini
root 3007 0.0 0.1 712732 11392 pts/0 Sl 15:16 0:00 ./frpc -c frpc.ini
[1] Killed ./frpc -c ./frpc.ini
九、应用
9.1 文件服务器
编辑文件 frpc.ini
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
[test_static_file]
type = tcp
remote_port = 6000
plugin = static_file
plugin_local_path = /tmp/files
plugin_strip_prefix = static
plugin_http_user = abc
plugin_http_passwd = abc
访问网站:http://x.x.x.x:6000/static/,用户名和密码都是abc。