如何为特定应用程序强制传出 ip? ForceBindIp 似乎不起作用
How can I force outgoing ip for specific applications? ForceBindIp doesn't seem to work
我有一个专用 windows 2012 服务器,有 12 个专用 IP。
我希望能够从我选择的两个不同的 ips 同时建立连接。
这将用于两个不同的浏览器应用程序。
我尝试了以下方法:
ForceBindIP %IP_ADDRESS% %APP_EXE%
但是 IP 没有改变,浏览器总是显示我添加的范围内的最低 IP。
我也试验过一个删除所有 ip 的脚本,然后只添加一个。
netsh interface ipv4 delete address "Ethernet" 104.251.111.110
netsh interface ipv4 delete address "Ethernet" 104.251.111.111
netsh interface ipv4 delete address "Ethernet" 104.251.111.112
netsh interface ipv4 delete address "Ethernet" 104.251.111.114
....
netsh interface ipv4 add address "Ethernet" 104.251.111.115 255.255.255.0
这改变了地址,但我最终只有一个 IP 用于两个应用程序。
您似乎在寻找对浏览器应用程序进行少量返工的修复程序。假设您使用 IIS 为应用程序提供服务,您应该:
- 使用文件资源管理器或命令行,soft-link 浏览器应用程序的每个实例在另一个根文件夹中的应用程序配置。
- 使用 IIS,将应用程序重新创建为上述每个浏览器应用程序文件夹的站点。
- 使用 IIS,将浏览器应用程序的每个实例绑定到您希望为其提供服务的 IP 地址。
警告:对所有实例使用相同的应用程序池很诱人,但请先评估您的硬件!请记住(取决于应用程序要求)您在使用单个应用程序池时会创建单点故障。使用相同的参数创建单独的应用程序池以降低这种风险。
如果您打算使用的应用程序不支持绑定到 interfaces/ip(是的,这并不常见),您可以使用 SOCKS 或代理软件(这更常见,尤其是浏览器)。
例如,您可以安装 WinGate 或 Squid http://www.squid-cache.org(这是我最了解的)。
Squid-Cache 能够根据规则绑定到不同的传出地址 (http://www.squid-cache.org/Doc/config/tcp_outgoing_address/)。
基本上你需要做的是:
- 安装 Squid
- 添加环回IP映射的ACL,如:
acl IP110 src 127.0.0.1/32
acl IP111 src 127.0.0.2/32
[...]
tcp_outgoing_address 104.251.111.110 IP110
tcp_outgoing_address 104.251.111.111 IP111
[...]
- 以及正式需要的默认值:
tcp_outgoing_address 104.251.111.110
然后每个应用程序都需要配置代理(或 SOCKS,如果你这样做的话),这是最常用的配置选项。在代理配置上设置相应的本地IP:
- 对于使用 IP .111 的传出连接,请在 127.0.0.2 上使用代理
- 对于使用 IP .110 的传出连接,请在 127.0.0.1 上使用代理
- ..等等。
确保 Squid(或 WinGate)绑定到本地主机 127.0.0.1/24,因此您不应该有很大的安全问题,但如果它暴露在 Internet 上,您可能仍要继续进行安全评估。
这样,如果您决定将某些应用程序远程卸载到其他服务器,您仍然可以设法使用相同的传出 IP,您只需要更改 squid 配置以允许外部连接,这可能是缩放的一大优点。
我有一个专用 windows 2012 服务器,有 12 个专用 IP。
我希望能够从我选择的两个不同的 ips 同时建立连接。
这将用于两个不同的浏览器应用程序。
我尝试了以下方法:
ForceBindIP %IP_ADDRESS% %APP_EXE%
但是 IP 没有改变,浏览器总是显示我添加的范围内的最低 IP。
我也试验过一个删除所有 ip 的脚本,然后只添加一个。
netsh interface ipv4 delete address "Ethernet" 104.251.111.110
netsh interface ipv4 delete address "Ethernet" 104.251.111.111
netsh interface ipv4 delete address "Ethernet" 104.251.111.112
netsh interface ipv4 delete address "Ethernet" 104.251.111.114
....
netsh interface ipv4 add address "Ethernet" 104.251.111.115 255.255.255.0
这改变了地址,但我最终只有一个 IP 用于两个应用程序。
您似乎在寻找对浏览器应用程序进行少量返工的修复程序。假设您使用 IIS 为应用程序提供服务,您应该:
- 使用文件资源管理器或命令行,soft-link 浏览器应用程序的每个实例在另一个根文件夹中的应用程序配置。
- 使用 IIS,将应用程序重新创建为上述每个浏览器应用程序文件夹的站点。
- 使用 IIS,将浏览器应用程序的每个实例绑定到您希望为其提供服务的 IP 地址。
警告:对所有实例使用相同的应用程序池很诱人,但请先评估您的硬件!请记住(取决于应用程序要求)您在使用单个应用程序池时会创建单点故障。使用相同的参数创建单独的应用程序池以降低这种风险。
如果您打算使用的应用程序不支持绑定到 interfaces/ip(是的,这并不常见),您可以使用 SOCKS 或代理软件(这更常见,尤其是浏览器)。
例如,您可以安装 WinGate 或 Squid http://www.squid-cache.org(这是我最了解的)。
Squid-Cache 能够根据规则绑定到不同的传出地址 (http://www.squid-cache.org/Doc/config/tcp_outgoing_address/)。
基本上你需要做的是:
- 安装 Squid
- 添加环回IP映射的ACL,如:
acl IP110 src 127.0.0.1/32
acl IP111 src 127.0.0.2/32
[...]
tcp_outgoing_address 104.251.111.110 IP110
tcp_outgoing_address 104.251.111.111 IP111
[...]
- 以及正式需要的默认值:
tcp_outgoing_address 104.251.111.110
然后每个应用程序都需要配置代理(或 SOCKS,如果你这样做的话),这是最常用的配置选项。在代理配置上设置相应的本地IP:
- 对于使用 IP .111 的传出连接,请在 127.0.0.2 上使用代理
- 对于使用 IP .110 的传出连接,请在 127.0.0.1 上使用代理
- ..等等。
确保 Squid(或 WinGate)绑定到本地主机 127.0.0.1/24,因此您不应该有很大的安全问题,但如果它暴露在 Internet 上,您可能仍要继续进行安全评估。
这样,如果您决定将某些应用程序远程卸载到其他服务器,您仍然可以设法使用相同的传出 IP,您只需要更改 squid 配置以允许外部连接,这可能是缩放的一大优点。