FRP内网穿透

本文涉及的产品
.cn 域名,1个 12个月
简介: 参考github文档frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。frp 的作用利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。

参考github文档

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。

frp 的作用

  • 利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。
  • 对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。
  • 利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。

架构

img_74465a1c9bf917fb54a2bc32a9260c30.png
image.png

使用示例

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

将 frps 及 frps.ini 放到具有公网 IP 的机器上。

将 frpc 及 frpc.ini 放到处于内网环境的机器上。

配置ssh访问公司内网多台服务器及自定义子域名访问多台机器上的web服务

在多人同时使用一个 frps 时,通过自定义二级域名的方式来使用会更加方便。

通过在 frps 的配置文件中配置 subdomain_host,就可以启用该特性。之后在 frpc 的 http、https 类型的代理中可以不配置 custom_domains,而是配置一个 subdomain参数。

只需要将*.{subdomain_host}解析到 frps 所在服务器。之后用户可以通过subdomain自行指定自己的 web 服务所需要使用的二级域名,通过 {subdomain}.{subdomain_host}来访问自己的 web 服务。

1. 下载解压

下载的软件包中包含frps和frpc所需的启动程序和配置文件。

wget https://github.com/fatedier/frp/releases/download/v0.14.1/frp_0.14.1_linux_amd64.tar.gz

tar xvf frp_0.14.1_linux_amd64.tar.gz

cd frp_0.14.1_linux_amd64

2. 编辑frps.ini

[common]
bind_port = 7000            # frps与frpc客户端通信的端口
vhost_http_port = 8080      # 对user开放的web访问端口
subdomain_host = frps.com

将泛域名 *.frps.com解析到 frps 所在服务器的 公网IP 地址。

启动frps:./frps -c ./frps.ini

3. 编辑frpc.ini

假设公司内网有三台服务器,ip分别为:

  • 10.0.1.104 (compute1)
  • 10.0.1.105 (compute2)
  • 10.0.1.106 (control1)

3.1 编辑10.0.1.104 (compute1)的frpc.ini

[common]
server_addr = x.x.x.x    # frps所在主机的IP
server_port = 7000       # frps与frpc客户端通信的端口

[ssh-compute1]           # 如果有多台内网服务器共用一台frps,则这个名称不能重复
type = tcp               # 通信协议类型
local_ip = 10.0.1.104    # 本地IP
local_port = 2002        # 本地开放的SSH端口
remote_port = 6001       # 远程访问的端口(多台内网服务器,此端口不能重复), 从远程通过ssh连接本机器,命令:ssh -p 6001 x.x.x.x

[web-compute1]           # 内网多台web服务器,此名称不能重复
type = http              # 通信协议类型   
local_port = 8000        # 本地开放的web端口
subdomain = compute1     # 子域名

启动frpc:./frpc -c ./frpc.ini

可以通过compute1.frps.com:8080就可以访问到内网的web服务了。
SSH访问服务器: ssh -p 6001 x.x.x.x

3.2 编辑10.0.1.105 (compute2)的frpc.ini

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

[ssh-compute2]
type = tcp
local_ip = 10.0.1.105
local_port = 2002
remote_port = 6002

[web-compute2]
type = http
local_port = 8000
subdomain = compute2

可以通过compute2.frps.com:8080访问到内网的web服务。
SSH访问服务器: ssh -p 6002 x.x.x.x

3.3 编辑10.0.1.106 (control1)的frpc.ini

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

[ssh]
type = tcp
local_ip = 10.0.1.106
local_port = 2002
remote_port = 6000

[web]
type = http
local_port = 8000
subdomain = control1

可以通过control1.frps.com:8080访问到内网的web服务。
SSH访问服务器: ssh -p 6000 x.x.x.x

相关文章
|
8月前
|
存储 Ubuntu 网络协议
如何本地部署Nextcloud结合cpolar搭建专属私有云盘远程访问(内网穿透)
如何本地部署Nextcloud结合cpolar搭建专属私有云盘远程访问(内网穿透)
195 0
如何本地部署Nextcloud结合cpolar搭建专属私有云盘远程访问(内网穿透)
|
8月前
|
应用服务中间件 PHP 数据库
如何使用LightPicture+cpolar搭建个人云图床随时随地公网访问
如何使用LightPicture+cpolar搭建个人云图床随时随地公网访问
|
3月前
|
网络协议 应用服务中间件 网络安全
宝塔用IP建站“无法访问此网站”解决办法
宝塔用IP建站“无法访问此网站”解决办法
|
7月前
|
存储 PHP 数据库
蓝易云 - WordPress建站教程:服务器目录指南
了解这些目录和文件的作用,可以帮助你更好地管理你的WordPress网站,以及解决可能出现的问题。但是,请注意,除非你清楚自己在做什么,否则不要随意修改这些目录和文件,因为这可能会导致你的网站出现问题。
68 0
|
安全 关系型数据库 MySQL
【IIS搭建网站】本地电脑做服务器搭建web站点并公网访问「内网穿透」
【IIS搭建网站】本地电脑做服务器搭建web站点并公网访问「内网穿透」
|
网络协议 关系型数据库 Linux
手把手教你使用phpstudy本地快速搭建网站,并外网访问【无公网IP】
手把手教你使用phpstudy本地快速搭建网站,并外网访问【无公网IP】
|
PHP 数据库 数据安全/隐私保护
phpcms服务器搭建之 phpcms的安装
phpcms服务器搭建之 phpcms的安装
141 0
|
8月前
|
关系型数据库 MySQL 应用服务中间件
【IIS搭建网站】在本地电脑上搭建web服务器并实现外网访问
在网上各种教程和介绍中,搭建网页都会借助各种软件的帮助,比如网页运行的Apache和Nginx、数据库软件MySQL和MSSQL之类,为方便用户使用,还出现了XAMPP、PHPStudy、宝塔面板等等一系列集成服务,都是为了方便我们能快速建立网站。是不是不适用这些软件就无法建立网站了呢?答案当然是否定的,在Windows系统中实际上集成了建立网站所必须的软件环境。今天就让我们来看看,如何使用Windows自带的网站程序建立网站吧。