FRP 官方文档:https://gofrp.org/docs/reference/
image-20220113093020867.png

问题描述

常规情况下:将B主机做为代理跳板到C主机网络的时候需要多做一次端口映射,将B主机端口映射外网,而且要访问B主机和D主机的时候需要切换代理端口。

B C 可互相访问,C D 可互相访问,但 B 无法直接访问 D

解决方式

通过B主机获取C主机权限,然后通过C主机代理访问D主机网络(C,D 主机都不出网),而且D主机只允许C主机访问,最终通过VPS一次性多级代理同时访问 192.168.10. 和 192.168.2. 段。(代理链)

VPS 配置


VPS 启动 frps:

  1. frps -c frps.ini

frps.ini 配置如下:

  1. [common]
  2. bind_port = 443
  3. token = 11111111
  4. max_pool_count = 10
  5. dashboard_addr = 0.0.0.0
  6. dashboard_port = 7500
  7. dashboard_user = admin
  8. dashboard_pwd = admin

B主机


B主机连接 VPS:

  1. frpc.exe -c frpc.ini

frpc.ini 配置如下:

  1. [common]
  2. tls_enable = true
  3. server_addr = VPS-IP
  4. server_port = 443
  5. token = 11111111
  6. [B主机]
  7. type = tcp
  8. remote_port = 10888
  9. plugin = socks5
  10. plugin_user = frp
  11. plugin_passwd = frp
  12. use_encryption = true
  13. use_compression = true

同时B主机配置一个 frps 服务端给 C 主机连接,frps.ini 配置如下:

  1. [common]
  2. bind_port = 9999
  3. # B主机通过C主机的IP段
  4. bind_host = 192.168.10.1

C主机


C 主机连接 B 主机 代理,frpc.ini 配置如下:

  1. [common]
  2. server_addr = 192.168.10.1
  3. server_port = 9999
  4. [c主机]
  5. type = tcp
  6. remote_port = 8888
  7. plugin = socks5

remote_port: 用户访问此端口的请求会被转发到 192.168.10.1:8888

Proxifier 设置代理链


设置 proxy servers 分别添加

  1. VPS: VPS-IP socks5: 10888
  2. B主机: 192.168.10.1 socks5: 8888

把相关代理添加到下方的代理链 (B主机 => C 主机 => D主机)
1.png

设置 Rules 路由:Action 选择相关代理链名称
image.png
通过连接VPS的代理,可以直接访问 192.168.10. _ (B, C 主机所在网段) 和 192.168.2. _段 (C, D 主机所在网段)
2.png