[GH-ISSUE #1655] FRP支持多层内网穿透吗? #1309

Closed
opened 2026-05-05 12:50:01 -06:00 by gitea-mirror · 10 comments
Owner

Originally created by @skyroot on GitHub (Feb 15, 2020).
Original GitHub issue: https://github.com/fatedier/frp/issues/1655

Issue is only used for submiting bug report and documents typo. If there are same issues or answers can be found in documents, we will close it directly.
(为了节约时间,提高处理问题的效率,不按照格式填写的 issue 将会直接关闭。)
(请不要在 issue 评论中出现无意义的 加1我也是 等内容,将会被直接删除。)
(由于个人精力有限,和系统环境,网络环境等相关的求助问题请转至其他论坛或社交平台。)

Use the commands below to provide key information from your environment:
You do NOT have to include this information if this is a FEATURE REQUEST

What version of frp are you using (./frpc -v or ./frps -v)?

What operating system and processor architecture are you using (go env)?

Configures you used:

Steps to reproduce the issue:
1.
2.
3.

Describe the results you received:

Describe the results you expected:

Additional information you deem important (e.g. issue happens only occasionally):

Can you point out what caused this issue (optional)

Originally created by @skyroot on GitHub (Feb 15, 2020). Original GitHub issue: https://github.com/fatedier/frp/issues/1655 Issue is only used for submiting bug report and documents typo. If there are same issues or answers can be found in documents, we will close it directly. (为了节约时间,提高处理问题的效率,不按照格式填写的 issue 将会直接关闭。) (请不要在 issue 评论中出现无意义的 **加1**,**我也是** 等内容,将会被直接删除。) (由于个人精力有限,和系统环境,网络环境等相关的求助问题请转至其他论坛或社交平台。) Use the commands below to provide key information from your environment: You do NOT have to include this information if this is a FEATURE REQUEST **What version of frp are you using (./frpc -v or ./frps -v)?** **What operating system and processor architecture are you using (`go env`)?** **Configures you used:** **Steps to reproduce the issue:** 1. 2. 3. **Describe the results you received:** **Describe the results you expected:** **Additional information you deem important (e.g. issue happens only occasionally):** **Can you point out what caused this issue (optional)**
Author
Owner

@xqzr commented on GitHub (Feb 15, 2020):

无视内网数量的多少,客户端(frpc)能访问外网就可以

<!-- gh-comment-id:586575455 --> @xqzr commented on GitHub (Feb 15, 2020): 无视内网数量的多少,客户端(frpc)能访问外网就可以
Author
Owner

@Fisherworks commented on GitHub (Feb 15, 2020):

如果不支持多层,岂不是跟iptables没多大区别了
说是穿透,不就是多少层无所谓么

<!-- gh-comment-id:586577246 --> @Fisherworks commented on GitHub (Feb 15, 2020): 如果不支持多层,岂不是跟iptables没多大区别了 说是穿透,不就是多少层无所谓么
Author
Owner

@xqzr commented on GitHub (Feb 15, 2020):

如果不支持多层,岂不是跟iptables没多大区别了
说是穿透,不就是多少层无所谓么

frp穿透是用服务端中转数据

<!-- gh-comment-id:586577756 --> @xqzr commented on GitHub (Feb 15, 2020): > 如果不支持多层,岂不是跟iptables没多大区别了 > 说是穿透,不就是多少层无所谓么 frp穿透是用服务端中转数据
Author
Owner

@fatedier commented on GitHub (Feb 15, 2020):

无视内网数量的多少,客户端(frpc)能访问外网就可以

差不多这样,需要在内网有一个能访问外网的机器,不管是自己可以直连,还是通过代理连接。

<!-- gh-comment-id:586597414 --> @fatedier commented on GitHub (Feb 15, 2020): > 无视内网数量的多少,客户端(frpc)能访问外网就可以 差不多这样,需要在内网有一个能访问外网的机器,不管是自己可以直连,还是通过代理连接。
Author
Owner

@skyroot commented on GitHub (Feb 17, 2020):

不好意思,我可能没表达清楚问题,我是指在一个有多层的内网环境下,只有最外层(第一层主机)可以访问公网,里面的每一层都只能访问相邻的一层主机,那么先在公网vps上起frps,第一层主机起frpc,这样公网上可以访问到第二层主机了,那么怎么样实现访问第三层主机或第四层主机呢?

<!-- gh-comment-id:586780049 --> @skyroot commented on GitHub (Feb 17, 2020): 不好意思,我可能没表达清楚问题,我是指在一个有多层的内网环境下,只有最外层(第一层主机)可以访问公网,里面的每一层都只能访问相邻的一层主机,那么先在公网vps上起frps,第一层主机起frpc,这样公网上可以访问到第二层主机了,那么怎么样实现访问第三层主机或第四层主机呢?
Author
Owner

@fatedier commented on GitHub (Feb 17, 2020):

frpc 可以反代任何自身机器可以访问到的地址,不管你的网络拓扑如何。

<!-- gh-comment-id:586824980 --> @fatedier commented on GitHub (Feb 17, 2020): frpc 可以反代任何自身机器可以访问到的地址,不管你的网络拓扑如何。
Author
Owner

@skyroot commented on GitHub (Feb 18, 2020):

frpc 可以反代任何自身机器可以访问到的地址,不管你的网络拓扑如何。

你可能还是没有明白我的问题,我说的多层网络不是指最里面的可以访问到外网,而是只能访问到相邻的网络,除了最外层可以访问到公网,最外层主机上frpc反连到公网vps上的frps,这样公网可以访问到倒数第二层的主机,但是如何能够访问到倒数第三层的主机或者更加里面的主机呢呢?

<!-- gh-comment-id:587468897 --> @skyroot commented on GitHub (Feb 18, 2020): > frpc 可以反代任何自身机器可以访问到的地址,不管你的网络拓扑如何。 你可能还是没有明白我的问题,我说的多层网络不是指最里面的可以访问到外网,而是只能访问到相邻的网络,除了最外层可以访问到公网,最外层主机上frpc反连到公网vps上的frps,这样公网可以访问到倒数第二层的主机,但是如何能够访问到倒数第三层的主机或者更加里面的主机呢呢?
Author
Owner

@Fisherworks commented on GitHub (Feb 18, 2020):

frpc 可以反代任何自身机器可以访问到的地址,不管你的网络拓扑如何。

你可能还是没有明白我的问题,我说的多层网络不是指最里面的可以访问到外网,而是只能访问到相邻的网络,除了最外层可以访问到公网,最外层主机上frpc反连到公网vps上的frps,这样公网可以访问到倒数第二层的主机,但是如何能够访问到倒数第三层的主机或者更加里面的主机呢呢?

感觉repo主已经说清楚了吧,如果你的倒数第三层主机访问不到外网,那么外网也不可能访问到它,这是物理限制了,与这个项目无关了吧?
如果非通不可,在第二层 - 第三层之间再加一套FRP呗,当然如果只有一层,可能iptables也能解决问题,不过FRP配置比较简单直观

<!-- gh-comment-id:587479890 --> @Fisherworks commented on GitHub (Feb 18, 2020): > > frpc 可以反代任何自身机器可以访问到的地址,不管你的网络拓扑如何。 > > 你可能还是没有明白我的问题,我说的多层网络不是指最里面的可以访问到外网,而是只能访问到相邻的网络,除了最外层可以访问到公网,最外层主机上frpc反连到公网vps上的frps,这样公网可以访问到倒数第二层的主机,但是如何能够访问到倒数第三层的主机或者更加里面的主机呢呢? 感觉repo主已经说清楚了吧,如果你的倒数第三层主机访问不到外网,那么外网也不可能访问到它,这是物理限制了,与这个项目无关了吧? 如果非通不可,在第二层 - 第三层之间再加一套FRP呗,当然如果只有一层,可能iptables也能解决问题,不过FRP配置比较简单直观
Author
Owner

@Fisherworks commented on GitHub (Feb 18, 2020):

frpc 可以反代任何自身机器可以访问到的地址,不管你的网络拓扑如何。

你可能还是没有明白我的问题,我说的多层网络不是指最里面的可以访问到外网,而是只能访问到相邻的网络,除了最外层可以访问到公网,最外层主机上frpc反连到公网vps上的frps,这样公网可以访问到倒数第二层的主机,但是如何能够访问到倒数第三层的主机或者更加里面的主机呢呢?

假设你的倒数二层网络中,有个路由器router
然后这个router特殊设置一下(比如加上合理的静态路由),允许wan地址访问lan地址
这样倒数2层网络就能直接连接倒数三层网络了,那么倒数2层网络上的frpc就能把倒3的某个IP直接代理到vps上,而倒3依然不能访问公网
这样总可以了吧?

<!-- gh-comment-id:587481301 --> @Fisherworks commented on GitHub (Feb 18, 2020): > > frpc 可以反代任何自身机器可以访问到的地址,不管你的网络拓扑如何。 > > 你可能还是没有明白我的问题,我说的多层网络不是指最里面的可以访问到外网,而是只能访问到相邻的网络,除了最外层可以访问到公网,最外层主机上frpc反连到公网vps上的frps,这样公网可以访问到倒数第二层的主机,但是如何能够访问到倒数第三层的主机或者更加里面的主机呢呢? 假设你的倒数二层网络中,有个路由器router 然后这个router特殊设置一下(比如加上合理的静态路由),允许wan地址访问lan地址 这样倒数2层网络就能直接连接倒数三层网络了,那么倒数2层网络上的frpc就能把倒3的某个IP直接代理到vps上,而倒3依然不能访问公网 这样总可以了吧?
Author
Owner

@fatedier commented on GitHub (Feb 19, 2020):

@skyroot frp 是在四层做转发,如果你的四层网络不通,那么就需要借助一些其他方法结合起来。

比如在各层网络之间增加代理,通过代理连接到其他层。

<!-- gh-comment-id:588009571 --> @fatedier commented on GitHub (Feb 19, 2020): @skyroot frp 是在四层做转发,如果你的四层网络不通,那么就需要借助一些其他方法结合起来。 比如在各层网络之间增加代理,通过代理连接到其他层。
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/frp#1309
No description provided.