Frp做内网映射部署简单,而且端口可以完全自定义。之前使用花生壳和natapp均无法自定义自己需要的端口,是时候自己部署了。

环境介绍

服务端环境:阿里云ECS centos7 64位系统

win客户端:win7/win2012server

linux客户端:ubuntu16.04 64位

下载frp软件包

下载地址:https://github.com/fatedier/frp/releases

根据自己的环境下载对应的版本

阿里云服务器使用frp做内网穿透服务端及客户端配置教程-风君雪科技博客

服务端搭建过程

1、修改配置文件

下载的压缩包解压后如下:

阿里云服务器使用frp做内网穿透服务端及客户端配置教程-风君雪科技博客

服务端可以只保留frps 和frps.ini,frps_full.ini文件,其它的可以都删除,

frps.ini配置信息如下(更多配置内容可以参考frps_full.ini里的说明及示例)

[common]
bind_addr = 0.0.0.0
bind_port = 7000

dashboard_port = 7500
# dashboard user and passwd
dashboard_user = admin
dashboard_pwd = admin
# auth token
token = 12345678

bind_addr为阿里云服务器公网ip,可以设置为域名(如果客户端比较多,且公网ip可能会变,建议使用域名)

dashboard是用来通过浏览器查看服务状态及客户端在线和流量情况的,建议修改默认账号和密码,为提高安全性建议设置token。

2、然后将frps和frps.ini上传到服务器。

3、修改服务器安全组设置

在阿里云服务器安全组设置里放行7000,7500,以及要映射到客户端的端口,比如33891

4、启动frps服务

启动frps的时候我们选择后台启动,防止我们关闭shell或者关闭ssh服务后frps停止
frps.ini : 是我们启动的时候指向的配置文件,

nohup ./frps -c frps.ini

执行命令后会在同目录生成nohup.out日志文件,如果不需要生成日志,可以执行如下命令

nohup ./frps -c frps.ini >/dev/null 2>&1 &

5、如果此时浏览器访问服务器7500端口能登录,就说明服务端运行正常.

阿里云服务器使用frp做内网穿透服务端及客户端配置教程-风君雪科技博客


windows客户端配置:

1、下载对应的客户端,并解压

阿里云服务器使用frp做内网穿透服务端及客户端配置教程-风君雪科技博客

只需保留frpc.exe和frpc.ini即可。

2、frpc 配置修改

修改frpc配置文件: frpc.ini,比如我需要映射3389远程端口,可以修改如下。其中[rdp]为客户端标识,可以自定义,方便在服务端dashboard里区分。

[common]
server_addr = 上方搭建frps服务的虚拟机的ip
server_port = 7000
token = frps配置文件中的token值

[rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 3381
remote_port = 33891

3、启动frpc客户端

当我们直接双击frpc.exe的时候,黑窗口会告诉我们:
请进入到cmd窗口执行此文件

阿里云服务器使用frp做内网穿透服务端及客户端配置教程-风君雪科技博客

打开cmd窗口进入到frp的文件夹内执行frpc.exe

Microsoft Windows [版本 10.0.17134.648]
(c) 2018 Microsoft Corporation。保留所有权利。

D:\Program Files\frp\frp_0.25.3_windows_amd64>frpc.exe
2019/03/28 13:19:49 [I] [service.go:221] login to server success, get run id [f75fd636b5f34848], server udp port [7001]
2019/03/28 13:19:49 [I] [proxy_manager.go:137] [f75fd636b5f34848] proxy added: [ssh]
2019/03/28 13:19:49 [W] [control.go:142] [ssh] start error: port already used
2019/03/28 13:19:49 [W] [control.go:142] [gk-admin] start error: port already used


如上所示,便是启动成功。

这时候就出现一个问题了,我们一直保证cmd窗口打开,很影响我们使用和操作

我在这里是写了一个frp.vbs脚本来实现后台启动frpc.exe,注意这个frp.vbs必须放在frp的目录下,因为我在脚本中使用的是相对路径

frpc.exe -c frpc.ini代表的就是使用frpc.ini配置文件启动frpc.exe
frp.vbs内容如下:

dim objShell 
set objShell=wscript.createObject("WScript.Shell") 
iReturnCode=objShell.Run("frpc.exe -c frpc.ini",0,TRUE)

双击frp.vbs即可执行,双击此文件是没有反应的,不要着急,在任务管理器中能看到frpc.exe进程便是启动成功了
阿里云服务器使用frp做内网穿透服务端及客户端配置教程-风君雪科技博客

此时访问服务端dashboard就可以看到在线的客户端

阿里云服务器使用frp做内网穿透服务端及客户端配置教程-风君雪科技博客


Linux客户端配置

1、linux客户端文件和服务端压缩包是同一个,只需保留frpc和frpc.ini即可

阿里云服务器使用frp做内网穿透服务端及客户端配置教程-风君雪科技博客

2、修改frpc.ini配置文件,比如映射22端口到33891端口

[common]
server_addr = 上方搭建frps服务的虚拟机的ip
server_port = 7000
token = frps配置文件中的token值

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

3、启动客户端

nohup ./frpc -c frpc.ini