> 文章列表 > 记frp内网穿透配置

记frp内网穿透配置

记frp内网穿透配置

这两天由于想给客户看一下我们的系统,于是想到用内网穿透,但是怎么办呢,没有用过呀,于是各处找资料,但是搞完以后已经不记得参考了那些文档了,对不起各位大神,就只能写出过程和要被自己蠢死的错误了,以免下次再犯。

首先要准备两台电脑,一台是有公网IP的服务器,一台是发布系统的电脑。一开始看到别人的帖子上写要用公网IP的服务器的时候,作为小白的我理解为了是必须要发布系统的电脑在内网就能访问到的具有公网IP的服务器,后来才明白原来只要是一台有公网IP的服务器即可,各种云服务器都是可以的。作为一个小白也太难了。

其次,下载frp的安装文件,根据自己的系统选择对应的包就可以了,一个包里面包含了服务器端和客户端的程序,下载地址:https://github.com/fatedier/frp/releases

我的公网IP服务器为阿里云的windows系统,内网电脑为centos7的系统,所以对应下载了windows和linux两个版本,正式开始配置

第一步:配置公网服务器

把压缩包解压以后,Windows安全中心就提示发现木马,直接就给隔离了,我还心想怎么刚解压完exe就不见了。放心,不是木马,我们给他加入白名单。

 开始配置frps.ini

这里frps开头的是服务器程序相关的,frpc开头的是客户端相关的,建议把客户端开头的删掉,以免误操作。

最简单的配置,打开frps.ini,里面默认是这样子的,不用修改可直接使用。

 [common]
bind_port = 7000

 从文件夹窗口启动命令行程序(就把光标定位到文件夹路径那一栏,输入cmd,后回车)

启动frp服务器端

然后输入frps.exe,然而这是我犯的第一个错误,导致后面token验证一直失败,启动命令应该为:

frps.exe -c frps.ini

这个命令才会去调用当前文件夹下的frps.ini中的配置,否则配置就白配了,也是导致我这个小白后来因为这个查找了好久token失败的原因

会出现如下界面,就说明服务器端启动成功了

 开放监控端口

我用的是阿里云的服务器,所以需要登录阿里云安全管理页面,对端口进行开放,由于阿里云服务器我没有管理,是同事配置的,这里就没有描述了。

第二步:配置内网电脑 

解压缩文件包

命令:

解压缩:tar -xzvf frp_0.48.0_linux_amd64.tar.gz

移动文件到安装目录:mv frp_0.48.0_linux_amd64 /usr/local/frps

移动到安装目录:cd /usr/local/frps

编辑配置文件

vim frpc.ini       这个时候注意了不要写错了,毕竟frpc和frps只差一个字

其中 server_addr写入公网IP

[ssh]可以是你自己的项目名称

local_port为本地端口

remote_port为服务器的端口

如果有多个端口要穿透,则写多个配置即可

 启动客户端

命令:./frpc -c ./frpc.ini

也可以使用 nohup  ./frpc -c ./frpc.ini ,但是这个命令为后台运行,配置完第一次不建议采用这种方式启动,因为后台启动不会把错误显示在终端,出现问题也不知道,我因为后台启动后连接不上也找了好久原因。出现下图这样的信息就表示已经成功了。

配置token

一开始的时候我计划加上token,服务器的配置文件为

客户端的配置文件为:

但是一直提示:token in login doesn't match token from configuration

 找了各种资料以后,才发现是因为我服务器端启动时直接调用了frps.exe,用的是默认配置,并没有调用到我写的frps.ini,把命令改成frps.exe -c frps.ini 就可以连接成功了。 

centos后台进程查看和杀死

由于我一开始是nohup运行的,要杀死该进程,于是查找了如下命令

查找进程:ps -e | grep  应用名称

根据端口查找进程: lsof -i:端口号    或者 netstat -ntulp | grep 端口号

杀死进程: kill -9 PID