在开启clash的服务器上,无法打洞
Closed this issue · 7 comments
./natmap -i eno1 -s stunserver.stunprotocol.org -h qq.com -t 192.168.31.3 -p 8096
[E] hev_sock_client_tcp src/hev-sock.c:173 Operation in progress
[E] tnsk_run src/hev-tnsk.c:105 Start TCP keep-alive service failed.
关闭clash后可以打洞
如何让这两者共存呢?
这应该是需要让防火墙或策略路由中的Clash规则排除掉NATMap要访问的STUN和HTTP服务器地址。
我将会给NATMap增加一个参数用于指定fwmark
,以便于在防火墙和策略路由中对NATMap发出的报文进行匹配。
FwMark: https://github.com/heiher/natmap/releases/tag/20240519-next
可以通过-f <mark>
参数指定fwmark,fwmark会作用于STUN/HTTP的对外访问。如果系统环境配置了策略路由或基于防火墙的透明代理,可在较早阶段通过匹配fwmark
跳出。比如:
natmap -s stunserver.stunprotocol.org -h qq.com -f 0x123
# IPTables
iptables -t mangle -I OUTPUT -m mark --mark 0x123 -j RETURN
# Policy-routing
ip rule add fwmark 0x123 table main pref 1
@heiher
-f
参数值不带 0x,却是16进制,并且usage中也没有说明,是否不太好?建议在 usage 中说明,并在文档中都加上 0x。
确实不太好。现在改成了接受多种进制数的fwmark
值,并在usage中举例说明:
- hex: 0x1
- dec: 1
- oct: 01
感谢建议~
建议 strtoul()
的 base 使用 0
就好了,和 iptables 一致
建议
strtoul()
的 base 使用0
就好了,和 iptables 一致
谢谢,已经改成这样了哈
在clash里把打洞服务器地址去除 或者把地址设置成直连