V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  gleport  ›  全部回复第 2 页 / 共 3 页
回复总数  56
1  2  3  
2018-08-04 12:08:19 +08:00
回复了 gleport 创建的主题 分享创造 一种把指定程序的 TCP 流量重定向到代理的方法
@lemonda 如果是 PHP 未运行前,可以通过 graftcp 启动一个 Shell, 如: `graftcp bash`,然后在这个新 Shell 内启动 PHP。
如果是已经运行的 PHP,那么 graftcp 目前没有实现对正在运行的进程 attach 进行跟踪。
Linux 里 ptrace 可以跟踪一个没有血缘关系的运行时进程,但需要以 root 权限修改默认的 /proc/sys/kernel/yama/ptrace_scope 值为 0:

sudo su
echo "0" > /proc/sys/kernel/yama/ptrace_scope

需要这个功能的话,可以提一个 issue,我有时间实现一下,有人能 PR 就更好了~
2018-08-04 10:34:30 +08:00
回复了 gleport 创建的主题 分享创造 一种把指定程序的 TCP 流量重定向到代理的方法
@codehz 这里没看明白,是用 Unix domain socket 代替处理 TCP connect 的监听服务吗?
前面应该是我没有说清楚开端口的原因:因为不能通过修改 write buffer 往里面加入更多的数据(否则我们可以直接把 connect 重定向到 proxy, 每次 write/send 之前改写里面的 buffer, 把发送数据转换为 SOCKS5 协议的数据就可以了,不需要连接到现在 graftcp-local 这个中转处理数据的这一步。我之前踩了这个坑:),以为可以通过共享内存的方式为被跟踪的 app 新增一片更大的可读写内存,查了 execve 的手册才知道所有的共享内存在 execve 之前都被解除了),所以需要有一个 TCP server 来处理 app 的 connect 请求,这就是 graftcp-local
开了 2233 这个端口监听的原因。

正如 @1423 提到,graftcp-local 这部分的功能可以合并进 graftcp,如果这样实现的话,为了避免同时运行多个 graftcp 出现端口冲突的情况,每个 graftcp 监听的端口得不相同。这种做法带来的好处很明显,不需要 graftcp-local 了。后期有时间的话,我可能会把 graftcp-local 这部分的功能合并进 graftcp。有好的想法或实现的话,欢迎 PR 哦。

考虑到调用 ptrace 和实现 SOCKS5 客户端的方便性,以及程序体积等因素,用 Rust 实现也许是个不错的选择。
2018-08-03 17:37:08 +08:00
回复了 gleport 创建的主题 分享创造 一种把指定程序的 TCP 流量重定向到代理的方法
@dbw9580 被跟踪的进程再 fork 子进程,子进程也会被跟踪。里面的例子:
./graftcp bash 开一个 shell, 然后在这个 shell 里面运行所有命令产生的 connect 都会被重定向了。因为 ptrace 设置跟踪时加了 PTRACE_O_TRACECLONE 和 PTRACE_O_TRACEFORK、PTRACE_O_TRACEVFORK 标志位。
2018-08-03 17:32:51 +08:00
回复了 gleport 创建的主题 分享创造 一种把指定程序的 TCP 流量重定向到代理的方法
@1423
1. 可以把它们合在同一个程序,但这个程序需要同时能使用 ptrace 及实现 SOCKS5 的客户端功能,而用 C 实现 SOCKS5 客户端的话比较折腾。还有一个原因是要处理 connect() 请求,它必须是一个监听并处理连接请求的 TCP 服务端。如果都嵌入同一个程序的话,就得每一个实例都新开一个新的端口进行监听,否则运行多个 graftcp 端口就冲突了。而每打开一个就新开一个监听端口的话,好像比较奇怪。当然这是可以实现的,这方面可以改进。
2. 只处理 connect, epoll 不需要处理。
从入坑之作《编码的奥秘》到《 CPU 自制入门》造轮子。。。
2018-05-16 17:07:51 +08:00
回复了 ltoddy 创建的主题 程序员 喜欢函数式编程和 C 的来看一下?
@ltoddy 在下 fractal,群主是鸭子。
2018-05-16 12:54:24 +08:00
回复了 ltoddy 创建的主题 程序员 喜欢函数式编程和 C 的来看一下?
@ltoddy 欢迎加入 scheme 研究院微信群交流~
https://i.imgur.com/M32E91w.jpg
2018-05-16 11:09:49 +08:00
回复了 ltoddy 创建的主题 程序员 喜欢函数式编程和 C 的来看一下?
也贴下上面提到的那个 toy scheme 解释器实现: https://github.com/hmgle/yascm
通过了 [Man or boy test]( https://en.m.wikipedia.org/?title=Man_or_boy_test)
2018-05-16 10:18:26 +08:00
回复了 ltoddy 创建的主题 程序员 喜欢函数式编程和 C 的来看一下?
试了一下还不完善啊,(define (f x) (+ x 1)) 会报 “ unbound variable ” 的错。楼主可以参考下 https://raw.githubusercontent.com/hmgle/yascm/master/tests/tests.scm 做测试,这个解释器核心程序用了几百行 c,就可以跑 sicp 的元循环求值器了。
2018-03-12 20:26:15 +08:00
回复了 gleport 创建的主题 职场话题 湖边偶记
泥鳅做法就多了,不拘一格,蒸、炒、焖、钻豆腐随便做。最近关注一些 B 站野食 UP 主,感兴趣的可参考下。
2018-03-12 20:16:13 +08:00
回复了 gleport 创建的主题 职场话题 湖边偶记
@CEBBCAT 嗯,不指望了。争取过,尽了人事,虽然目前结果还是比较遗憾,但各位遇到此类事情一定不能退让,纵容助长无赖之风。
2018-03-12 20:11:14 +08:00
回复了 gleport 创建的主题 职场话题 湖边偶记
@marlboros 泥鳅鲜美滑嫩呀,不过新鲜的话最好养个一两天等吐完泥再吃
2018-03-12 00:26:30 +08:00
回复了 gleport 创建的主题 职场话题 湖边偶记
2017-08-16 16:37:30 +08:00
回复了 gleport 创建的主题 奇思妙想 躺在床上控制床外电脑播放音乐的一种方法
发现可以使用 shairport-sync 搭建 AirPlay 服务。也可以试试 mopidy,支持多种源
2017-08-14 12:16:59 +08:00
回复了 gleport 创建的主题 奇思妙想 躺在床上控制床外电脑播放音乐的一种方法
有 DLNA、AirPlay 音箱设备是坠吼的,poor man 也有其他选择~
2017-08-14 08:54:12 +08:00
回复了 gleport 创建的主题 奇思妙想 躺在床上控制床外电脑播放音乐的一种方法
总结一下大家提到的方法:
1. 通过音乐提供商客户端的同步控制操作,缺点:一般仅限播放自家平台下的音乐。
2. VNC 远程控制,缺点是手机屏幕尺寸的原因,操作电脑界面不太方便。
3. 蓝牙音箱,有硬件设备的话应该是最好的解决方式。
4. 通过播放器提供的同步操作控制远程主机的播放器,缺点同 1。
5. 远程主机播放本地音乐及线上平台音乐,并提供操作 api 给手机。

欢迎补充
2017-08-14 08:53:57 +08:00
回复了 gleport 创建的主题 奇思妙想 躺在床上控制床外电脑播放音乐的一种方法
@pimin 没有用过,不知道能不能播放网易云音乐
2017-08-14 08:52:29 +08:00
回复了 gleport 创建的主题 奇思妙想 躺在床上控制床外电脑播放音乐的一种方法
@Weny 蓝牙音箱应该是最好解决方式了
2017-08-14 08:51:33 +08:00
回复了 gleport 创建的主题 奇思妙想 躺在床上控制床外电脑播放音乐的一种方法
@Phant0m 第一次听说 spofity,搜了一下在大陆 app 市场没有上架。不过应该不能播放其他平台的音乐吧?
2017-08-14 08:50:10 +08:00
回复了 gleport 创建的主题 奇思妙想 躺在床上控制床外电脑播放音乐的一种方法
@Shangxin 因为手机外放音质不好
1  2  3  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1182 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 19ms · UTC 23:37 · PVG 07:37 · LAX 16:37 · JFK 19:37
♥ Do have faith in what you're doing.