自己搭建 Frp,实现稳定内网穿透。不再需要公网 ip 与专线。
Frp 是一个体积小功能大的内网穿透程序,通过反向代理,实现防火墙或内网中的设备对外界提供服务。
1. 准备
你需要的:
- 一台拥有公网的服务器(开放所需端口)。
- 要进行内网穿透的设备 (Linux , Windows , macOS ...)
- 一点 Linux or Windows 命令行基本认识(文章不过多演示基础命令)。
2. 下载
我们从 https://github.com/fatedier/frp/releases 下载 frp 最新版本。
服务器和要内网穿透的设备都需要,并且根据服务器的情况和本地设备的情况来下载。比如服务器是 Linux 那么下载对应的 Linux 版本,主机是 Windows 那么下载对应的 Windows 版本放在主机。
然后对压缩包进行解压。
3. 服务器端
我们可以看到其中的 frps 和 frps.toml,这两个是对应服务器的文件。
我们首先更改 frps.toml 设置服务器 frps 所用端口,并设置连接 token。
frps.toml:
bindPort = 7000
auth.token = "abc"
默认是 7000,我们这边就使用默认的。
然后在服务器启动 frps。(这边建立一个 screen)
screen -R frp
frps -c frps.toml
4. 主机端
我们可以看到其中的 frpc 和 frpc.toml,这两个是对应服务器的文件。
首先看 frpc.toml
serverAddr = "192.115.231.102"
serverPort = 7000
auth.token = "abc"
[[proxies]]
name = "frp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 25565
remotePort = 25565
我们可以看到 serverAddr
即服务器 ip 地址。 serverProt
即服务器 frps 端口。token
即和服务器连接要用的 token 和 frps.toml 的一致。
然后是 proxies
这边,我们设置 type
为 tcp
localIP
即所要内网穿透的本地 ip,通常用 127.0.0.1
表示本地即可。
localPort
即所要映射的本地端口,这里我要映射 Minecraft 服务器的 25565 端口。
remotePort
即映射到服务器对应的端口。
接下来我们运行 frpc。
./frpc -c frpc.toml
5. 连接
我们使用服务器 ip 加上本地映射到服务器对应的端口连接即可。
按照我上面的配置,我要连接本地 127.0.0.1:25565
那么我只需要连接对映射好的
192.115.231.102:25565
即可。
6. 完成
然后本篇文章就结束了。
如果遇到问题,去检查服务器主机防火墙等等。