是否有任何 Windows 应用程序可以连接到远程 OpenVPN 服务器,然后在本地环境中充当 SOCKS 5 服务器?
编辑:这意味着
- 本地服务器
- 使用 VPN/OpenVPN 协议,绑定到端口作为 socks 代理服务器
- 提取并运行,无需管理员/root权限即可安装
- 无需设置 TUN/TAP 设备或其他虚拟接口
- 保持路由表清洁。
答案1
我做到了。我花了很长时间。简而言之,
- 设置 OpenVPN 客户端,使得只有使用其网络接口的程序才能使用 VPN。
- 设置本地 SSH 服务器(
freesshd
)并将其强制到 VPN 网络接口。 - 通过隧道将 Putty 连接到所述 SSH 服务器。
以下是完整版本:
Reddit 有好的向导(archive.org 镜像) 将 OpenVPN 限制在其自己的网络接口上。我只执行了前两个步骤。一些程序(torrent 客户端)可以本机连接到此网络接口并通过 VPN 运行,而其他所有程序都使用直接连接。
但如果您仍然需要该 SOCKS 代理,请继续...
下载
freesshd
并forcebindip
。这里是Raymond.cc 的指南(archive.org 镜像) 如何强制freesshd
(或任何程序)进入VPN接口。最好以管理员身份执行所有操作。我在以
freesshd
非管理员身份运行时遇到了问题。您需要
freesshd
正确配置:在下面远程控制选项卡,将“监听地址”设置为“仅本地主机”
在下面隧道选项卡,允许两个端口转发设置(只能分别勾选第一个,不能同时勾选两个)。
在下添加一个用户用户标签并授予其访问所有内容的权限。
现在您的 SSH 服务器正在运行,您需要做的就是连接 Putty 以建立 SOCKS 隧道。将其连接到 127.0.0.1(您的本地 SSH 服务器)并为 SOCKS 选择一个端口。以下是一个教程(archive.org 镜像)。
就是这样!现在,您在 Putty 中选择的端口 127.0.0.1 上有一个运行的 SOCKS 代理。
我知道它仍然有路线等等,但最终你有一个“干净的” SOCKS 代理。
答案2
您要做的是启用 OpenVPN 服务器(或 OpenVPN 网络上的任何计算机)上的 shell 访问,并为您的代理创建一个 shell 帐户。
ssh -D 127.0.0.1:8080 username
在客户端系统的命令行上使用,其中username
是您创建的代理 shell 帐户的名称,8080
是您希望在本地机器上使用的 SOCKS5 端口。ssh
应该在 Mac/Linux/BSD 上默认安装,如果没有安装,则易于安装,对于 Windows,您可以使用 PuTTY 或 Cygwinssh
来设置隧道。我知道这不能回答问题,但这将是实现您想要的最快方法,假设您可以通过 OpenVPN 网络获得对计算机的 shell 访问权限。
另一种方法是找到一个 SOCKS5 服务器,它允许您指定传出连接的绑定地址。
答案3
如果你想将袜子变成VPN:https://code.google.com/p/badvpn/
如果你想把 VPN 变成袜子,也许:http://lxc.sourceforge.net/
VPN客户端就如同一张虚拟网卡,将VPN客户端转变为socks服务器就等同于在特定网卡上创建一个socks服务器。