请问这里发行的版本是否可以直接用在openwrt上?
eroica-zhao opened this issue · comments
我直接将命令复制到了op里面,配合socks5客户端使用,但一直无法成功,不知道是什么原因。
执行 hs5t CONFIG_FILE,得到如下输出,不知道是否正常?
之所以这么问是看到您还有一个库是专门针对openwrt的版本,不过似乎很久没更新。
[2023-04-29 15:20:13] [E] 0x7f4c3ceb5e00 socks5 client read response
[2023-04-29 15:20:13] [E] 0x7f4c3ceb5e00 socks5 session handshake
[2023-04-29 15:20:13] [E] 0x7f4c3cece6b0 socks5 client read response
[2023-04-29 15:20:13] [E] 0x7f4c3cece6b0 socks5 session handshake
[2023-04-29 15:20:13] [E] 0x7f4c3ceb5c20 socks5 client read response
[2023-04-29 15:20:13] [E] 0x7f4c3ceb5c20 socks5 session handshake
[2023-04-29 15:20:13] [E] 0x7f4c3cece750 socks5 client read response
[2023-04-29 15:20:13] [E] 0x7f4c3cece750 socks5 session handshake
单独使用socks5客户端,经测试是可用的。
op上使用nftables,防火墙规则用其他代理redir没问题,不太熟tproxy规则,不过也是参照了您的教程和网上的教程,感觉是对的。
尝试过这里的多个版本,都不成功,盼指教。
hs5t的配置文件贴出来看看
# Main configuration for hev-socks5-tproxy
socks5:
# Socks5 server port
port: 10801
# Socks5 server address
address: 127.0.0.1
# Socks5 UDP relay mode (tcp|udp)
#udp: 'tcp'
# Socks5 server username
#username: 'username'
# Socks5 server password
#password: 'password'
tcp:
# TCP port
port: 12345
# TCP address
address: '0.0.0.0'
#udp:
# # UDP port
# port: 1088
# # UDP address
# address: '::'
#
## Redirect DNS to local server on gateway
## [address]:port <-> [upstream]:53 (dnsmasq)
#dns:
# # DNS port
# port: 1053
# # DNS address
# address: '::'
# # DNS upstream
# upstream: 127.0.0.1
#misc:
# task stack size (bytes)
# task-stack-size: 8192
# udp recv buffer size (bytes)
# udp-recv-buffer-size: 1048576
# connect timeout (ms)
# connect-timeout: 5000
# read-write timeout (ms)
# read-write-timeout: 60000
# stdout, stderr or file-path
log-file: stdout
# debug, info, warn or error
log-level: info
# If present, run as a daemon with this pid file
# pid-file: /run/hev-socks5-tproxy.pid
# If present, set rlimit nofile; else use default value
# limit-nofile: 65535
试试改下udp模式:
socks5:
udp: 'udp'
还是不行。。。
输出和上面贴的一样,不知道是什么意思?是成功和客户端连接上了吗?
还有就是hs5t版本,否需要专门针对op的版本?
请问mangle表下面这样设置规则对吗?
同时还运行着针对tcp的redir规则。
chain output {
type route hook output priority mangle;policy accept;
ip daddr @rsvips return
ip daddr @cnips return
meta l4proto { tcp, udp } mark set 1
}
chain prerouting {
type filter hook prerouting priority mangle; policy accept;
ip daddr @rsvips return
ip daddr @cnips return
meta l4proto { tcp, udp } counter tproxy to :12345 mark set 1 nftrace set 1
}
输出和上面贴的一样,不知道是什么意思?是成功和客户端连接上了吗?
读取socks5服务端的响应失败。
还有就是hs5t版本,否需要专门针对op的版本?
openwrt是可用的。
请问mangle表下面这样设置规则对吗?
看上去没有问题。
同时还运行着针对tcp的redir规则。
要看命中优先级,不确定是否影响。
可能是与socks5服务端适配问题,上面的信息看不出问题原因,可以抓包再看看。
谢谢答复。
我把nat表的redir相关规则注释掉,只剩mangle表之后,启动后的输出只有这个了,没有了滚动输出。
[2023-04-29 15:55:08] [E] socks5 tproxy udp addr
[2023-04-29 15:55:08] [E] socks5 tproxy udp addr
这里说的socks5服务器,就是配置文件里面的这个部分对吧?不是远端vps的server吧?
socks5:
# Socks5 server port
port: 10801
# Socks5 server address
address: 127.0.0.1
抓包只会tcpdump,具体需要看哪个端口?12345还是10801?
只关注与直接提供socks5服务的握手,不知道你的环境中socks5服务器是部署在远端vps上。抓包只要10801端口就行。
谢谢,我抓包看看。
嗯,我的环境是op上安装了某个socks5的客户端,远端vps上安装这个socks5的服务器端。
理想状态是这个op的socks5客户端直接支持redir,但作者目前不考虑添加,只能借助第三方软件实现。
另外突然发现启动hs5t后的输出时间有问题,和op的系统时间不一致。。
这个socks5软件好像提到client-server时间同步的问题,不知道这个有没有关系。。。
只能逐个排错。。。
另外提一句,之前用您老版本的时候,启动之后好像很快就会消耗大量资源,导致系统停止响应,top命令查看出现很多dnsmasq的进程,一直无法使用。最近2.4之后好像没有这个问题。
好,你再看看吧,多数是与socks5服务端的兼容问题,很可能是socks5服务端不支持udp吧?
消耗资源的问题猜测可能与之前没有在程序中默认配置较高的ulimit open files有关,我自用是在systemd.service文件中配置的65535,直接运行的话很可能只有1024,连接稍微多一点就很容易达到限制,触发异常。
输出的时间很是奇怪,为什么会跟系统时间不一致呢?
另外,的确,远端vps和op客户端都设置为tcp,因为国内运营商的qos因素,并没有启用udp。
这个会有影响吗?我应该怎么调整设置?
#udp: 'tcp'
这句命令注释掉的话,默认使用哪种模式?
输出不滚动又代表什么呢?没有活跃连接的意思?
时间差异可能是不同程序显示不同时区的导致的,应该不是当前问题的原因。
如果需要代理udp(包括dns,而不采用hs5t的dns配置),则需要socks5服务端支持udp代理,否则nftables里tproxy应该只配置tcp协议。
不显示指定 socks5.udp,默认是 tcp。
当默认的 log-level 下,没有输出,不好判断原因,可能是没有访问进入,也可能有访问但没有错误。
其实我不需要代理udp,dns采用了dnscrypt proxy2。
op端使用别的代理软件时,也只需要转发tcp流量。您可以看到我的hs5t配置文件里面没有udp的设置。
但是您的教程里面只提到了使用tproxy规则,然后我对nftables(包括iptables)不熟悉,只能依葫芦画瓢。
如果不需要代理udp,是不是其实不需要mangle表和tproxy规则?
换句话说,hs5t支持redir吗?还是只能用tproxy?
试试这样吧:
chain output {
type route hook output priority mangle;policy accept;
ip daddr @rsvips return
ip daddr @cnips return
meta l4proto tcp mark set 1
}
chain prerouting {
type filter hook prerouting priority mangle; policy accept;
ip daddr @rsvips return
ip daddr @cnips return
meta l4proto tcp counter tproxy to :12345 mark set 1 nftrace set 1
}
您上面的修改没有起作用,依旧无法建立连接。
即使配置文件注释掉#udp: 'tcp',输出内容还是出现udp
[E] socks5 tproxy udp addr
不知道是什么意思?这里的tproxy,是否也意味着hs5t只支持tproxy,而不支持redirect?
另外我注释掉mangle表的全部规则,只启用nat表和redir规则的情况下,tcpdump抓包10801端口得到很多类似的滚动信息,不知道您有什么发现吗?
01:01:49.051684 lo In IP localhost.33820 > localhost.10801: Flags [.], ack 3, win 512, options [nop,nop,TS val 3911558156 ecr 3911558156], length 0
01:01:49.052223 lo In IP localhost.33826 > localhost.10801: Flags [S], seq 2519653046, win 65495, options [mss 65495,sackOK,TS val 3911558157 ecr 0,nop,wscale 7], length 0
01:01:49.052256 lo In IP localhost.10801 > localhost.33826: Flags [S.], seq 1994803421, ack 2519653047, win 65483, options [mss 65495,sackOK,TS val 3911558157 ecr 3911558157,nop,wscale 7], length 0
01:01:49.052288 lo In IP localhost.33826 > localhost.10801: Flags [.], ack 1, win 512, options [nop,nop,TS val 3911558157 ecr 3911558157], length 0
01:01:49.052348 lo In IP localhost.33826 > localhost.10801: Flags [P.], seq 1:14, ack 1, win 512, options [nop,nop,TS val 3911558157 ecr 3911558157], length 13
01:01:49.052365 lo In IP localhost.10801 > localhost.33826: Flags [.], ack 14, win 512, options [nop,nop,TS val 3911558157 ecr 3911558157], length 0
01:01:49.192052 lo In IP localhost.10801 > localhost.33826: Flags [P.], seq 1:3, ack 14, win 512, options [nop,nop,TS val 3911558297 ecr 3911558157], length 2
01:01:49.192076 lo In IP localhost.33826 > localhost.10801: Flags [.], ack 3, win 512, options [nop,nop,TS val 3911558297 ecr 3911558297], length 0
01:01:49.257715 lo In IP localhost.10801 > localhost.54944: Flags [.], ack 14, win 512, options [nop,nop,TS val 3911558362 ecr 3911543002], length 0
01:01:49.257690 lo In IP localhost.10801 > localhost.59132: Flags [.], ack 14, win 512, options [nop,nop,TS val 3911558362 ecr 3911543243], length 0
hs5t 应该只支持 tproxy 方式
hs5t 应该只支持 tproxy 方式
谢谢,大概明白了,我再试试看。