Skip to content

请教一个透明代理模式下TCP流量Bypass的问题 #804

@tardis-fang

Description

@tardis-fang

配置文件如下,使用的是透明代理模式,通过iptables把所有子网tcp流量转到10001端口,dns请求单独由其他服务(coredns)处理。
现在的问题是,mqtt的流量会从chain-0中的代理服务器绕路,bypass规则不生效。这里猜测原因是客户解析了mqtt服务域名进而用ip连接,所以bypass无法识别。
暂时的解决方案是把mqtt的ip写进bypass列表,但这看起来不够优雅,因为ip可能会变。

想问下有没有什么优雅的解决方案,或者强大的gost还有其他我遗漏未使用的功能可以满足这个需求?

services:
- name: service-0
  addr: :10001
  handler:
    type: red
    chain: chain-0
    metadata:
      sniffing: true
      sniffing.timeout: 5s
      tproxy: true
  listener:
    type: red
    metadata:
      tproxy: true
chains:
- name: chain-0
  hops:
  - name: hop-0
    bypass: bypass-0
    sockopts:
      mark: 100
    nodes:
    - name: node-0
      addr: 12.34.56.78:1080
      connector:
        type: socks5
        auth:
          username: user
          password: pass
      dialer:
        type: tcp
bypasses:
- name: bypass-0
  matchers:
  - 192.168.0.0/16
  - mqtt.myservice.com

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions