其他分享
首页 > 其他分享> > 使用Frp进行内网穿透

使用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