$ export WINEDEBUG=-all # remove debug prints for the demo
$ wine ping localhost # check that ping works
Pinging localhost [127.0.0.1] with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=64
Reply from 127.0.0.1: bytes=32 time<1ms TTL=64
Reply from 127.0.0.1: bytes=32 time<1ms TTL=64
Reply from 127.0.0.1: bytes=32 time=1ms TTL=64
Ping statistics for 127.0.0.1
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss)
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 1ms, Average = 0ms
$ systemd-run --scope -p IPAddressDeny=any wine ping localhost # well, not anymore
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ====
Authentication is required to manage system services or other units.
Multiple identities can be used for authentication:
1. constantine
2. archie
Choose identity to authenticate as (1-2): 1
Password:
==== AUTHENTICATION COMPLETE ====
Running scope as unit: run-u28936.scope
Pinging localhost [127.0.0.1] with 32 bytes of data:
PING: transmit failed. General failure.
PING: transmit failed. General failure.
PING: transmit failed. General failure.
PING: transmit failed. General failure.
Ping statistics for 127.0.0.1
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss)
在Ubuntu 论坛上有一个关于阻止任何给定程序访问 Internet 的很好的教程。
脚步
iptables 规则以防止该组访问网络
您不想使用
sg
或sudo -g
(以不同的组 ID 执行命令)访问 Internet 的进程:它基本上涉及创建一个新组,拒绝它访问 Internet,然后运行您想要限制为该组 ID 的任何程序。因此,在您的情况下,您将始终使用本教程中描述的方法运行 wine。
创建一个群组并成为其中的一员
现在输入一条
iptables
规则以阻止该组使用互联网,您可以在终端上键入它并按 Enter要在每次重新启动后使用 systemd 使用 package.json 使此规则
iptables-persistent save
运行iptables-persistent
。如果使用 rc-local:您可以将规则放入
/etc/rc.local
. 确保该文本文件的最后一行显示exit 0
.使用示例:
您需要在
" "
程序名称前输入和输入 wine。几年后编辑不喜欢代理设置的软件,总体上是一个更干净、更简单的答案:
使用 bublewrap + unshare 启动您的应用程序:
更改代理/原始答案
添加到您的葡萄酒(或 playonlinux 虚拟驱动器)注册表:
确实比使用组更简单的解决方案(并且不会阻止 pol 连接,只是应用程序)
归功于http://ootput.wordpress.com/2011/06/06/block-wine-applications-from-the-internet/comment-page-1/
只需将应用程序运行为:
IPAddressDeny=…
允许拒绝访问一组 IPv4 和 IPv6 地址。特殊值any
禁用对所有基于 IP 的协议(如 TCP、UDP、ICMP、SCTP 等)的访问。使用示例(注意:对于这个演示,我必须修复
wine ping
,因为它对我来说超时了):对于其余的答案,我将从我在 unix.se 上的其他类似答案中复制文本:
注意:这会要求您输入密码,但应用程序会以您的用户身份启动。不要让这使您误以为命令需要
sudo
,因为这会导致命令在 root 下运行,这几乎不是您的意图。如果您不想输入密码(毕竟,您已经拥有自己的资源,为什么需要密码来限制它们),您可以使用
--user
选项,但是要使其工作,您需要启用 cgroupsv2 支持,现在需要使用systemd.unified_cgroup_hierarchy
内核参数引导。它不是最干净的解决方案,但作为PlayOnLinux用户的临时解决方案,设置起来既简单又快速。
转到设置 > 互联网
启用
Set a proxy
并进入没有代理的网站,例如stackoverflow.com
随机用户名和密码。这些程序不会到达代理服务器或互联网。警告:请注意,这也会阻止安装对话框搜索和安装新软件!