使用Frp进行内网穿透
作者:互联网
这几天在折腾电脑的远程,因为总怕突然单位有啥突发的事儿嘛,然后自己电脑上又没有环境,然后就惦着直接能够遥控给主板上电直接开机并且远程。
这个主板上电直接开机倒是挺好办的,主板设置里就有,设置一个上电自动开机,然后 买一个智能插座就全搞定了。
但是我发现一个问题,开机了是开机了,但是向日葵之类的远程软件是需要在用户登陆时才会启动服务的。
那我电脑有密码呢,我又不想取消掉密码,这咋整呢。
想了一会,感觉微软自己的mstsc也许可以,但是单位的个人工作电脑并没有公网ip,那外网远程连接不是就寄了?
得,弄个内网穿透吧。
伤情最是晚凉天,憔悴斯人不堪怜,邀酒摧肠三杯醉,寻香惊梦五更寒,钗头凤斜卿有泪,荼蘼花了我无缘,小楼寂寞新雨月,也难如勾也难圆
定场诗。
我写代码的能卖你生定场诗?
咱废话就不多说了——这废话就不少了,直接书归正文儿吧。
提前注释:了解Linux守护进程而且不需要的直接跳到三就完事儿
一、NodeJS
为啥写Frp要写NodeJS?
因为frp在linux上运行的时候是一个前台应用。只要你打开这个应用的bash一退出,欸,他就没了~所以我主要是为了弄个pm2作为这个frp的守护进程,让frp作为nohup应用启动,防止自己退出了就。
这里以CentOS 7为例:
咱首先确定一下咱们有C++的编译器,一会儿下了源码要编译用:
yum -y install gcc gcc-c++ kernel-devel
(我用的是8.11.3版本,当前lts版本为16.13.2,要安装的话需要升级GCC,升级太麻烦了我懒得升级反正就是用一个npm,如果升级GCC安装新版本可以看这个:https://blog.csdn.net/w345731923/article/details/107204098)
然后下载NodeJS的源码压缩包:
wget https://nodejs.org/dist/v8.11.3/node-v8.11.3.tar.gz
下载完以后咱就是说直接一个解压缩:
tar -xzf node-v8.11.3.tar.gz
接着删除压缩包(不删也行),进入新解压的文件夹,编译之:
#删除当前压缩包 rm node-v8.11.3.tar.gz #进入新解压的文件夹 cd node-v8.11.3
#编译
./configure
make
这步时间有点久,我们可以去给鱼缸换个水,给猫洗个澡,然后把手从乌龟嘴里拽出来...
好不容易把手指头扯出来了,我们去贴个创可贴,回来看看基本差不多完成了。
继续,使用编译出来的文件进行安装(这个快):
make install
尝试查看当前是否安装成功:
npm -v #5.6.0
嘚,nice。
二、安装pm2
咱就是说,有了npm以后安装pm2分分钟的事儿:
npm install pm2 -g
然后可以将pm2设置为开机启动,不过这个设不设置都行,看个人:
#设置开机启动
pm2 startup
#取消开机启动
pm2 unstartup
使用pm2打开应用的方式:
#启动应用 pm2 start "启动命令" --name 设定应用名称 #保存当前应用列表 pm2 save #查看应用日志 pm2 log
三、Frp
废话这么多终于入了正题儿了...
咱可以先去https://github.com/fatedier/frp/releases看看,当前版本啥的...
另外,linux和windows配置大同小异(其实根本就没区别=-=),我就按照我这边之前弄的方式说了啊,服务端linux,客户端windows(谁还记得我是为了啥弄这玩意儿的)
linux下载:
wget https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_amd64.tar.gz
下载完成以后依旧是解压:
tar -xzf frp_0.38.0_linux_amd64.tar.gz
mv frp_0.38.0_linux_amd64.tar.gz
我们这边用的是服务端,所以调整frps.ini:
cd frp_0.38.0_linux_amd64 vim frps.ini
参数在这边:
[common] #服务端端口 bind_port = <端口> #ipv4过滤 bind_addr = <允许通过的ipv4地址,不拦截默认0.0.0.0> #客户端连接认证方式 authentication_method = token token = <你自己设置的token> #网页控制台相关 dashboard_port = <控制台端口> dashboard_user = <控制台登陆用户名> dashboard_pwd = <控制台登陆密码>
另外,因为这些东西都是明文保存在服务器上的,所以个人建议密码和token不要用其他平台的常用密码或者是通过某些加密算法先过一遍
然后启动,服务器这边的设置就可以啦!
记得打开防火墙!!!
#单纯的打开 ./frps -c ./frps.ini #使用pm2 pm2 start "./frps -c ./frps.ini" --name FrpServer
客户端这边也差不多,去https://github.com/fatedier/frp/releases下载frp_0.38.0_windows_amd64.zip,下载完以后解压,打开文件夹里面的frpc.ini
[common] server_addr = <服务器公网ip> server_port = <服务器端口> authentication_method = token token = <刚才服务器上设置的token> [RDP] #比如,我这边弄的是远程所以local_port是3389 #type还有http,udp,https之类的东西 type = tcp local_ip = 127.0.0.1 local_port = <本地要被映射的端口> remote_port = <服务器的映射的端口>
启动的话就在当前文件夹打开cmd,输入:
frpc -c frpc.ini
然后我的话这边是直接扔到计划任务里去执行的,不知道在哪儿的可以按win+r打开运行输入:
%windir%\System32\compmgmt.msc
然后找左边的计算机管理->系统工具->任务计划程序->任务计划程序库:
点击右边的创建任务:
在常规选项卡选择“不管用户是否登录都要运行”,并勾选“使用最高权限运行”;
在触发器选项卡新建,在弹出窗口的“开始任务”中选择“启动时”;
在操作选项卡新建,在”程序和脚本“中选择刚才frpc.ini所在文件夹下的frpc.exe, ”添加参数“输入 -c frpc.ini,”起始于“中输入刚才frpc.ini所在文件夹
最后确定就可以啦!
最后重启电脑,在浏览器输入<服务器公网ip:端口号>,并输入刚才在服务器端设置的dashboard账号密码:
在主页可以看到ClientCounts和ProxyCounts为1
我滴任务,完成老!
标签:frpc,tar,pm2,linux,穿透,frp,ini,使用,Frp 来源: https://www.cnblogs.com/WhyNoob/p/15789432.html