全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworksBGVM服务器IP归属甄别会员请立即修改密码美国地址
查看: 8039|回复: 6

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

[复制链接]
发表于 2021-9-15 11:08:15 | 显示全部楼层 |阅读模式
由于服务器只有一个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;
                #参考 链接: [link](https://www.v2ex.com/t/378393).
                #这里要写死**域名**才行 **不要写ip**  端口就是frps里的vhost_https_port
                #htts://[custom_domains ]:[vhost_https_port]
                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://[ip]:[port]   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/378393
发表于 2021-9-15 13:17:03 | 显示全部楼层

宝塔 永远的神
发表于 2021-11-6 22:33:05 | 显示全部楼层
这样我国内机不北岸也可以了
发表于 2021-11-16 13:39:15 | 显示全部楼层
zvkv 发表于 2021-11-6 22:33
这样我国内机不北岸也可以了

绕不过北岸的,你试试
发表于 2022-4-10 22:28:37 | 显示全部楼层

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

防火墙关了不就行了
发表于 2022-4-10 23:03:31 | 显示全部楼层
三氧化二砷 发表于 2022-4-10 22:50
防火墙关了不就行了

大佬。放变tg说话吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2022-6-30 19:16 , Processed in 0.059866 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表