内网穿透工具 - FRP

为什么要进行内网穿透

最主要的原因是可以在公网访问自己的私有设备(远程桌面, 文件共享等).

常用的内网渗透工具有 Teamview, 向日葵远程控制, 蒲公英VPN

以上三种工具免费版都具有众多问题, 因此本文介绍一种免费的内网穿透工具FRP(Fast Reverse Proxy)

何为FRP

FRP(Fast Reverse Proxy)是一个开源反向代理软件, 其体积轻量但是功能强大, 支持tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。

搭建FRP

准备工作

  1. 拥有一台具有公网IP的VPS

    可以申请阿里云, 腾讯云, 华为云等服务器, 也可以申请亚马逊云(此服务器免费试用一年).

  2. FRP client and server

    https://github.com/fatedier/frp/releases 下载相应的系统和版本的FRP.

简单配置

服务端

配置文件为frps.ini

1
2
3
# frps.ini
[common]
bind_port = 7000

启动服务
./frps -c ./frps.ini

后台启动
nohup ./frps -c ./frps.ini > frpss.log 2>&1 &

客户端

配置文件为frpc.ini, 其中x.x.x.x为服务端公网的IP

1
2
3
4
5
6
7
8
9
10
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

启动服务
./frpc -c ./frpc.ini

后台启动
nohup ./frpc -c ./frpc.ini > frpcc.log 2>&1 &

连接测试

通过 ssh 访问内网机器, 假设用户名为 test:

ssh -oPort=6000 test@x.x.x.x

高阶配置

自定义域名访问

转发 DNS 查询请求

转发 Unix 域套接字

对外提供简单的文件访问服务

为本地 HTTP 服务启用 HTTPS

安全地暴露内网服务

点对点内网穿透