怎么让 ICMP 协议走代理

2023 年 7 月 3 日
 specture

基于 socks5 协议给公司做了个代理访问的系统.客户端部分类似 clash 使用的 tun 设备引流的方式.网关是 go 编码实现的 socks5 server 端.

问题是 ping 和 traceroute 是 IMCP 协议,没法使用 socks5 代理. 请问在上述设计上怎么扩展可以支持 ping 和 traceroute

8737 次点击
所在节点    信息安全
38 条回复
Badupp
2023 年 7 月 3 日
sock5 是四层。ICMP 是三层。怎么 代理?
ShineyWang
2023 年 7 月 3 日
导入到 Netch,应该支持 ICMP
leonshaw
2023 年 7 月 3 日
VPN
Kinnice
2023 年 7 月 3 日
如果是 fake 的 ping ,可以使用 tun2socks 然后魔改一下实现,如果是真的 ping ,bye~ 网络层级都不同
monstervivi
2023 年 7 月 3 日
试一试修改 iptables 来支持?
wanmyj
2023 年 7 月 3 日
ipsec 这种代理才可以
LaTero
2023 年 7 月 3 日
用真 vpn ,openvpn 可以指定 socks ,路由表里要让代理机 ip 走真网关,否则会循环。
smileawei
2023 年 7 月 3 日
大部分的科学工具都支持入口是 socks
openvpn over socksproxy 然后记得调整好 mtu 。分流的话,可以考虑用 chnrouter 去做路由层的分流。

不过这一整套组建都需要自己搞。做好心里准备。
specture
2023 年 7 月 3 日
@Badupp ICMP 不一定走 socks5?客户端 tun 应该是可以支持的,网关扩展一下?
specture
2023 年 7 月 3 日
@Kinnice fake 的 ping 怎么理解?麻烦大佬再解释一下
yxmyxmyyy
2023 年 7 月 3 日
wireguard 可以代理
ysc3839
2023 年 7 月 3 日
你这个代理怎么实现 UDP 代理的? ICMP 也是类似的逻辑,简单改改就好了。
tool2d
2023 年 7 月 3 日
楼上说的对,ICMP 类似 UDP ,代理软件特殊处理一下就行。比如加个 RPC 远程转发指令。

虽然可以实现,但是一般来说没太大必要,ping 又不带具体数据。
x77
2023 年 7 月 3 日
应用层: http 、ftp <-----> socks 被动代理应用层协议
传输层:tcp 、udp
网络层:icmp <-------> vpn 主动劫持网络及上层的协议
0o0O0o0O0o
2023 年 7 月 3 日
我是在任意支持 UDP 的代理上跑 wireguard ,写规则让 icmp 走 wireguard
jiulang
2023 年 7 月 3 日
就算对 socks5 扩展支持 icmp 得到 socks6 ,问:应用程序如何拦截系统的 icmp 包
luckyc
2023 年 7 月 3 日
tcpping 呗
iqoo
2023 年 7 月 3 日
linux 的 ssh 内置 tap 转发
lisxour
2023 年 7 月 3 日
@specture #10 由于 icmp 属于特殊协议,在特殊场合可能会被拦截,所以有一种方式就是通过 socket 连接目标,看下连不连的上,以及延迟,这就是 fake ping 。
angryPHP
2023 年 7 月 3 日
zerotier 的为啥可以

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/953650

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX