像 libbind 、proxychains 、部分 tsocks 这类基于 LD_PRELOAD 劫持 libc 的办法,不适合 golang 编写的程序
有比较便捷的解决方案吗?
1
lingling47 16 小时 43 分钟前
docker 端口映射
|
2
pc10201 OP @lingling47 是客户端程序,不是服务器端的
|
3
smallparking 15 小时 29 分钟前 via Android
有代码吗?让 ai 改一下呗
|
4
FabricPath 15 小时 2 分钟前
如果你知道你程序的远端 IP ,最简单的就是加路由表:
ip route add 你程序要访问的远端 IP via 你想让你程序用的接口的网关 dev 你想让你程序用的接口 src 你想让你程序用的接口的 IP 如果你内核版本足够高,比如 5.10 往上,那你让 AI 给你写一个 cgroup v2 的 ebpf hook ,去 hook 掉 sockops ,强制给你的进程 bind 到某个接口就行(也许可以,没试过) |
5
v2exgo 14 小时 55 分钟前
加路由表,然后 iptables 指定用户 走那个路由表,然后用那个用户 运行你的程序,即可
|
6
ovoo 14 小时 47 分钟前 via Android
namespace
|
7
chingyat 11 小时 13 分钟前
把接口移到一个 net namespace 里,然后在那个 namespace 里启动你的程序。
|
8
unused 10 小时 17 分钟前
简单点就 ip rule 走单独的路由表,规则就看 ip rule 支持的匹配条件,或者 iptables/nftables 打 mark
暴力点就 ptrace syscall 拦截,然后 pidfd_getfd 拿到 socket |
9
yanqiyu 8 小时 50 分钟前
1. 写几条规则路由,针对包的 tag 路由到不同网卡
2. 写一个 nft 规则,针对连接的不同 tag 给所有包打 tag ,并且对于某个 cgroups/uid 等等的所有 outbound 连接打连接 tag 。 3. 用 systemd-run/systemd.unit + NFTSet (系统服务)或者手动切换个用户执行相应的命令 |