frp搭建免费的内网穿透
内容提要
文章介绍用frp搭建内网穿透:因IP枯竭多为城域网,无独立公网IP。frp是高性能反向代理,支持TCP、UDP、HTTP、HTTPS等协议。需在公网服务器配置frps.ini(服务端口、token、Dashboard)并启动frps;本地配置frpc.ini(服务器地址端口、转发类型、本地及远程端口)并启动frpc,即可将本地80端口暴露到外网8080访问。
延伸解读
为什么需要内网穿透:城域网环境下的公网访问难题
文章指出,由于IP地址枯竭,如今用户获得的IP多为“城域网”地址,运营商在用户之上又加了一层更大的路由器,导致用户不再像ADSL时代那样拥有独立的公网IP。这意味着外部设备无法直接访问本地服务。frp通过在有公网IP的服务器上部署服务端,将内网服务中转暴露到公网,从而绕过这一限制。理解这一背景有助于判断何时需要自建穿透方案。
frp的核心能力:不止于端口转发
frp是一个高性能的反向代理应用,支持TCP、UDP、HTTP、HTTPS等多种协议。除了基本的端口转发,它还提供客户端与服务端通信支持TCP、KCP、Websocket,TCP连接流式复用,代理组间负载均衡,端口复用,以及静态文件查看、HTTP/SOCKS5代理等客户端插件。服务端和客户端均带UI页面。这些特性说明frp适合需要灵活配置和扩展的场景,而不仅是简单的内网暴露。
配置要点:服务端与客户端的对应关系
服务端frps.ini需设置server_port(服务端口)、token(连接令牌)和dashboard_port(管理界面端口),启动frps后客户端才能连接。客户端frpc.ini需填写server_addr(服务器IP)、server_port(与服务端一致),并在代理段指定type、local_ip、local_port和remote_port。文章示例将本地80端口映射到外网8080端口,访问http://[server_addr]:8080即可。注意token需两端一致,remote_port是外部访
使用前提与安全提醒
文章明确,自建frp需要自己拥有公网服务器;若没有服务器,可参考其提到的免费方案。配置中token用于客户端连接认证,dashboard默认用户名密码为admin,文章未强调修改,但实际部署时应考虑更改默认凭证以降低风险。此外,frp功能远不止端口转发,感兴趣可查阅官方文档和GitHub仓库获取完整配置说明。
Q&A
为什么现在需要内网穿透?
由于IP地址日渐枯竭,我们现在使用的IP都是“城域网”,运营商在用户上面加了一个更大的路由器,已经不能像以前那样ADSL拨号成功后拥有自己的独立公网IP了。
frp是什么?它支持哪些协议?
frp是一个专注于内网穿透的高性能的反向代理应用,支持TCP、UDP、HTTP、HTTPS等多种协议。它可以将内网服务以安全、便捷的方式通过具有公网IP节点的中转暴露到公网。
使用frp需要准备什么?
需要一台具有公网IP的服务器来运行frp服务端(frps),并在本地运行frp客户端(frpc)。此外,需要下载frp对应系统的版本。
如何配置frp服务端(frps)?
在公网服务器上编辑frps.ini文件,配置[common]部分,设置server_port(服务端口,如7000)、token(连接令牌,如abc123)、dashboard_port(Web管理端口,如7500)以及dashboard_user和dashboard_pwd(Dashboard用户名密码,如admin/admin)。然后运行./frps -c ./frps.ini启动服务。
如何将本地80端口暴露到外网的8080端口?
在本地编辑frpc.ini文件,配置[common]部分设置server_addr为公网服务器IP、server_port为7000;然后添加一个代理配置,如[80],设置type = tcp、local_ip = 127.0.0.1、local_port = 80、remote_port = 8080。运行./frpc -c ./frpc.ini后,即可通过http://[server_addr]:8080访问本地80端口。
frp有哪些高级功能?
frp支持TCP、KCP、Websocket等多种通信协议;采用TCP连接流式复用,节省连接建立时间;支持代理组间的负载均衡;支持端口复用,多个服务通过同一个服务端端口暴露;提供多个原生客户端插件(静态文件查看、HTTP、SOCK5代理等);具有高度扩展性的服务端插件系统;提供服务端和客户端UI页面。