asp网站模板安装教程,黔江网站建设,浦东新区中国建设银行官网站,国内疫苗接种率文章目录 内网穿透实现内网穿透的常见方法 frpfrp的实现原理frps服务端应用部署配置文件部署参数配置 frpc客户端部署 内网穿透
内网穿透是指在内部网络#xff08;内网#xff09;中实现穿透外网#xff08;公网#xff09;的通信。内网通常是指公司、组织或家庭等内部网… 文章目录 内网穿透实现内网穿透的常见方法 frpfrp的实现原理frps服务端应用部署配置文件部署参数配置 frpc客户端部署 内网穿透
内网穿透是指在内部网络内网中实现穿透外网公网的通信。内网通常是指公司、组织或家庭等内部网络而外网则是指互联网也就是公共网络。内网穿透的目的是让位于内网中的设备或应用程序能够访问外部网络中的资源实现内外网的通信。
实现内网穿透的常见方法
实现内网穿透的方法有很多以下是一些常见的内网穿透技术
虚拟专用网络VPN通过建立VPN连接可以让位于内网的设备访问外网的资源但这种方法相对复杂需要配置和管理VPN服务器。代理服务器通过在内外网之间设置代理服务器可以让位于内网的设备通过代理服务器访问外网资源。这种方法简单易用但可能会导致网络延迟和数据传输速度变慢。端口映射通过在内外网之间映射特定的端口可以让位于内网的设备访问外网的资源。这种方法简单易用但需要关心端口映射的安全问题。负载均衡通过在内外网之间设置负载均衡器可以将内外网的流量分发到多个服务器上从而实现内外网的通信。这种方法适用于大型企业和高性能场景但需要部署和维护负载均衡器。隧道技术通过在内外网之间建立隧道可以让位于内网的设备访问外网的资源。这种方法类似于VPN但更加简洁易用。
frp
fatedier/frp GitHub 官方仓库
frp是一款免费开源的专注于内网穿透的高性能的反向代理应用支持 TCP、UDP、HTTP、HTTPS、Websocket、P2P 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
frp的实现原理
frp是基于C/S模式实现的内网穿透服务代理应用通过在公网IP上部署服务器端应用客户端部署在内网上。当访问服务端暴露的应用时反向代理到内网的服务实现内网穿透的代理。
frps服务端应用部署
在frp中分为客户端frpc和服务端fprsfrp应用支持以toml配置文件的方式和参数的方式进行服务部署。frp应用通过-c参数指定配置文件进行读取
frps -c frps.toml
frpc -c frpc.toml配置文件部署
在部署frps时需要指定绑定端口用于接收客户端连接默认情况下绑定端口为7000当需要修改用于客户端连接的端口时可以修改此配置。在配置文件中通过bindPort参数进行配置
# frps.toml
bindPort 7000通过docker compose部署
version: 3.9
services:frps:image: fatedier/frps:v0.53.2hostname: frpscontainer_name: frpsvolumes:- ./frps.toml:/frps.tomlcommand:- -c- /frps.tomlports:- 7000:7000参数配置
同样的frp也支持在启动时直接以参数的方式进行服务部署通过--bind_port可以设置frps的绑定端口
frps --bind_port 7000通过docker compose部署
version: 3.9
services:frps:image: fatedier/frps:v0.53.2hostname: frpscontainer_name: frpscommand:- --bind_port- 7000ports:- 7000:7000frpc客户端部署
在frpc客户端中主要配置为
配置frps连接信息配置内网应用
在frpc中需要配置的内容相对较多推荐以文件的方式进行配置以下是frpc.toml的简单示例
# 服务端地址
serverAddr x.x.x.x
# 服务端配置的bindPort
serverPort 7000[[proxies]]
# 代理应用名称根据自己需要进行配置
name ssh
# 代理类型
type tcp
# 客户端代理应用IP
localIP 127.0.0.1
# 客户端代理应用端口
localPort 8080
# 服务端反向代理端口
remotePort 7001如上述示例所示为客户端frpc代理配置通过tcp协议的方式将本地8080端口服务代理到serverAddr:7001上代理后可以通过serverAddr:7001直接在公网上访问到本地服务。
通过docker compose部署frpc应用
version: 3.9
services:frpc:image: fatedier/frpc:v0.53.2hostname: frpccontainer_name: frpcvolumes:- ./frpc.toml:/frpc.tomlcommand:- -c- /frpc.tomlnetwork_mode: hostfatedier/frpc镜像在启动时直接运行frpc命令frpc命令到默认配置文件默认参数为./frpc.ini文件所以必须要挂载配置文件到容器内否则无法直接启动frpc服务通过frpc进行内网穿透frpc需要可以直接访问到需要内网穿透代理到应用所以采用network_mode: host参数将frpc服务到网络设置为宿主机网络否则容器内无法直接访问宿主机上的应用网络根据代理应用进行配置 由于docker是基于Linux内核开发的在Mac、Windows系统上对Docker应用本质是通过虚拟机运行对所以network_mode: host对应的网络为虚拟机网络而不是宿主机网络所以该参数在Mac、Windows系统上不受支持可以考虑直接以应用的方式在以上系统部署 部署后内网服务的公网访问方式为serverAddr:remotePortbindPort仅用于frp交互使用所以在上面的frps通过docker方式中需要将内网对应的remotePort和宿主机关联配置好 在部署frps指定ports时可以考虑给定范围的方式进行部署 更多frp部署应用方式请参考frp 官方文档