一、搭建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
六、问题与总结
- frps与frpc成功启动且建立了链接,可是访问不到内网服务器,可能的原因
- 你的内网服务没有正常启动运行监听对应端口
- 公网的端口防火墙没有放行(云服务需要在控制台的安全组去放行,仅仅操作firewalld是不行的)
- 在内网服务器通过tcpdump -i anr port "服务器端口",只要抓包到有数据,说明访问得到服务器可以想想其他原因
- 启动frps或frpc时出现问题,无法成功启动
- 大概率应该是配置文件格式不规范问题,toml文件格式,可以复制你的配置文件到AI中如通义前文,让AI给你规范一下
- frpc中的remote_port的使用
remote_port可以打开frps的固定端口,例如你想要通过访问公网域名或ip的:5100端口访问到内网的某个服务器上的另一个端口,则可以在客户端的配置文件中使用remote_port实现。
类似这样
- 配置frp应用自启动
linux参考链接:Linux下开机自动启动FRP - 爱吃猪的罐头鱼 - 博客园
windows参考链接:Windows设置frpc开机自动启动(不管用户是否登陆都要运行)_不管用户是否登录都要运行-CSDN博客
windows frp用任务计划程序后没有成功自启可能原因推荐链接:Windows 配置定时任务 和任务无法执行原因分析 - 第八种格调的男人 - 博客园
版权归原作者 weixin_46558860 所有, 如有侵权,请联系我们删除。