# 如何解决无公网IP访问内网的应用

1. 什么是frp

frp是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务, 支持tcp, udp, http, https等协议类型,并且web服务支持根据域名进行路由转发。

2. 为什么要用frp

通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:

  • 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
  • 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
  • 代理组间的负载均衡。
  • 端口复用,多个服务通过同一个服务端端口暴露。
  • 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
  • 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
  • 服务端和客户端 UI 页面

3. 如何搭建frp

3.1 搭建服务端

在你的vps上

sudo apt-get install frp

等待完成后

mkdir /etc/frp
touch /etc/frps.ini

配置frps.ini

[common]
#frp接受客户端的请求的端口
bind_port = 7000
#这里端口设置为80880为客户端的web服务
vhost_http_port = 8080
#用于身份验证,请自行修改,要保证服务端与客户端一致
token = abcdefgh

运行frpc

./frps -c /etc/frp/frps.ini

防火墙开启7000端口的tcp请求

1.3.2 搭建你的客户端

配置:

# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
# 用于身份验证,请自行修改,要保证服务端与客户端一致
token = abcdefgh

[web]
type = http
local_port = 80
custom_domains = www.yourdomain.com

启动:

./frpc -c ./frpc.ini

www.yourdomain.com 的域名 A 记录解析到 IP x.x.x.x,如果服务器已经有对应的域名,也可以将 CNAME 记录解析到服务器原先的域名。

通过浏览器访问 http://www.yourdomain.com:8080 即可访问到处于内网机器上的 Web 服务。

评论关闭。