windows - 通过 SSH 路由流量 + DNS(即:socks 代理)
问题描述
我有以下设置:
- 2台电脑(
Cmp.A
和Cmp.B
) - 计算机运行 Windows 10,我在两台计算机上都拥有管理员权限
- Cmp.A 使用不同的解决方案同时连接到 2 个 VPN 网络(不同的域)
- Cmp.A 已安装并启用 OpenSSH 服务器
- Cmp.B 应该通过 Cmp.A 访问互联网和所有私有域(通过 VPN)
- Cmp.B 应该通过 Cmp.A 解析主机名,换句话说:DNS 流量也应该通过 Cmp.A 解析
目前,我通过 SSH 将 Cmp.B 连接到 Cmp.A 来实现这一点,这在 SSH 隧道中为我提供了一个 SOCKS 代理。Cmp.B 安装了ProxyCap,它将所有流量(包括 DNS)路由到 Cmp.A。
这种设置对我来说效果很好,但有一个丑陋的挫折:ProxyCap 确实更改了我的 Windows 10(在 Cmp.B 上)的 Winsock 配置,这导致与我的其他应用程序不兼容。当我执行netsh winsock show catalog
时,它确实返回了几十个与 ProxyCap 相关的新条目,我不想要这个(如果可能的话)
我想避免使用 ProxyCap 并将自己从应用程序中弄乱这种操作系统级别的套接字设置,但我需要所有流量(不仅仅是浏览器流量)通过 Cmp.B。
总结一下,我的问题是:
- 如何在不使用 ProxyCap 的情况下通过另一台 Windows 10 计算机(通过 SSH SOCKS5 代理)路由所有 Win10 网络流量(包括 DNS)?
- 如何让 Windows 通过我现有的 SOCKS5 隧道解析 DNS?
解决方案
推荐阅读
- python - VS Code 未注册已安装 ipykernel
- git - 带有 Github 操作模式的 Terraform
- if-statement - 关于如何创建这个 if 公式的问题
- typescript - 错误:类可分配给类型“T”的约束,但可以使用约束类的不同子类型来实例化“T”
- ios - 无法调试。在 react native 中找不到 plist 文件来配置调试?
- python - Django:@login_required 装饰器不会重定向到“下一个”
- mysql - 有条件地从一对多关系中选择一行
- python - 如何在保持帧尺寸标签的同时将训练数据集帧转换为 5d 张量?
- php - 为什么我的网站上没有设置 cookie
- python - Pip 没有缓存所有已安装的包