使用ssh -D通过袜子代理路由所有流量


9

通过带-D的ssh代理路由所有流量的任何简单方法?

我可以配置单个特定的应用程序来执行此操作,但是我想要一个路由该计算机上所有流量的配置。谢谢你的帮助!


忘了说我在Linux上是如此理想,我可以通过它使用iptables进行路由。
grm 2010年

Answers:


10

在Linux中:

  1. iptables -t nat -A输出!-d 127.0.0.0/8 -j重定向-至1081
  2. 运行程序,侦听1081,检索实际的非重定向目标地址,与SOCKS服务器协商并中继。

我已经用Perl(原型质量)编写了这样的程序供私人使用,并用C编写了更好的版本。该程序尚未发布。

更新:现在已发布:http : //github.com/vi/socksredirect/ 使用prototype.pl。如果您有兴趣开发更好的版本,请给我一些通知。

更新2创建了更好的版本:http ://github.com/vi/tcpsocks和一个Socat 2补丁:http ://github.com/vi/socksredirect/blob/master/socat-2.0.0- b3-REDIRECT.patch

PS我的大部分(有时是邻居的)流量现在都通过tcpsocks-> ssh。


非常有趣的项目Vi。谢谢!我会看一下。
grm

您可能应该使用更多的iptables规则来选择您要吸收的流量。我使用“ iptables -t nat -A OUTPUT -j QQQ”,然后使用“ iptables -t nat -A QQQ <checks> -j RETURN”,最后使用“ iptables -t nat -A QQQ -p tcp -j REDIRECT- -至1234”。
六。

谢谢!我一直在想这是否可行,这是我长期尝试的项目想法列表中的一部分。
东武

@Tobu,我已经实现了这个更多:现在有一个Socat补丁(github.com/vi/socksredirect/blob/master/...对于这一点,也轻量tcpsocks程序()github.com/vi/tcpsocks
六。

1
@Tanmay,使用tun设备,您将只看到TCP数据包,将它们解码为字节流将非常棘手(您将需要slirp)。与REDIRECT或TPROXY一起使用时recv,只需使用通常的方法即可为您提供没有TCP头的解码数据。
六。


2

也许您应该考虑改为设置VPN。


那会不会需要在网关端进行更多访问?
grm 2010年

我在Ubuntu上在家中设置了一个VPN服务器(poptop)。在工作中,我只使用Windows中的内置VPN客户端连接到它。无需打扰我的网络管理员或其他任何人。
Espennilsen

1

我认为没有任何方法可以执行此操作,但是也许您可以尝试使用FreeCap(windows),SocksCap(windows)或proxychains(linux)之类的程序,这些程序可能会对您有所帮助。


0

取决于您使用的操作系统。如果您使用的是MacOS,则每个应用程序都应使用全局代理设置,即使有些人不认可它们(Firefox即)。


特别是在MacOS上,需要验证对全局代理设置的信任。
chiggsy

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.