ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

使用Frp进行内网穿透

2022-01-12 14:04:51  阅读:253  来源: 互联网

标签:frpc tar pm2 linux 穿透 frp ini 使用 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有