【FRP】利用FRP实现与外部局域网通信

1 概述

1.1 什么是FRP?
  • FRP是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。
  • 可以将内网服务以安全、便捷的方式通过具有公网IP节点的中转暴露到公网。
1.2 什么是OpenVPN?

OpenVPN是一个用于创建虚拟私人网络加密通道的软件包,最早由James Yonan编写。OpenVPN允许创建的VPN使用公开密钥、电子证书、或者用户名/密码来进行身份验证。它大量使用了OpenSSL加密库中的SSL/TLS协议函数库。

1.3 应用场景

居家办公无疑是未来办公的一种趋势,疫情原因,很多居家办公的朋友们可能会通过向日葵、TV等工具进行远程服务连接,但总有那么些不尽人意,稳定性也差,当然不可否认的,可视化是其亮点,那么如何无缝的通过家里局域网直接访问公司内网呢,上述的OpenVPN上绝对的利器之一,相较于PPTP、L2TP的性能可自行查阅。为什么由需要FRP呢,因为OpenVPN上C/S模式,即所有客户端必须能连接一个具有公网的Server(可通过路由器配置支持),但一般公司的出口公网地址是不稳定的,为达到目的,需要对内网进行穿透,这里我们选择FRP(N2N也是不错的)。

2 环境

拓扑图

在这里插入图片描述

软件

操作系统:Ubuntu18.04 Server

OpenVPN Server:脚本安装

OpenVPN Client:Viscosity(MacOS),其他操作系统可自行下载相应客户端

FRP:frp_0.41.0_linux_amd64

3 配置FRP

3.1 FRP服务端配置

在FRP Server服务器上下载解压后免编译配置

frps.ini:

[common]
bind_port = 9070 						# 服务端口
dashboard_port = 7500 			# 面板ID
dashboard_user = admin			# 用户名
dashboard_pwd = '123@abcd'	# 密码

配置完成后运行服务

$ nohup ./frps -c frps.ini > frps.log 
3.2 FRP客户端配置

在控制服务器(FRP Client)上配置:

frpc.ini:

[common]
server_addr = 106.12.xx.xxx	# FRP Server公网地址
server_port = 9070					# FRP Server配置的bind_port

[tanwei-test] 							# 客户端唯一标识
type = tcp
local_ip = 127.0.0.1
local_port = 1194
remote_port = 10086					# 穿透端口,想访问内网服务,需要通过此端口转发,OpenVPN Client配置时需要使用

配置完成后运行服务

$ nohup ./frpc -c frpc.ini > frpc.log

配置完成后,可打开http://106.12.xx.xxx:7500查看穿透是否成功

在这里插入图片描述

4 配置OpenVPN

4.1 OpenVPN服务端配置

在控制服务器(OpenVPN Server)上下载安装文件(上文有地址获取):

$ bash openvpn-install.sh
$ bash openvpn-install.sh 
Welcome to OpenVPN-install!
The git repository is available at: https://github.com/angristan/openvpn-install

It looks like OpenVPN is already installed.

What do you want to do?
   1) Add a new user
   2) Revoke existing user
   3) Remove OpenVPN
   4) Exit
Select an option [1-4]: 

安装过程中,新增一个用户时,协议填写TCP,服务地址为FRP Server公网IP,端口为穿透端口,即上述的10086

4.2 OpenVPN客户端配置

在上文配置服务端时,同时会生成一个客户端文件,客户端端文件基本信息如下:

client
proto tcp-client
remote 106.12.xx.xxx 10086
dev tun
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
verify-x509-name server_XWxleL7XZuo6GCJu name
auth SHA256
auth-nocache
cipher AES-128-GCM
tls-client
tls-version-min 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
ignore-unknown-option block-outside-dns
setenv opt block-outside-dns # Prevent Windows 10 DNS leak
verb 3
<ca>
-----BEGIN CERTIFICATE-----
....
4.3 客户端使用(MacOS下)

一切准备就绪后,打开Viscosity,导入客户端文件,如图所示:

在这里插入图片描述

右击文件项连接后,等待连接,连接过程中可查看是否有错误日志,连接成功后如下图:

在这里插入图片描述

至此,所有环境搭建已完成,可测试从OpenVPN客户端所在宿主机去访问所要访问的内网资源。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值