利用frp内网穿透实现公网访问内网服务器(https)

一、搭建frp参考

FRP搭建教程参考使用frp配置内网(穿透[保姆级教程])_frp内网穿透-CSDN博客

二、frp基本知识

FRP应用分为服务端(frps)和客户端(frpc)

如果想要实现通过访问公网域名或IP加端口访问到内网服务器需要把服务端(frps)部署到具有公网IP的服务器上

三、配置服务端frps

按照上述教程把服务端部署到公网IP服务器之后,需要修改配置文件

服务端配置简单,配置好frpc与frps建立连接时访问的端口bind_port即可

如果需要实现https代理则需要配置vhost_https_port

服务端配置文件(frps.toml)参考:

[common]
bind_port = 9088            #frp服务端对外开放端口

vhost_http_port = 9089      #http绑定端口
    
vhost_https_port = 9085     #https绑定端口

auth_token = "123456"       #服务端与客户端相互认证的密钥,两端需保持一致

log_file = "/frp_server/logs/frps.log"       #日志保存地址
log_level = "debug"                          #日志等级
log_max_days = 3                             #日志保存时长

四、配置客户端frpc

如果要实现https访问,需要配置域名和申请ssl正式,并且下载证书(crt/key)到frpc客户端所在的主机中。

如果你的frpc客户端和你的服务器部署在同一台主机上,local_ip配置成127.0.0.1,local_port配置成你的服务器开放端口(防火墙记得放行端口)。

如果你的frpc客户端和你的服务器部署不在同一台主机上,那么需要部署frpc的主机可以ping通部署你服务的主机,之后local_ip配置成内网服务器主机的IP地址,local_port配置成内网服务器对应端口(防火墙记得放行端口)。

客户端配置文件(frpc.toml)参考:

[common]
server_addr = "111.200.13.44"        #部署frps的公网服务器地址
server_port = 9088                   #frps对外开放的端口bind_port
auth_token = "your_pwd"              #约定的密钥

[[server_proxies]]                        
name = "server-tcp"                  #代理名称
type = "https"                       #代理的网络协议类型 tcp/udp/https
local_ip = "192.168.0.211"           #代理目标ip地址(内网服务器ip地址)
local_port = 443                     #代理目标开放端口(内网服务器开放端口)
custom_domains="search.cn"           #自定义域名,类似nginx的server_name,用于识别请求

crt_path= "../SSL/c_search.cn_public.crt"        #https需要配置SSL证书,crt文件路径
key_path= "../SSL/c_search.cn.key"               #https需要配置SSL证书,key文件路径

五、启动服务端和客户端

启动命令 服务端:frps -c frps.toml

启动命令 客户端:frpc -c frpc.toml

六、问题与总结

1. frps与frpc成功启动且建立了链接,可是访问不到内网服务器,可能的原因

  •  你的内网服务没有正常启动运行监听对应端口
  •  公网的端口防火墙没有放行(云服务需要在控制台的安全组去放行,仅仅操作firewalld是不行的)
  • 在内网服务器通过tcpdump -i anr port  "服务器端口",只要抓包到有数据,说明访问得到服务器可以想想其他原因

2. 启动frps或frpc时出现问题,无法成功启动

  • 大概率应该是配置文件格式不规范问题,toml文件格式,可以复制你的配置文件到AI中如通义前文,让AI给你规范一下

3. frpc中的remote_port的使用

remote_port可以打开frps的固定端口,例如你想要通过访问公网域名或ip的:5100端口访问到内网的某个服务器上的另一个端口,则可以在客户端的配置文件中使用remote_port实现。

类似这样

4. 配置frp应用自启动

linux参考链接:Linux下开机自动启动FRP - 爱吃猪的罐头鱼 - 博客园

windows参考链接:Windows设置frpc开机自动启动(不管用户是否登陆都要运行)_不管用户是否登录都要运行-CSDN博客

windows frp用任务计划程序后没有成功自启可能原因推荐链接:Windows 配置定时任务 和任务无法执行原因分析 - 第八种格调的男人 - 博客园        

              

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值