Nginx + Frp 内网穿透

2018-11-17 11:23 Develope Frank wu


Github:https://github.com/fatedier/frp 在 Release下载安装。



frp 分为服务器端及客户端,名称后面分别以 s 及 c 结尾,ini 则为配置对应的配置文件如下:

文件名说明

frps

服务端程序(windows程序以 .exe 结尾)
frps.ini服务端配置文件
frps_full.ini服务端配置示例文件,包含了所有的配置及其说明,用作参考
frpc客户端程序(windows程序以 .exe 结尾)
frpc.ini客户端配置文件
frpc_full.ini客户端配置示例文件,包含了所有的配置及其说明,用作参考


服务器端配置(frps.ini):

bind_port = 7000 # frp 的端口号

vhost_http_port = 8080 # 需要映射外网端口号

subdomain_host = domain.com # 需要映射的主域名

启动服务器端:

./frps  -c ./frps.ini

将 frp 添加为后台服务 nohup ./frps  -c ./frps.ini & ,加了后面的 & 符号才不会退出。

看到 start proxy success 即表示配置成功了!


客户端配置(frpc.ini):

[common]

server_addr = 0.0.0.0. # 主机IP

server_port = 7000 # 设置与 frps.ini 中的 bind_port 一致即可

[test]

type = http # 转发类型

local_port = 8080 # 本地服务器的端口号

subdomain = test # 二级域名映射,如 test.domain.com 就使用 test

同样,看到 start proxy success 即表示配置成功了!


最后就是 nginx 配置:

 server {

    listen 80; 

    server_name test.domain.com;

    location / {

      proxy_pass http://localhost:8080;

    }

  }

即通过 nginx 将外网请求 test.domain.com 转发到主机 8080 端口上,然后再通过 frp 服务端监听 8080 端口 然后转发到客户端的 8080 端口上。


配置完成后,通过外网域名 test.domain.com 就能访问到本地 8080 端口的服务了。