CNMGFW 发表于 2021-9-15 11:08:15

nginx反向代理frp实现端口后缀隐藏 (伪)共用端口

由于服务器只有一个ip,80端口用起来比较方便,访问自己的一些服务不需要加个端口后缀,服务器运行多个服务需要大量端口,网上搜索了一大堆分享的教程,初步实现了自己的目的

frps配置
这里的端口设置不同于nginx 的端口,避免冲突无法启动,这个端口无须用户自己直接使用,随便写一个端口就行~~~实际上只是用于用户访问nginx后,nginx 再转发请求给这个端口;达到省略后面端口的效果

vhost_http_port = 8080
vhost_https_port = 8443
1
2
frpc配置
端口号直接写nginx 代理的端口 ,你自己使用起来方便就行 .譬如80/443

remote_port = 443
custom_domains = ex1.example.com
1
2
nginx配置
#https配置
server{
      listen 443 ssl;
      ssl_certificate /usr/local/xxx.pem; #你的ssl证书
      ssl_certificate_key /usr/local/xxx.key; #你的ssl key
      ssl_ciphers HIGH:!aNULL:!MD5;
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
      server_name ex1.example.com; //通配符或者具体域名,看需求 我这里有多个证书域名,所以和http分开了
      location / {
                proxy_redirect off;
                proxy_set_header Host $host;
                proxy_ssl_server_name on;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                #参考 链接: (https://www.v2ex.com/t/378393).
                #这里要写死**域名**才行 **不要写ip**端口就是frps里的vhost_https_port
                #htts://:
                proxy_pass https://ex1.example.com:8443;
                proxy_ssl_session_reuse on;
      }
#       access_log off;
}
#http配置
server{
      listen 80;
      server_name *.example.com;
      location / {
                      //服务器的ip和端口   http://:   vhost_http_port
                proxy_pass http://your_ip:8080;
                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_hide_header X-Powered-By;
      }
      access_log off;
}


嗯,到这里应该能隐藏访问地址的端口号了
直接使用https://ex1.example.com 来访问就行,达到和直接访问https://ex1.example.com:8443一样的效果
其他的非加密请求http://ex2.example.com也可以访问
简单说就是 用户访问nginx 80/443端口,nginx再去访问带非通用默认端口的frp地址返回给用户
#参考 链接: link https://www.v2ex.com/t/378393https://cdn.jsdelivr.net/gh/master-of-forums/master-of-forums/public/images/patch.gif

三氧化二砷 发表于 2021-9-15 13:17:03

https://pic.zheng98.com/2021/09/15/7b81c2d80ae2e.png
宝塔 永远的神

zvkv 发表于 2021-11-6 22:33:05

这样我国内机不北岸也可以了

jack8 发表于 2021-11-16 13:39:15

zvkv 发表于 2021-11-6 22:33
这样我国内机不北岸也可以了

绕不过北岸的,你试试

上帝也疯狂 发表于 2022-4-10 22:28:37

三氧化二砷 发表于 2021-9-15 13:17
宝塔 永远的神

大佬。那你有没有发现,虽然反代了。但是用域名:端口号 形式访问还是可以的。并没有完全隐藏掉端口

三氧化二砷 发表于 2022-4-10 22:50:50

上帝也疯狂 发表于 2022-4-10 22:28
大佬。那你有没有发现,虽然反代了。但是用域名:端口号 形式访问还是可以的。并没有完全隐藏掉端口 ...

防火墙关了不就行了

上帝也疯狂 发表于 2022-4-10 23:03:31

三氧化二砷 发表于 2022-4-10 22:50
防火墙关了不就行了

大佬。放变tg说话吗?
页: [1]
查看完整版本: nginx反向代理frp实现端口后缀隐藏 (伪)共用端口