Frp稳定地内网穿透

本文最后更新于 2020年6月16日 凌晨

前言


众所周知,我们个人设备的IP都是虚拟分配或者说内网IP,并不是实际公网IP;所以,如果你小伙伴想访问你本地网站(端口)、本地内容,就需要把内网映射到公网。比如:Minecraft联机、本地建立网站公网访问等。
Natapp和花壳网的穿透,网速不稳定,而且容易掉线不稳定,用frp就稳定很大,而且和自己服务器端对端,也安全。

使用frp的前提

前提就是,你需要有一台带公网IP的设备,比如:服务器

推选服务器:
阿里云服务器
1.阿里云服务器:
老用户推荐链接
如果你是学生,可以9.5一个月租一个1 CPU 2G内存的服务器,这个服务器网络上行网络大概1.5m/s封顶,下行网络5m/s封顶,性价比极高:
阿里学生服务器
2.Vultr服务器 PS:(老用户邀请链接,可得到50美元)
3.腾讯云
4.百度云(非百度云盘)
个人推荐阿里云……且,推荐Linux Ubuntu系统。

准备工作

这边演示,以Linux服务器为例。

SSH连接服务器

Linux/Mac

直接打开终端,输入ssh root@IP:(IP为你的服务器IP,e.g.你的服务器IP是192.168.1.1,则SSH命令为ssh root@192.168.1.1)

Windows

Windows: 直接右键右下角的windows,打开powershell,第一次打开会比较久;打开后输入ssh root@IP:(IP为你的服务器IP,e.g.你的服务器IP是192.168.1.1,则SSH命令为ssh root@192.168.1.1)

Android/iOS

Android可以使用MT文件管理器2.0,进行SSH连接;iOS可以在App Store上搜索下载SSH工具。

SSH登陆

SSH连接会叫你输入密码,你输入密码的时候,密码是不会显示的,输入完回车即可:

教程视频

Frp安装配置(Mac/Linux Version):https://www.bilibili.com/video/BV1nK4y187gK

Frp安装配置(Windows Version):https://www.bilibili.com/video/BV1Wf4y127YV

# frp中文帮助文档 https://github.com/fatedier/frp/blob/master/README_zh.md

下载Frp项目文件

Frp是的原理,就是实现远程端对端的映射;所以,就需要服务端和客户端,服务端,顾名思义,就是我们上次到服务器里的;客户端,就是我们自己电脑/设备

获取frp

感谢GitHub大佬fatedierhttps://github.com/fatedier/frp/releases

服务端

我们刚刚已经SSH连接Linux服务器了;所以,现在我们就可以下载服务端到服务器,可以使用宝塔/ftp,可视化上传,也可以直接wget和unzip命令下载。
如果你是国内服务器,访问GitHub有困难,建议可以先下载到本地,再本地上传到服务器。
下载对应你服务器版本的frp,一般Linux服务器都是amd64架构的:

客户端

其实,一个frp源文件,既可以用来服务,也可以用来接收。所以,下载地址还是原来GitHub Releases地址。
下载对应版本的frp:

配置并启动Frp

服务端

配置frps文件

解压我们刚刚下载的frp.zip,得到里面文件:

当然,你也可以用宝塔:

设置映射端口:
编辑frps.ini

1
2
3
[common]
bind_port = 7000
vhost_http_port = 8080

我这边是满足能用的地步,如果要具体设置可视化面板这类,可以看frp官方文档。设置好后,保存,在该目录,终端执行:

1
./frps -c ./frps.ini


此时,frp服务端已经开始运行。你可以用screen或者nohup,来后台运行,而且方便后续打开。

放行端口

需要放行bind_port的端口(我这边用的是7000端口)和其他端口(比如,我这边制定了一个http_port是8080端口)。如果你本地还有其他端口需求,比如tcp 445端口,那么还需要放行这些。)

客户端

本地配置更简单了。为了方便小白操作:

Mac/Linux

解压以后,得到和服务端一样的文件,但是我们要配置的是frp文件:

配置frp文件

编辑frpc.ini

1
2
3
4
5
6
7
8
9
10
[common]
server_addr = 你服务器IP
server_port = 7000

[test]
type = tcp
local_ip = 127.0.0.1
local_port = 445
remote_port = 133

如果你要映射http,加上:

1
2
3
4
5
6
[web]
type = http
local_port = 8080
local_ip=127.0.0.1
custom_domains = 绑定到你服务器的域名,无则填IP
remotr_port=8080

e.g.

我这边是满足能用的地步,如果要具体设置其他,可以看frp官方文档。设置好后,保存,在该目录,终端执行:

1
./frpc -c ./frpc.ini

Windows

和Mac/Linux差不多,但是操作起来,感觉是更简单;下载并解压:

配置frp文件

编辑frpc.ini

1
2
3
4
5
6
7
8
9
10
[common]
server_addr = 你服务器IP
server_port = 7000

[test]
type = tcp
local_ip = 127.0.0.1
local_port = 445
remote_port = 133

如果你要映射http,加上:

1
2
3
4
5
6
[web]
type = http
local_port = 8080
local_ip=127.0.0.1
custom_domains = 绑定到你服务器的域名,无则填IP
remotr_port=8080

e.g.

我这边是满足能用的地步,如果要具体设置其他,可以看frp官方文档。设置好后,保存,cmd/powershell到该目录,执行:

1
frpc.exe

操作实例(使用场景)

映射本地Minecraft服务器

服务器端可以保持刚刚配置,本地客户端更改数据:

首先,我们在本地开一个Minecraft服务器:

配置frpc.ini:

1
2
3
4
5
6
7
8
9
10
[common]
server_addr = 你服务器IP
server_port = 7000

[Minecraft]
type = tcp
local_ip = 127.0.0.1
local_port = 25565
remote_port = 25565


再运行,就可以了

测试是否可以用

我就不开Minecraft来检查了,直接到在线检测平台检测:
https://status.mctalks.com/

到此,映射Minecraft成功!!!

映射本地SMB

这个就不图文了

配置frpc.ini:

1
2
3
4
5
[smb]
type = tcp
local_ip = 127.0.0.1
local_port = 445
remote_port = 445


Frp稳定地内网穿透
https://www.mintimate.cn/2020/05/06/frp/
作者
Mintimate
发布于
2020年5月6日
许可协议