semigodking / redsocks

transparent redirector of any TCP/UDP connection to proxy
Apache License 2.0
1.14k stars 246 forks source link

无法使用TPROXY的UDP代理,是我的iptables问题吗? #202

Open qq71680264 opened 1 week ago

qq71680264 commented 1 week ago

我想使用Redsocks2+iptables使我的VPS达到透明代理的效果。 socks5代理商确认说其提供的socks5是支持UDP协议的,但我始终无法使用,但又不知道问题出自哪里,当我仅仅让TCP部分的iptables规则生效时,是没有问题的,我使用指令”curl --ipv4 ifconfig.me“,返回的结果确实是socks5服务的IP。但当我加上UDP部分的iptables规则后,使用指令”curl --ipv4 ifconfig.me“,返回结果就需要10几秒,非常非常慢。基本上无法正常访问其他网站。 本人是搞嵌入式的,仅有一点点linux基础,对网络这方面是小白,想请教大佬们,帮我看看是什么问题。 以下是我的redsocks.conf配置文件内容以及iptables的规则:

base {
    log_debug = off;
    log_info = on;
    log = stderr;
    daemon = off;
    redirector = iptables;
    reuseport = off;
}

redsocks {
    bind = "127.0.0.1:12345";
    relay = "209.250.xxx.xxx:8085";
    type = socks5;
    autoproxy = 0;
    timeout = 10;
    login = "jumZD3GtxCG1";
    password = "Jg7bGWWsxFi0";
}

redudp {
    bind = "127.0.0.1:10053";
    relay = "209.250.xxx.xxx:8085";
    login = "jumZD3GtxCG1";
    password = "Jg7bGWWsxFi0";
    type = socks5;
    udp_timeout = 30;
}
iptables -t nat -N REDSOCKS  
iptables -t nat -A REDSOCKS -d 209.250.xxx.xxx -j RETURN  
iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN  
iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN  
iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN  
iptables -t nat -A REDSOCKS -d 100.64.0.0/10 -j RETURN  
iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN  
iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN  
iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN  
iptables -t nat -A REDSOCKS -d 198.18.0.0/15 -j RETURN  
iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN  
iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN  
iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 12345
iptables -t nat -A OUTPUT -p tcp -j REDSOCKS  

ip route add local 0.0.0.0/0 dev lo table 100
ip rule add fwmark 1 table 100
iptables -t mangle -N SSUDP
iptables -t mangle -A SSUDP -d 0.0.0.0/8 -j RETURN
iptables -t mangle -A SSUDP -d 10.0.0.0/8 -j RETURN
iptables -t mangle -A SSUDP -d 127.0.0.0/8 -j RETURN
iptables -t mangle -A SSUDP -d 169.254.0.0/16 -j RETURN
iptables -t mangle -A SSUDP -d 172.16.0.0/12 -j RETURN
iptables -t mangle -A SSUDP -d 192.168.0.0/16 -j RETURN
iptables -t mangle -A SSUDP -d 224.0.0.0/4 -j RETURN
iptables -t mangle -A SSUDP -d 240.0.0.0/4 -j RETURN
iptables -t mangle -A SSUDP -p udp -j TPROXY --on-port 10053 --tproxy-mark 0x01/0x01
iptables -t mangle -A PREROUTING -p udp -j SSUDP
semigodking commented 6 days ago

我记得TPROXY 是不能处理本机OUTPUT 流量的。你UDP是通过TPROXY 来的,所以不行

On Sat, Jun 29, 2024, 11:05 Elecrow_Jano @.***> wrote:

我想使用Redsocks2+iptables使我的VPS达到透明代理的效果。 socks5代理商确认说其提供的socks5是支持UDP协议的,但我始终无法使用,但又不知道问题出自哪里,当我仅仅让TCP部分的iptables规则生效时,是没有问题的,我使用指令”curl --ipv4 ifconfig.me“,返回的结果确实是socks5服务的IP。但当我加上UDP部分的iptables规则后,使用指令”curl --ipv4 ifconfig.me“,返回结果就需要10几秒,非常非常慢。基本上无法正常访问其他网站。 本人是搞嵌入式的,仅有一点点linux基础,对网络这方面是小白,想请教大佬们,帮我看看是什么问题。 以下是我的redsocks.conf配置文件内容以及iptables的规则: ` base { log_debug = off; log_info = on; log = stderr; daemon = off; redirector = iptables; reuseport = off; }

redsocks { bind = "127.0.0.1:12345"; relay = "209.250.xxx.xxx:8085"; type = socks5; autoproxy = 0; timeout = 10; login = "jumZD3GtxCG1"; password = "Jg7bGWWsxFi0"; }

redudp { bind = "127.0.0.1:10053"; relay = "209.250.xxx.xxx:8085"; login = "jumZD3GtxCG1"; password = "Jg7bGWWsxFi0"; type = socks5; udp_timeout = 30; } `

`iptables -t nat -N REDSOCKS iptables -t nat -A REDSOCKS -d 209.250.xxx.xxx -j RETURN iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN iptables -t nat -A REDSOCKS -d 100.64.0.0/10 -j RETURN iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN iptables -t nat -A REDSOCKS -d 198.18.0.0/15 -j RETURN iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 12345 iptables -t nat -A OUTPUT -p tcp -j REDSOCKS

ip route add local 0.0.0.0/0 dev lo table 100 ip rule add fwmark 1 table 100 iptables -t mangle -N SSUDP iptables -t mangle -A SSUDP -d 0.0.0.0/8 -j RETURN iptables -t mangle -A SSUDP -d 10.0.0.0/8 -j RETURN iptables -t mangle -A SSUDP -d 127.0.0.0/8 -j RETURN iptables -t mangle -A SSUDP -d 169.254.0.0/16 -j RETURN iptables -t mangle -A SSUDP -d 172.16.0.0/12 -j RETURN iptables -t mangle -A SSUDP -d 192.168.0.0/16 -j RETURN iptables -t mangle -A SSUDP -d 224.0.0.0/4 -j RETURN iptables -t mangle -A SSUDP -d 240.0.0.0/4 -j RETURN iptables -t mangle -A SSUDP -p udp -j TPROXY --on-port 10053 --tproxy-mark 0x01/0x01 iptables -t mangle -A PREROUTING -p udp -j SSUDP`

— Reply to this email directly, view it on GitHub https://github.com/semigodking/redsocks/issues/202, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAP2XD3Z66SKQUWMGLMD4PDZJYP6XAVCNFSM6AAAAABKCZ64OCVHI2DSMVQWIX3LMV43ASLTON2WKOZSGM4DCNBSGU3TINQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>