openwrt使用tproxy做透明代理的小问题
Janz Lv4

openwrt使用tproxy做透明代理的小问题

最近在使用openwrt-mihomo插件时遇到了一个问题,使用tun和rediect都可以做透明代理,但是tproxy模式局域网内的设备无法代理。

现象

  • 使用tun和rediect模式都可以透明代理局域网设备
  • tproxy无法代理局域网设备,可以代理路由器本身
  • 使用tproxy模式局域网可以利用socks5连接
  • 使用tproxy模式局域网设备无法联网,利用socks5代理可以联网

尝试

  • openwrt-mihomo插件使用的是firewall4防火墙,故删除了firewall3所有的规则
  • 删除了自带的dockerman
  • 删除了tailscaled
  • 更新到最新版
  • 更换shellcrash使用mihomo和singbox内核的tproxy模式
  • 等等

问题所在

经过和群里小伙伴的不懈努力,尝试了各种方案,最终尝试将旁路由的lan口名字由br-lan​改为etho​解决问题,可以正常代理tcp​和udp

修改network​配置文件

  1. 备份network​配置文件
    # cp /etc/config/network /etc/config/network.bak

  2. 删除device​块

    1
    2
    3
    4
    5
    # 这个块删除或注释掉
    config device
    option name 'br-lan'
    option type 'bridge'
    list ports 'eth0'
  3. 修改lan​块接口的配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    ## 只要改动 option device 'eth0'即可
    config interface 'lan'
    option device 'eth0'
    option proto 'static'
    option ipaddr '192.168.0.2'
    option netmask '255.255.255.0'
    option ip6assign '64'
    option gateway '192.168.0.1'
    list dns '192.168.0.1'
  4. 重启网络服务
    # /etc/init.d/network restart

后记

其实在使用openwrt-mihome和shellcrash都无法使用tproxy模式的时候就感觉和固件有关系,一直在修改防火墙,没想到问题出现在这里。没有看tproxy的启动脚本,难道说br-lan​的名字是无法拦截吗?

 评论
评论插件加载失败
正在加载评论插件
由 Hexo 驱动 & 主题 Keep