找回密码
 立即注册
搜索
查看: 3973|回复: 40

[网络] 如何区分反向代理与端口转发,搭建反向代理求助

[复制链接]
     
发表于 2024-8-22 23:23 | 显示全部楼层 |阅读模式
本贴的来源是可见本人的折腾贴:
[软件] 生命在于折腾,All in Boom(自组NAS)的通知系统搭建
自建了通知系统后,有网友推荐搭建反向代理提供内网服务。无奈本人计算机水平薄弱,没有系统学过,只会简单的看教程,高深一些的就不懂了。
原帖里也提到了暂时通过openwrt里的端口转发到docker里的桥接ip地址实现。

上网搜了一下反向代理与正向代理,示意图还是很清晰明了的。
167509-20240413152625206-750500807.png
167509-20240413155957605-1986681220.png
介绍中说反向代理适合与负载均衡、就近访问、保护后端服务器等,这些场景更适合于办公与大规模网络服务。

来说说我的问题吧,我想把一些家庭的服务,比如监控、通知等服务让外网也能访问到,反向代理是符合这个使用场景的,那端口转发是不是也可以适用呢?
我把后端服务的ip地址与端口在路由器里设置转发,只要是访问这个端口就转发到后端服务上。
这个与反向代理有什么区别?反向代理与端口转发,在家庭网络服务上有什么异同?

我曾经尝试想在openwrt上搭建反向代理。搜了一下发现frps,op上有对应的package。继续搜索发现需要frps与frpc,服务端与客户端一起工作,那应该是不太符合我的需求,搭载难度与复杂性较高。
然后又搜到了lucky,尝试一下好像没成功。求助在op下如何快速简单搭建反向代理,是docker下使用nginx proxy manager合适,还是使用单文件的caddy合适?




回复

使用道具 举报

     
发表于 2024-8-22 23:54 | 显示全部楼层
端口映射是一对一,每个服务都要单独在外部开一个端口;反向代理可以一对多,外部只需要开一个端口,根据访问的不同url映射到内部的不同ip和端口。

只用过npm比较方便无脑,不过如果是家宽因为用不了80/443就要折腾一下了。
回复

使用道具 举报

     
发表于 2024-8-23 09:48 | 显示全部楼层
端口映射工作在四层,只要是用tcp/udp的都可以映射。反向代理在七层,只适用于web应用
回复

使用道具 举报

头像被屏蔽
发表于 2024-8-23 10:17 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2024-8-23 10:26 | 显示全部楼层
要不试试我说过的那个方法?简单粗暴安全性也没啥问题
回复

使用道具 举报

     
 楼主| 发表于 2024-8-23 11:22 来自手机 | 显示全部楼层
Saker_bobo 发表于 2024-8-23 10:26
要不试试我说过的那个方法?简单粗暴安全性也没啥问题

在哪里?没找到
感谢大家,我能想到的,端口映射开很多端口,安全性差一些。
性能上,端口映射和反向代理哪个开销小呢?

—— 来自 鹅球 v3.1.88.3
回复

使用道具 举报

     
发表于 2024-8-23 11:33 | 显示全部楼层
macos 发表于 2024-8-23 10:17
反向也可以tcpudp的,跟端口映射的差别,嗯,想了下实际情况中端口映射后端是知道客户ip的,这本来就是网关 ...

如果你说的反向是nginx的stream模块(或类似物),那它也是工作在四层的,看上去跟端口映射一样,是一种NAT。
只不过nginx连源地址都改成自身,实际上防火墙的双向NAT也可以做到一样的效果
回复

使用道具 举报

     
发表于 2024-8-23 12:33 | 显示全部楼层
高卢鸡 发表于 2024-8-23 11:22
在哪里?没找到
感谢大家,我能想到的,端口映射开很多端口,安全性差一些。
性能上,端口映射和反向代理 ...

https://bbs.saraba1st.com/2b/for ... ;page=5#pid65788122
就之前nas贴说过的搞个隧道映射出去 靠隧道回家 开销的话肯定是开个隧道小
回复

使用道具 举报

头像被屏蔽
     
发表于 2024-8-23 12:46 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2024-8-23 12:48 | 显示全部楼层
> 我想把一些家庭的服务,比如监控、通知等服务让外网也能访问到,反向代理是符合这个使用场景的,那端口转发是不是也可以适用呢?
能做到 不合适。这不是安全性差一些,就完全没有安全性可言,比暴露3389端口到公网还危险
老老实实照楼上说的搭隧道吧
回复

使用道具 举报

     
 楼主| 发表于 2024-8-23 15:34 来自手机 | 显示全部楼层
搭隧道,手机端分流怎么弄?总是挂着隧道,正常使用会有一些延迟。

—— 来自 鹅球 v3.1.88.3
回复

使用道具 举报

     
发表于 2024-8-23 15:42 | 显示全部楼层
本帖最后由 Saker_bobo 于 2024-8-23 15:44 编辑
高卢鸡 发表于 2024-8-23 15:34
搭隧道,手机端分流怎么弄?总是挂着隧道,正常使用会有一些延迟。

—— 来自 鹅球 v3.1.88.3 ...
  1. proxies:
  2.   - name: RouterSS
  3.     type: ss
  4.     server: abc.xyz
  5.     port: 11451
  6.     cipher: 2022-blake3-aes-128-gcm
  7.     password: abcdefg
  8.     udp: true

  9. proxy-groups:
  10.   - name: 🏠 HOME
  11.     type: select
  12.     proxies:
  13.     - DIRECT
  14.     - RouterSS
  15.     url: https://connect.rom.miui.com/generate_204
  16.     interval: 1200

  17. rules:
  18.   - IP-CIDR,192.168.1.0/24,🏠 HOME
复制代码

猫的配置 最上面是隧道信息 中间写个策略组开关 最下面加条内网规则 完事
回复

使用道具 举报

     
发表于 2024-8-23 16:00 | 显示全部楼层
1. 如果你是在国内而且不打算用类似zerotier的东西,我建议你自己买个云服务器做公网访问。
2. 正向/反向代理问题
正向代理指的是 我 通过 代理 访问其他人,反向代理是 他人 通过 代理 访问我(的服务器)。所以这个情况下你需要的是反向代理。
3. 端口转发
端口转发是路由器的一个功能,指路由器访问自身的请求转发到内网的机器上。比如路由器的地址是A,内网服务器的地址是B,那么端口转发就是路由器把访问 A:1234 的请求转发到 B:5678 上,并且会把B:5678的返回也转发回去。
4. 我不推荐在你的路由器上去实现反向代理,原因是 a.政策风险,你的宽带是家庭宽带,有这种服务是由风险的 b.技术上来说,你的IP不一定固定而且不一定开放了入站。
5. 有IPv6的花活可以用,但是需要你全链路都有v6地址,我现在不推荐。
综上所述,我推荐的是买一个云服务器作为入口,内部服务用wireguard之类的东西连到云服务器,然后云服务器作为反向代理。
回复

使用道具 举报

     
 楼主| 发表于 2024-8-23 19:58 | 显示全部楼层
hanyuwei70 发表于 2024-8-23 16:00
1. 如果你是在国内而且不打算用类似zerotier的东西,我建议你自己买个云服务器做公网访问。
2. 正向/反向代 ...

不知啥原因,路由有2408开头的v6地址,但是无法访问外部v6地址。
感谢建议
回复

使用道具 举报

     
发表于 2024-8-23 22:33 | 显示全部楼层
别没事弄反向变成正向代理
变成网络上的代理肉鸡
最稳妥还是openvbn之类的组网技术,成熟稳定
回复

使用道具 举报

     
发表于 2024-8-23 22:39 | 显示全部楼层
openwrt上有openvbn的包,装一下就好了
本地生成几个证书,扔上去,配置文件改改就行了
简单简单
回复

使用道具 举报

     
发表于 2024-8-24 01:47 来自手机 | 显示全部楼层
你有公网IP吗?有就端口转发,没有就反向代理
回复

使用道具 举报

发表于 2024-8-24 02:51 来自手机 | 显示全部楼层
推荐13楼的方案 200块买个** 装frps

—— 来自 OPPO PCCM00, Android 10上的 S1Next-鹅版 v3.0.0.81-alpha
回复

使用道具 举报

     
发表于 2024-8-24 09:03 来自手机 | 显示全部楼层
hanyuwei70 发表于 2024-8-23 16:00
1. 如果你是在国内而且不打算用类似zerotier的东西,我建议你自己买个云服务器做公网访问。
2. 正向/反向代 ...

IPv6现在手机不是默认就有?直接IPv6比云服务器便宜多了吧
回复

使用道具 举报

     
发表于 2024-8-24 11:09 来自手机 | 显示全部楼层
都可以,反向代理是代理访问,你的服务器看到的访问都是来自于代理服务器,代理服务器可以根据配置策略实现很多功能,比如公网只开放443端口,但是可以根据访问的url区分是访问服务器1还是服务器2。端口转发就是简单的转发流量。一般家用端口转发就够了
回复

使用道具 举报

     
 楼主| 发表于 2024-8-24 23:47 | 显示全部楼层
@Saker_bobo 感谢提议,已经查了资料。
@chachi 原先已有,支持分流。wg不支持分流,需通过其他app分流,手机端不方便。
回复

使用道具 举报

头像被屏蔽
发表于 2024-8-25 00:08 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2024-8-25 00:28 | 显示全部楼层
高卢鸡 发表于 2024-8-24 23:47
@Saker_bobo 感谢提议,已经查了资料。
@chachi 原先已有,支持分流。wg不支持分流,需通过其他app分流,手 ...

这套方法好就好在只要你有公网IP就能用 隧道可以走V6直接链接 不影响访问内网V4地址 通过猫这种规则代理程序可以做到只在访问内网IP段的时候才走隧道 我塞了好多个在自己维护的配置里 一键切换各地内网
回复

使用道具 举报

     
 楼主| 发表于 2024-8-25 22:30 | 显示全部楼层
RaidenII 发表于 2024-8-25 00:08
wg支持基于ip和应用的分流啊

?我搜的不是这样,请大佬赐教
回复

使用道具 举报

     
发表于 2024-8-26 06:39 来自手机 | 显示全部楼层
本帖最后由 WiiGe 于 2024-8-26 06:44 编辑
高卢鸡 发表于 2024-8-25 22:30
?我搜的不是这样,请大佬赐教

有个分流方案比较复杂,但是一劳永逸:
自建DNS, 通过DNS拆分(DNS split)技术可以实现客户端在各处均使用统一的域名访问服务器

例如你的nas地址是 https://nas.example.com,你的公网V P S的 IP为X.Y.X.W,内网NAS地址为A.B.C.D

在外部这个地址https://nas.example.com会被公网DNS服务器解析到你的X.Y.X.W,使用V P S隧道流量(如果你的V P S是流量计费的话)访问A.B.C.D,这个教程很多npm,frp,nps都可以
而在内部,你回家了之后你自建的DNS就会是家里的权威DNS服务器,这个DNS解析的返回会是A.B.C.D,你的客户端依旧访问https://nas.example.com,但能自动提速到内网访问的网速(例如家庭10G,56G甚至400G内网

结合我在你原帖中给的docker自动暴露域名的github项目可以实现这样的效果:
docker镜像启动->自动暴露访问点->动态加入homepage或者heimdall主页->DNS被自动通告更新条目,实现内外网流量分流和广告拦截或者游戏加速

同时,整个客户端中配置的访问地址从未变化过

(搞个p的ipv6哇,下馆子吃个饭若是连上不支持ipv6的免费wifi,家中全部设备直接不可达,纯纯给自己添堵
回复

使用道具 举报

头像被屏蔽
发表于 2024-8-26 07:27 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2024-8-26 07:34 | 显示全部楼层
蒜灵 发表于 2024-8-24 09:03
IPv6现在手机不是默认就有?直接IPv6比云服务器便宜多了吧

IPv6在你直接运营商的时候确实有,但是ipv6一不一定有入站,二连其他人的wifi的时候不一定拿得到。
回复

使用道具 举报

     
发表于 2024-8-26 13:26 | 显示全部楼层
WiiGe 发表于 2024-8-26 06:39
有个分流方案比较复杂,但是一劳永逸:
自建DNS, 通过DNS拆分(DNS split)技术可以实现客户端在各处均使用 ...

怎么实现动态加入homepage或者heimdall主页呢?
回复

使用道具 举报

     
发表于 2024-8-26 14:27 | 显示全部楼层
luguozmy 发表于 2024-8-26 13:26
怎么实现动态加入homepage或者heimdall主页呢?

homepage有个叫docker自动服务发现的功能
在homepage里面不要去配什么service, 直接去配置docker实例或者kubernates实例
它自己会靠标签选择器找到服务并暴露出来

image.png

详见这篇文档

评分

参与人数 1战斗力 +1 收起 理由
luguozmy + 1

查看全部评分

回复

使用道具 举报

     
发表于 2024-8-26 17:09 | 显示全部楼层
WiiGe 发表于 2024-8-26 14:27
homepage有个叫docker自动服务发现的功能
在homepage里面不要去配什么service, 直接去配置docker实例或者k ...

heimdall也有类似的服务吗? 我在github没有看到
回复

使用道具 举报

发表于 2024-8-26 17:46 来自手机 | 显示全部楼层
我粗浅的理解就是反向代理只能搞http(s)?端口转发不限制应用层协议

—— 来自 realme RMX3888, Android 14上的 S1Next-鹅版 v2.5.4
回复

使用道具 举报

     
发表于 2024-8-26 18:40 | 显示全部楼层
luguozmy 发表于 2024-8-26 17:09
heimdall也有类似的服务吗? 我在github没有看到

我只找到了这个, 我用的是另一个通过traefik-api生成heimdall配置的项目, 当时试了好多种dashboard项目, 比如homer, SUI之类的, 所以我一时半会儿想不起来那个组件叫什么了

后来因为heimdall太慢就没再搞了, 还是homepage甚至你自写个html之类的纯静态的页面更适合做服务入口(主页
回复

使用道具 举报

     
 楼主| 发表于 2024-8-26 23:06 | 显示全部楼层
上面很多大佬分享了方法,感谢。
提个问题,国内的家庭宽带基本不是固定ip,需要ddns或者云服务器搭隧道。
1.ddns会有更新时间,虽然大部分时间稳定,但是如果用免费的cf解析,国内dns服务器更新会有个过程,有短暂连不上的情况
2.云服务器搭隧道,云服务器的ip地址不变,家宽通过隧道连接云服务器,只要家宽正常在线,ip怎么换也会自动连上ip不换的云服务器。
2是不是比1的方案稳定性更好,但是2会消耗云服务器的流量,能否通过云服务器给家庭内网服务与手机或移动端做一个桥梁,只要家庭与移动端连接上之后,就不用云服务器介入了,不耗流量,无需中转速度快。
回复

使用道具 举报

     
发表于 2024-8-27 01:28 | 显示全部楼层
高卢鸡 发表于 2024-8-26 23:06
上面很多大佬分享了方法,感谢。
提个问题,国内的家庭宽带基本不是固定ip,需要ddns或者云服务器搭隧道。
...

你是否在搜索: tailscale
回复

使用道具 举报

     
发表于 2024-8-27 09:34 | 显示全部楼层
高卢鸡 发表于 2024-8-26 23:06
上面很多大佬分享了方法,感谢。
提个问题,国内的家庭宽带基本不是固定ip,需要ddns或者云服务器搭隧道。
...

1只要有能入站的公网IP就行,一般来说IP只会在重拨号的时候变动,你设置系统5点钟重拨号那正常使用你不会有ddns解析问题;

2云服务器搭隧道提供一个稳定的公网IP,就是在国内能直接用**的流量/带宽捉急,你的**上传带宽大概率比你自家上传低;

你想要的这种直连模式就是tailscale/zerotier
回复

使用道具 举报

     
发表于 2024-8-27 09:35 | 显示全部楼层
高卢鸡 发表于 2024-8-26 23:06
上面很多大佬分享了方法,感谢。
提个问题,国内的家庭宽带基本不是固定ip,需要ddns或者云服务器搭隧道。
...

1只要有能入站的公网IP就行,一般来说IP只会在重拨号的时候变动,你设置系统5点钟重拨号那正常使用你不会有ddns解析问题;

2云服务器搭隧道提供一个稳定的公网IP,就是在国内能直接用服务器的流量/带宽捉急,你的服务器上传带宽大概率比你自家上传低;

你想要的这种直连模式就是tailscale/zerotier
回复

使用道具 举报

     
 楼主| 发表于 2024-8-27 11:50 来自手机 | 显示全部楼层
Saker_bobo 发表于 2024-8-27 09:34
1只要有能入站的公网IP就行,一般来说IP只会在重拨号的时候变动,你设置系统5点钟重拨号那正常使用你不会 ...

在挂bt、pt、em等,定时重新拨号不太好。
上面两位推荐的我去研究一下

—— 来自 鹅球 v3.1.88.3
回复

使用道具 举报

     
发表于 2024-8-27 11:56 | 显示全部楼层
高卢鸡 发表于 2024-8-27 11:50
在挂bt、pt、em等,定时重新拨号不太好。
上面两位推荐的我去研究一下

···你自己不重拨运营商也是定时踢你下线的让你重播换IP的
回复

使用道具 举报

     
发表于 2024-8-28 00:45 | 显示全部楼层
高卢鸡 发表于 2024-8-27 11:50
在挂bt、pt、em等,定时重新拨号不太好。
上面两位推荐的我去研究一下

聊NAT穿透和tailscale 那就必须分享这篇NAT雄文:

NAT 穿透是如何工作的:技术原理及企业级实践

非常清晰易懂, 看完一步到位
回复

使用道具 举报

     
发表于 2024-8-28 09:38 来自手机 | 显示全部楼层
高卢鸡 发表于 2024-8-26 23:06
上面很多大佬分享了方法,感谢。
提个问题,国内的家庭宽带基本不是固定ip,需要ddns或者云服务器搭隧道。
...

你这不就是要异地组网?那直接tailscale就完了,很方便
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-11-8 22:35 , Processed in 0.073684 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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