恩山无线论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 184|回复: 0

TPROXY进行UDP透明代理源地址没有转换的问题

[复制链接]
发表于 2020-11-28 17:30 | 显示全部楼层 |阅读模式
手机 192.168.1.100
K2P为二级路由 LAN 192.168.1.1/24 WAN 192.168.100.100/24
一级路由下的电脑  192.168.100.3/24

我有一个UDP透明代理的需求,通过百度  找到的以下内容 添加iptables规则和路由,根据iptables的流程看起来好像没啥问题,但是不知道是我系统(PandoraBox 19.02 2019-02-01-git-93f2639a7 / LuCI Master (git-19.026.77036-498ca21))还是规则没对,我在路由上运行的UDP代理程序,能监听到手机192.168.1.100:*发往WAN口同级的电脑192.168.100.3:80的UDP数据,并且在192.168.100.3:80也成功收到了数据,就是收到时显示原地址为手机的192.168.1.100:*  理想中正确的应该是路由NAT后192.168.100.100:*,我在电脑得到的源地址没有经过NAT转换  192.168.100.3无法向192.168.1.100回复数据,这个代理也就没啥用了。如果不添加下面的规则,电脑收到的数据,能正常显示NAT后的地址,和正常回复手机消息。求赐教

iptables -t mangle -N DIVERT #在nat表上新建名为DIVERT自定义链
iptables -t mangle -A PREROUTING -p udp -m socket --transparent -j DIVERT #已建立的socket且被tproxy标记过的数据包执行DIVERT
iptables -t mangle -A DIVERT -j MARK --set-xmark 0x10000000/0xf0000000 #进入DIVERT设置标记
iptables -t mangle -A DIVERT -j ACCEPT
iptables -t mangle -N MY_UDP
iptables -t mangle -p udp -A MY_UDP -j TPROXY --on-port 8081 --tproxy-mark 0x10000000/0xf0000000
#MY_UDP执行TPROXY转发为8081端口并进行标记
iptables -t mangle -A MY_UDP -j ACCEPT
iptables -t mangle -N MYMANGLE
iptables -t mangle -A PREROUTING -p udp -j MYMANGLE #MYMANGLE链加入到PREROUTING
iptables -t mangle -A MYMANGLE -p udp -m multiport --dports 80 -j MY_UDP #80端口的包执行MY_UDP
ip rule add fwmark 0x10000000/0xf0000000 table 200 pref 200 #对标记过的数据包执行序号为200的规则
ip route add local default dev lo table 200 #200规则:数据包发送到本地回环






我的恩山、我的无线 The best wifi forum is right here.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )|网站地图

GMT+8, 2021-1-20 12:09

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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