zfl9 / ipt2socks

将 iptables/nftables 传入的透明代理流量转为 socks5 流量的实用工具

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

已用libev重写完毕,欢迎测试,个人测试暂未发现问题

iusearch opened this issue · comments

commented

配合ss-tproxy使用时,不定时退出,估计是崩了,有coredump记录,我加debug符号再等一个看看

commented

coredump.tar.gz
带符号的二进制和coredump

commented

这个问题其实早有反馈。正在打算重构。

commented

@yiguihai

等作者重构吧,我现在是脚本监控卡死或者crash就自动重启。三天能重启600多次。。。
不过基本能用

commented

我早换了redsocks2,也挺好用

commented

@yiguihai
等作者重构吧,我现在是脚本监控卡死或者crash就自动重启。三天能重启600多次。。。
不过基本能用

我的最短一次是7分钟掉进程,其它的都是十几二十分钟才掉。强迫症的我很喜欢这个简单高效的程序,因为不用多配置nat表的规则了。但是现在的bug根本没法用,我只想用在K3上面。你知道怎么让脚本开机后持续运行吗?如果没有找到解决办法只能用会redsocks了

用一个shell脚本包装一下,如:

#!/bin/bash
while true; do
    ipt2socks -s 127.0.0.1 -p 1080
done

然后开启自启这个脚本。

实在不行就用redsocks2吧,主要是我也没什么时间搞,也就周末一两天而已。

commented

刚编译好 merlin 二进制的我看到这个 issuse 有点崩。。。

commented

刚编译好 merlin 二进制的我看到这个 issuse 有点崩。。。

rip. 路由器不是透明代理有其他方案么

commented

替代品很多,redsocks/redsocks2.

commented

最近确实没时间搞。

commented

最近确实没时间搞。

我很喜欢作者做这个东东的初衷,KISS

所以昨天晚上花了点时间,把这个工程用 go 重写了(又造轮子了), 代码不多,可能不超过500行,在我的 arch 跑了一晚上还好,不保证没BUG,周末准备放我的 merlin 上跑跑

https://github.com/lcdbin/ip2socks-go

最近确实没时间搞。

我很喜欢作者做这个东东的初衷,KISS

所以昨天晚上花了点时间,把这个工程用 go 重写了(又造轮子了), 代码不多,可能不超过500行,在我的 arch 跑了一晚上还好,不保证没BUG,周末准备放我的 merlin 上跑跑

https://github.com/lcdbin/ip2socks-go

连go版本都来了…… @zfl9 情何以堪,赶紧努力,哈哈。

其实我那天也是憋这个bug好久,redsocks2 的udp代理只支持ss的,而我不是用的ss。最后自己fork一下,赶鸭子上架,打了一个小补丁,算是可以用了:
https://github.com/yuchting/ipt2socks

commented

身不由己,实在没时间写。libev版本写了一半,已经搁浅了半个多月了。

commented

有时间我再把 go version 完善下, 加上 over tls 特性吧
至于加 redir 到一起估计代码会被要求干掉了

如果是用openwrt的话,在服务脚本加上无限重启就可以。

参考 https://openwrt.org/docs/guide-developer/procd-init-scripts

vi /etc/init.d/ipt2socks

start_ipt2socks() {
	local enable
	config_get_bool enable $1 enable
	[ "$enable" = 1 ] || return 0

	procd_open_instance
-	procd_set_param respawn
+	procd_set_param respawn 3600 5 0
	procd_set_param stderr 1
	procd_set_param nice -5
	procd_set_param limits nofile="65535 65535"
	procd_set_param command /usr/bin/ipt2socks
	append_param $1 server_addr "-s"
	append_param $1 server_port "-p"
	append_param $1 auth_username "-a"
	append_param $1 auth_password "-k"
	append_param $1 listen_addr4 "-b"
	append_param $1 listen_addr6 "-B"
	append_param $1 listen_port "-l"
	append_param_if_neq $1 thread_nums "-j" "1"
	append_param_if_neq $1 nofile_limit "-n" "65535"
	append_param_if_neq $1 udp_timeout "-o" "300"
	append_param_if_neq $1 cache_size "-c" "256"
	append_param_if_neq $1 buffer_size "-f" "8192"
	append_bool $1 graceful "-G"
	append_bool $1 redirect "-R"
	append_bool $1 tcp_only "-T"
	append_bool $1 udp_only "-U"
	append_bool $1 ipv4_only "-4"
	append_bool $1 ipv6_only "-6"
	procd_close_instance
}

发现一个新问题,过一段时间后(大概24h),ipt2socks进程会跑满单线程的cpu。平台是小米路由器3g,mt7621,目前只能通过重启解决。

commented

终于写完了。欢迎各位进行测试。我明两天有时间再自己也测下。自己也在rpi3b上跑了TCP代理,目前还没遇到什么问题。UDP后面在测试。UDP今天也测试了,没啥毛病,Nat Type 也是 A。

commented

大概都跑了一下,挺正常,所以这个issue先关了。