记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
u010123588: 以前用Cygwin生成so,老出错,以后不用啦,谢谢
china1976: 学习。同时请教一下,芒果可否增加数据库管理员之类的呀。这样即使数据库文件不慎被“曝光”“失窃”后,至少还有一层用户和密码保护呀。
wenph2008: 你好,想请教你个问题:如果我们要存储的数据是树状存储结构,而且树的高度为5(mongodb的存储“高度”好像是3:第一层是数据库,第二次是集合,第三层是文档),在不想降低树的高度的情况下,能否把数据已树状结构存入mongodb。期待您的讨论和指点。。。
nku428: 有很大帮助啊,太感谢啦
「已注销」: 哥们,你这篇文章,是不是意味着以后,只需要,编辑jni文件下的hello_jni.c,然后让NDK自己去生成.so文件。 同理可以根据,实例的.c我们去自己创建几个其他的other.c让NDK自己生成.so去