0%

frp 内网穿透

frp 内网穿透

前言

对于没有公网IP的用户来说,从公网中访问自己的私有设备是一件不太容易的事。

此时可能我们需要内网穿透,内网穿透的方案有很多,这次我们使用frp来实现。

frp简介

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。

项目地址:https://github.com/fatedier/frp

准备工作

我们需要有一台具有公网IP的机器,正好我手头有一台腾讯云服务器。

网上也有些个人提供的免费的frp服务端服务,可以用来临时使用。

安装

安装非常简单,仅需简单的几个步骤就可以上手。

服务端 - frps

1
2
3
4
# 下载 在github release页面下载适合自己系统的版本
wget https://github.com/fatedier/frp/releases/download/v0.27.0/frp_0.27.0_linux_amd64.tar.gz
# 解压
tar -zxvf frp_0.27.0_linux_amd64.tar.gz

此时就只剩下配置了,进入frp目录,打开修改 frps.ini 文件,根据自己的需求进行配置。

1
2
3
4
5
6
7
8
[common]
bind_port = 7000
# 客户端与服务端token一致才可连接成功
token = 676767
# dashboard的端口、用户名、密码,启动后可以访问server_ip:port查看对一些信息的监控
dashboard_port = 7500
dashboard_user = liuqitech
dashboard_pwd = liuqitech

启动

1
./frps -c frps.ini

客户端 - frpc

同样下载frp的包进行解压,打开修改frpc.ini文件,根据自己的需求进行配置

1
2
3
4
5
6
[common]
# 服务端IP 端口
server_addr = x.x.x.x
server_port = 7000
# token 服务端与客户端需一致
token = 676767

启动

1
./frpc.exe -c frpc.ini

使用实例

以上仅仅是基本配置,还需要根据自己的需求进行不同的配置。

我本次的目的是实现Windows的远程桌面连接,所以下面的配置文件是按我的需求进行配置的。

更多不同的配置请参考官方文档https://github.com/fatedier/frp/blob/master/README_zh.md

客户端配置文件 frpc.ini 进行修改,添加以下配置

1
2
3
4
5
6
7
[rdp]
type = tcp
local_ip = 127.0.0.1
# 3389为默认的Windows远程桌面连接的端口
local_port = 3389
# 进行远程连接时的端口
remote_port = 7001

重启客户端使配置文件生效。此时该客户端已经实现了内网穿透。

当我在另一台Windows电脑进行远程桌面连接时,连接IP写frp服务端IP,端口写上面配置文件中配置的7001时即可连接成功。此时我便可以愉快的在家连接公司的电脑进行办公了。