使用Frp和云服务器实现内网穿透
准备SSH客户端
可以下载一个FinalShell
下载链接:https://wwbum.lanzoue.com/iI9iD3e6tp9c
密码:9n4e
准备云服务器
先去阿里云、腾讯云、火山引擎等各家云平台买个符合自己要求的云服务器,下面我将使用阿里云演示
云服务器选择ubuntu系统

连接服务器
打开FinalShell,连接服务器

安装宝塔面板(可跳过)
在FinalShell中输入下方命令安装宝塔面板
|
|
到这里,输入一个y,然后按回车

安装好后如图

现在直接访问给出的地址是访问不到的,需要先回到阿里云放行对应端口(也可以直接在服务器防火墙添加规则,不用一定和我一样)

创建后点击操作里的应用至实例,然后再访问就可以了,输入命令行中给出的用户名和密码

进入后选择绑定服务器,再之后会跳出推荐配置,根据自己买的服务器配置选择是否安装
下载Frp
Frp的github下载地址:[Releases · fatedier/frp](https://github.com/fatedier/frp)
我的电脑是Window系统,所以分别下载frp_0.65.0_linux_amd64.tar.gz和frp_0.65.0_windows_amd64.zip,分别用于服务器和本地电脑

下载后解压压缩包,其中frpc表示客户端,frps表示服务端
所以可以把linux文件夹中除了frps和frps.toml外的内容都删了,windows文件夹中除了frpc.exe和frpc.toml外的内容都删了
Linux
在linux的文件夹中创建一个start.sh文件,其中如下填写
|
|
然后打开frps.toml文件,如下编写
|
|
然后在FinalShell中root目录下创建一个文件夹,可以取名为frp,然后将三个文件拖进去(应该是start.sh,图中我写错了,别写成bat文件了)

然后分别执行下方命令:
|
|
然后同样去阿里云放行7000和7500端口,还要去宝塔控制台里也放行这两个端口,然后访问在电脑浏览器中服务器公网ip:7500

嫌麻烦也可以直接关掉宝塔的防火墙

这里的用户名和密码就是前面在frps.toml文件中编写的
登录后页面如下

Windows
打开windows文件夹里的frpc.toml,将第一个serverAddr的值改为服务器的公网ip,其他先不动
|
|
然后编写一个start.bat脚本,内容为:
|
|
双击执行

如图说明已经成功实现内网穿透了
配置穿透端口
以我的本地博客为例,修改frpc.toml的内容如下:
|
|
配置后重启脚本,打开frp的控制台,如图说明配置成功

测试:
本地运行我的博客:

不使用localhost而是使用服务器公网ip尝试访问

发现可以使用服务器ip访问
配置其他端口类似
更详细的配置可以看frp的Github官方文档:Releases · fatedier/frp
服务器后台自动运行
关闭FinalShell发现内网穿透就失效了,可以在云服务器上安装一个screen后台运行
重新打开FinalShell,运行下面命令
|
|
现在即使关闭FinalShell,frp脚本也依旧会在服务器运行
关闭
当然,也可以关闭
重新打开FinalShell,输入下方命令
|
|

图中588666为会话id,frp为会话名,输入其中一个即可进入会话,当然输入完整也行
进入后使用快捷键Ctrl + C关闭frp服务
如果要关闭会话可以执行下方命令
|
|