frp 反向代理搭建理解记录

想法起因web

因为公司的电脑实在是太差了,开机个虚拟机就卡包了,不少测试实验无法作,家里的电脑也是闲着,因此想着利用家里的电脑来远程搭实验环境或者测试。

搭建目的centos

远程使用家里的电脑,搭建实验环境。

环境评估安全

因为家里的宽带是房东的宽带,费用高且不说怎么好,有挂羊头卖狗肉的嫌疑,毕竟打着电信网络的旗号,却实际上用的联通的网络。租房的网络上行都比较低,网络还稳定,这算比较欣慰的。

准备的设备:服务器

  1. 公网服务器一台,做为代理服务器,必须有公网ip。而个人带宽不是很高1M,实测能用的;
  2. 家里电脑一台,虚拟机centos7.4 或者 Windows系统都行;
  3. 公司办公电脑是Windows 7 系统。

frps代理配置参数网络

# frps.ini

[common]
bind_port = 7000

# 仪表盘web
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin

# 令牌
token = 12345678

# 端口白名单 能够不设置
allow_ports = 7000-7010,6000-6010

# 链接池 能够不设置
max_pool_count = 10

--------------------------  我是分割线 运行方式 开始  ------------------------------------------------------------------------

# 下载好frp压缩包,并解压
# 目录 mv frpxxx /usr/local/frp
cd /usr/local/frp
nohup ./frps -c ./frps.ini &    # 这是后台运行方式的一种

--------------------------  我是分割线 运行方式  结束  ------------------------------------------------------------------------

注意:ssh

公网服务器防火墙须要开启对应的端口。

家里电脑配置参数tcp

家里的电脑是Windows10系统,做为服务端来使用,配置文件参数以下:
# frpc.ini

[common]
server_addr = x.x.x.x           # 配置frps 服务地址 填公网ip地址
server_port = 7000

# 令牌 估计用来加密的 跟frps一致
token = 12345678

# 动态加载配置文件
admin_addr = 127.0.0.1
admin_port = 7400

# 端口白名单
allow_ports = 7000-7010,6000-6010

# 链接池
pool_count = 2

# 模块名
[secret_mstsc]
# 类型
type = stcp
# 加密
sk = abcdefg
# 端口映射
local_ip = 127.0.0.1
local_port = 3389

# 加密与压缩
use_encryption = true
use_compression = true

====== 我是分割线 ==============  客户端分割线   ====================

# 客户端
# frpc.ini

[common]
server_addr = x.x.x.x
server_port = 7000

# 令牌
token = 12345678

# 动态加载配置文件
admin_addr = 127.0.0.1
admin_port = 7400

# 链接池
pool_count = 2

# 模块名称
[secret_mstsc_visitor]
# 类型
type = stcp
# stcp 的访问者 
role = visitor
# 要访问的 stcp 代理的名字 
# 服务端的模块名称 由本名称做为区分多个服务
server_name = secret_mstsc
# 须要与服务端的一致
sk = abcdefg
# 绑定本地端口用于访问 mstsc 服务 
bind_addr = 127.0.0.1
bind_port = 6002

# 加密与压缩
use_encryption = true
use_compression = true

Windows端 启动脚本编写ide

# frpc.bat

frpc.exe -c frpc.ini

# frpc.vbs

Dim WinScriptHost 
Set WinScriptHost = CreateObject("WScript.Shell") 
WinScriptHost.Run Chr(34) & "D:\frp_20\frpc.bat" & Chr(34), 0 
Set WinScriptHost = Nothing

# D:\frp_20\frpc.bat  路径地址要改为你下载frp 放的文件夹一块儿

--------------------------  我是分割线 运行方式 开始  ------------------------------------------------------------------------

# 下载好frp压缩包,并解压
# 移动目录到 D盘,并更名字
打开cmd,切换到D盘,再进入到 frp目录下
frpc.exe -c ./frps.ini    
# 或者
双击运行  frpc.vbs 文件

--------------------------  我是分割线 运行方式  结束  ------------------------------------------------------------------------

Linux ssh 配置测试

===== 我是分割线 ==============  服务端 =========================
# frpc.ini

[common]
server_addr = x.x.x.x
server_port = 7000

# 令牌
token = 12345678

# 动态加载配置文件
admin_addr = 127.0.0.1
admin_port = 7400

# 端口白名单
allow_ports = 7000-7010,6000-6010

# 链接池
pool_count = 2

[secret_ssh] 
type = stcp
sk = abcdefg
local_ip = 127.0.0.1
local_port = 22

# 加密与压缩
use_encryption = true
use_compression = true

==== 我是分割线 =============   客户端  =============================

# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000

# 令牌
token = 12345678

# 动态加载配置文件
admin_addr = 127.0.0.1
admin_port = 7400

# 端口白名单
allow_ports = 7000-7010,6000-6010

# 链接池
pool_count = 2

[secret_ssh]
type = stcp
# stcp 的访问者 
role = visitor
# 要访问的 stcp 代理的名字 
server_name = secret_ssh
sk = abcdefg
# 绑定本地端口用于访问 ssh 服务 
bind_addr = 127.0.0.1
bind_port = 6000

# 加密与压缩
use_encryption = true
use_compression = true

==== 我是分割线 ==========================

配置文件说明:加密

将frps和frps.ini上有公共IP的服务器上。

将frpc和frpc.ini放到内网(LAN)中的服务器上。

以安全的方式公开您的服务

对于某些服务,若是将它们直接暴露给公共网络,将存在安全风险。

stcp(secret tcp)帮助您建立代理,避免任何人均可以访问它。

与上面同样配置frps。

  1. 启动frpc,转发ssh端口而且remote_port是无效的:
# frpc.ini ssh服务端
[common]
server_addr = x.x.x.x
server_port = 7000

[secret_ssh]
type = stcp
sk = abcdefg
local_ip = 127.0.0.1
local_port = 22
  1. 启动另外一个要链接此ssh服务器的frpc:
# frpc.ini 链接客户端
[common]
server_addr = x.x.x.x
server_port = 7000

[secret_ssh_visitor]
type = stcp
role = visitor
server_name = secret_ssh
sk = abcdefg
bind_addr = 127.0.0.1
bind_port = 6000
  1. 假设用户名为test,经过ssh链接到局域网中的服务器:
ssh -oPort=6000 test@127.0.0.1

仪表板

经过仪表板检查frp的状态和代理的统计信息。

为仪表板配置端口以启用此功能:

[common] 
dashboard_port = 7500
# dashboard的用户名和密码都是可选的,若是没有设置,默认为admin。
dashboard_user = admin
dashboard_pwd = admin

而后访问http://[server_addr]:7500以查看仪表板,默认用户名和密码都是admin。

备注说明:

  1. 直接能够在官网上查看配置文件
  2. 软件包须要去官网下载
  3. 各个模块不能同时在一个配置文件中定义
相关文章
相关标签/搜索