Frp内网穿透实战指南:从零搭建到远程访问
1. 为什么你需要Frp内网穿透想象一下这个场景你家里有个NAS存着重要文件公司电脑开着开发环境树莓派跑着智能家居控制程序。但当你出差在外时却发现这些设备就像被关在铁笼子里——因为它们都在内网外网根本访问不到。这就是内网穿透要解决的问题。FrpFast Reverse Proxy是我用过最顺手的内网穿透工具。它就像给你的内网设备开了个专属快递通道外网请求通过Frp服务端中转准确送达内网客户端。相比其他方案Frp有三大杀手锏零配置路由器不用折腾路由器端口映射协议全覆盖TCP/HTTP/HTTPS全支持流量可视化自带Dashboard监控面板去年我给客户部署智能停车场系统时就是靠Frp让管理后台穿透多层企业防火墙。当时试过其他工具要么被安全策略拦截要么延迟高到离谱最后只有Frp稳定跑满带宽。2. 环境准备双机部署指南2.1 服务器选购建议我用过国内外十几种云服务器跑Frp服务端总结出这些经验基础配置1核1G足够实测每秒200连接带宽选择建议3M起步1M带宽实测传输速度约128KB/s地域选择国内服务器需备案域名香港/新加坡节点免备案这里以腾讯云轻量服务器CentOS 7.9为例# 检查系统版本 cat /etc/redhat-release # 更新系统 yum update -y yum install wget -y2.2 客户端设备准备客户端可以是任意能运行Frp的设备我测试过这些组合树莓派4BARM架构老笔记本装Ubuntu群晖DS218需手动编译建议先在虚拟机练习这是我用的VirtualBox配置# 创建CentOS虚拟机 VBoxManage createvm --name Frp_Client --ostype RedHat_64 --register # 分配2核CPU2G内存 VBoxManage modifyvm Frp_Client --cpus 2 --memory 20483. 服务端配置详解3.1 安装Frp服务端下载时注意架构选择常见坑点x86_64 ≠ amd64老系统用386新版默认带systemd服务wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz tar -zxvf frp_0.44.0_linux_amd64.tar.gz cd frp_0.44.0_linux_amd643.2 配置文件精讲这是我的生产环境配置模板带安全加固[common] bind_port 7000 kcp_bind_port 7000 # 加速传输 token YourComplexToken!#2023 # 安全设置 tls_only true allow_ports 10000-20000 # 开放端口范围 # 监控面板 dashboard_port 7500 dashboard_user admin dashboard_pwd SuperSecurePwd123 enable_prometheus true # 日志管理 log_file /var/log/frps.log log_level info log_max_days 7启动建议用systemd守护进程cat /etc/systemd/system/frps.service EOF [Unit] DescriptionFrp Server Afternetwork.target [Service] Userroot ExecStart/usr/local/frp/frps -c /usr/local/frp/frps.ini Restarton-failure [Install] WantedBymulti-user.target EOF4. 客户端实战配置4.1 基础穿透配置以SSH穿透为例这是经过优化的配置[common] server_addr your.server.ip server_port 7000 token YourComplexToken!#2023 [home_ssh] type tcp local_ip 127.0.0.1 local_port 22 remote_port 6000 use_compression true # 启用压缩4.2 高级功能应用场景1远程开发调试[vscode_web] type http local_port 8080 custom_domain dev.yourdomain.com http_user dev http_pwd Code2023场景2多设备管理[nas_web] type http local_ip 192.168.1.100 local_port 5000 subdomain nas [pi_ssh] type tcp local_ip 192.168.1.101 local_port 22 remote_port 60015. 安全加固与性能调优5.1 防火墙配置用firewalld限制访问firewall-cmd --permanent --add-port7000/tcp firewall-cmd --permanent --add-port7500/tcp firewall-cmd --reload5.2 传输优化启用KCP协议加速适合高延迟网络[common] protocol kcp kcp_mtu 1400实测数据对比配置项TCP模式延迟KCP模式延迟国内跨运营商280ms150ms国际链路450ms220ms6. 常见问题排查问题1连接超时检查服务端安全组规则测试telnet server_ip 7000查看服务端日志tail -f /var/log/frps.log问题2Dashboard无法访问确认dashboard_port未被占用检查firewall-cmd --list-ports尝试curl http://127.0.0.1:7500最近帮客户部署时遇到个典型问题客户端显示连接成功但外网访问不了。最后发现是云厂商的弹性公网IP没绑定到实例上。这类问题建议按这个流程排查内网测试本地服务是否正常检查Frp服务端/客户端日志验证网络链路traceroute检查云平台安全策略7. 扩展应用场景智能家居远程控制把Home Assistant通过HTTP穿透[home_assistant] type http local_port 8123 subdomain home远程桌面连接Windows RDP配置示例[win_rdp] type tcp local_ip 192.168.1.200 local_port 3389 remote_port 6002上个月用这个方案给服装店部署了远程监控系统通过Frp将各分店的NVR穿透到总部省去了专线费用。关键是要在服务端限制带宽[common] max_bandwidth_per_proxy 1MB
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2458652.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!