通过代理运行 Wine

通过代理运行 Wine

标题说明了一切。我在一所拥有经过身份验证的代理的大学。Wine 没有检测到这一点。因此,wine 内的所有应用程序都无法获得互联网连接。请帮忙。

答案1

有趣的是,我也在为此苦苦挣扎。这是我迄今为止解决的问题:

Wine 将从环境变量“http_proxy”中获取代理设置。如果您打算在整个会话中使用相同的代理设置,则可以更改 http_proxy 变量。请按照以下说明操作:https://askubuntu.com/a/151047/142903

如果像我一样,您在多个网络上使用计算机,其中一个网络有代理,而另一个网络没有,那么事情就会变得有点棘手。所有进程是否都从 ~/.bashrc 继承环境变量?

注意:您可能会发现使用 Gnome 或 KDE 很有用,它们都具有用于修改代理设置的图形界面。

编辑#2:经过大量的挖掘,我终于找到了这个文章在 BRAMP.NET 上描述了如何使用 iptables 通过代理服务器重定向端口 80 上的所有传出网络流量。作者提到,如果直接将数据包发送到服务器不起作用,可以使用类似乌贼它将指向网络代理。

这应该适用于不遵守 http_environment 变量的应用程序。我目前正在研究这是否仍可在 12.04/12.10/13.04 中工作,以及如何使用 中的脚本自动完成此操作/etc/network/if-up.d

编辑#3:进一步挖掘让我发现了这一点精彩帖子描述如何通过 Redsocks 设置的 SOCKS5 代理重定向所有系统流量 - 这可能适合当前的问题。

答案2

无论是设置http_proxy(和HTTP_PROXY)还是使用 regedit 技巧都无法解决这个问题。但是,使用 socksifier 会有所帮助。只需安装tsocks(或者,tsocks:i386如果您要使用的程序使用的是 32 位 wine),配置/etc/tsocks.conf您的代理服务器,然后export LD_PRELOAD=/usr/lib/libtsocks.so运行 ​​wine(例如,在您的 中.bashrc)。

答案3

您可以通过运行以下命令检查 Internet 设置:

wine rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl

或 Wine Internet Explorer:

wine iexplore

但我不认为您可以在那里更改代理,除非您尝试安装支持该代理的独立网络浏览器(例如 MS IExplorer、Firefox 或 Opera)。

但是解决方法是直接在注册表中设置代理:

wine regedit

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings并通过设置和指定地址ProxyEnable来更改密钥。1ProxyServer

或者运行以下命令:

cat << EOF > proxy.reg
Regedit4
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"MigrateProxy"=dword:00000001
"ProxyEnable"=dword:00000001
"ProxyHttp1.1"=dword:00000000
"ProxyServer"="http://ProxyServername:80"
"ProxyOverride"="<local>"
EOF
wine regedit proxy.reg

自动设置(ProxyServername使用适当的主机名更改)。

来源:如何为在 Wine 上运行的 IE 配置代理?在Quora

答案4

由于 Wine 模拟了 Windows 环境以便您在 Linux 上运行 Windows 应用程序,因此您必须了解这些应用程序用来访问互联网的机制。

或者应用程序本身有一组专门的设置来输入代理参数(IP、端口、用户名和密码)。

或者应用程序从已安装和配置的 Microsoft Internet Explorer 中检索代理设置。可以使用该winetricks应用程序轻松安装 Internet Explorer 等 Windows 组件。

相关内容