frp内网穿透+Nginx反向代理

Posted 皓洲

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了frp内网穿透+Nginx反向代理相关的知识,希望对你有一定的参考价值。

frp内网穿透+nginx代理

frp 的作用(来自百度百科)

  • 利用处于防火墙后的机器,对外网环境提供 http 或 https 服务。
  • 对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。
  • 利用处于防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司局部环境的主机。

frp下载地址

下载地址:https://github.com/fatedier/frp

frp中文文档

https://gofrp.org/docs/

部署服务端

编写frps.ini文件

[common]
# 提供给客户端访问的监听端口
bind_port = 7000
# http类型的内网穿透必须设置vhost_http_port,并且所有的http类型的客户端都将通过同一个vhost_http_port访问
vhost_http_port = 10244

# 使用token的验证方式
authentication_method = token
# token密码
token = xxxxxxxxxxxx

# 查看服务器端连接情况的管理面板端口
dashboard_port = 7500
# 管理面板账号密码,默认admin
dashboard_user = admin
dashboard_pwd = admin

启动frp服务端(linux的话,要在后台运行的话,加&就可以了)

# 直接运行
./frps -c ./frps.ini 
#后台运行
./frps & -c ./frps.ini 

客户端

编写frpc.ini文件

[common]
server_addr = ip地址
# 与服务端的bind_port一致
server_port = 7000
token = xxxxxxxxxxxx

[react]
# 穿透类型
type = http
# 被穿透的服务的端口
local_port = 8899
# 访问的公网域名
custom_domains = 个人网址

启动客户端(windows不知道怎么在后台运行)

./frpc.exe -c ./frpc.ini 

Nginx代理

Nginx下载地址:http://nginx.org/en/download.html

通过Nginx可以把vhost_http_port的端口反向代理到二级域名的80端口

编写nginx配置文件

server {
    listen       80;
    listen       [::]:80;
    server_name  bsxg.zhz1314.cn;
 
    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://localhost:10244;
    }
}

注意事项

  • 要拥有自己的服务器(拥有公网ip)
    • 服务器的防火墙记得打开,我用到了80端口和10244端口,还有控制面板7500端口(可不用)
    • 网速会收到服务器的限制,如果可以的话,购买服务器还是买带宽大一点的好。
  • 拥有自己的个人网站

以上是关于frp内网穿透+Nginx反向代理的主要内容,如果未能解决你的问题,请参考以下文章

基于FRP反向代理工具实现内网穿透攻击

高性能的内网穿透反向代理应用 frp 介绍

内网穿透的高性能的反向代理应用FRP-自定义404错误页实践可行版

阿里云服务器ECS利用反向代理FRP内网穿透

云服务器frp内网穿透配置说明

使用frp进行内网穿透