FRP内网穿透搭建-无公网IP时外部访问服务解决办法

(一)FRP介绍与应用场景
介绍: frp与ngwork一样,用于内网穿透,即对于没有公网ip的网络环境中将该网络中的服务(http,ssh等)给暴露出去。其中frp分为两个部分:frps服务端,frpc客户端。
前提条件:
  1. 一台具备公网ip的服务器,可安装frps(frp服务端)
  2. 内网环境中存在一个终端(可以是服务器本身,也可以是网关【路由器】)可安装frpc(frp客户端)
  3. 一个域名,可以配置多个子域名A类地址解析
拓扑图:
FRP内网穿透搭建-无公网IP时外部访问服务解决办法_第1张图片
对以上图的描述:
公网服务器需要运行frps服务,并暴露两个端口A,B,前者是frp服务的服务端口,用于frpc的连接,后者是虚拟的http端口,用于外界访问,从而间接的访问到frpc所在内网服务。
内网路由/服务器需要运行frpc服务,并配置与公网服务器frps的连接,然后配置局域网内需要暴露的服务(ip+端口),并指定一个域名,这个域名通常是服务器的所绑域名的二级域名。
由于frpc可以配置多个局域网内服务,但frps对外的虚拟http端口只有一个,要使外部定向到不同的内网服务,就需要使用二级域名来区分。二级域名仅是用于区别定向到不同的内网服务的,他们A类地址解析值都相同。
(二)安装与服务配置
官方文档: 通过自定义域名访问内网的 Web 服务 | frp
  • 服务端配置
[1]下载压缩包并解压
tar -zxvf frp_0.38.0_linux_amd64.tar.gz
[2]编辑配置文件frps.ini
其中bind_port为frp服务端口,token为密钥,设置后要求客户端配置相同,dashboard_xxx为frp的可视化监视网站配置,指定端口和登录的账号密码,vhost_http_port为虚拟http服务端口。
[common]
bind_port = 7000
token = 123456
dashboard_user = zuikaku
dashboard_pwd = 123456
dashboard_port = 7500
vhost_http_port = 88
Tips:确保涉及的端口防火墙已放开
[3]启动服务
nohup ./frps -c frps.ini >frp.log &
  • 客户端配置(以老毛子路由器为例)
[1]找到frp模块,设置为客户端模式
FRP内网穿透搭建-无公网IP时外部访问服务解决办法_第2张图片
[2]编辑配置文件(必须在局域网ip:192.168.123.1下才可编辑)
定位到客户端处:
FRP内网穿透搭建-无公网IP时外部访问服务解决办法_第3张图片
# ==========客户端配置:==========
[common]
server_addr = 139.224.231.81
server_port = 7000
token = 660317


[web]
type = http
local_ip = 192.168.123.1
local_port = 80
custom_domains = internal.zuikakuedu.top


[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
# ====================

Tips:[name]可以随意定义,但不能相同,若相同,后面的将会覆盖前面的

  • 测试访问
HTTP服务:使用对应内网服务所配置的custom_domains二级域名:vhost_http_port来进行访问
FRP内网穿透搭建-无公网IP时外部访问服务解决办法_第4张图片
SSH服务:使用服务器地址:对应remote_port来处理
Tips:所有的TCP服务都可以这样进行映射,比如MySQL tcp:3306,远程控制tcp:3389,docker:2375等

更多教程可来我的官网:最咔酷学院

https://www.zuikakuedu.cn

你可能感兴趣的:(服务器,frp,linux,公网,内网穿透)