您可以向我推荐适用于Windows 7的Web阻止程序吗?我希望它避免拖延浏览网络,但与此同时,我只需要阻止某些网站,而不是全部阻止某些小时。例如,我希望能够访问Stack Overflow,但又不想访问Reddit。

它不能作为浏览器插件,因为我在Windows 7中运行虚拟机,并且我希望这些VM也被阻止。

评论

听起来好像OP想要更多类似ColdTurkey的东西,但是有太多关于主机文件的建议(尽管我不建议这样做,很高兴知道其他选择)

如果您不介意使用Firefox,则可以使用很棒的Leechblock,它使您可以将某些网站每小时或每天限制在如此之多的时间,等等。proginosko.com/leechblock.html

我还发现使用像Password Safe这样的密码管理器为我生成随机密码很有用,因此我不知道要登录Facebook等的密码,必须去从Password Safe那里获取密码。这种额外的工作意味着我不太可能通过Firefox以外的浏览器登录Facebook。

@BenVoigt查看我有关OpenDNS的答案。似乎可以替代ColdTurkey。

@Marcel:如果您正在寻找家长控制,OpenDNS似乎是一个很好的解决方案,但我认为这不是ColdTurkey的替代方案。我想要本地的东西(我只想更改我的计算机,而不是我妻子的计算机或手机),我也不需要永久的东西,我希望它每天只能工作几个小时。

#1 楼

您可以使用Hosts-Switch在不同的主机文件之间进行切换:


免费提供
Windows
允许使用快捷方式在不同的主机文件之间进行切换。



评论


我发现编辑主机文件是最好的解决方案(跨浏览器等)。但是我发现有些限制在领域内。例如,如果不阻止google.com,我就无法阻止news.google.com。

– Borjab
15年2月16日在9:44

@borjab 127.0.0.1 news.google.com怎么样?

–弗朗克·德农库尔
15年2月16日在14:44

抱歉。我用记忆说话。 Google新闻使用get http参数“&tbm = nws”或“ google.com/news/”,这很困难。

– Borjab
15年2月16日在15:27

使用hosts文件的问题是如何阻止,例如* .google.com或* .stackexchange.com

–mHouses
15年2月17日在12:17

@mHouses主机文件确实不支持通配符。一种解决方法是使hosts文件指向支持通配符的Acrylic DNS代理(免费和开源)。

–弗朗克·德农库尔
2015年2月17日在13:27



#2 楼

您可以使用代理服务器,例如squid。


Squid是Web的缓存代理,支持HTTP,HTTPS,FTP和
。通过缓存和重用经常请求的网页,它减少了带宽并缩短了响应时间。 Squid具有广泛的访问权限
控件,并使其成为出色的服务器加速器。它可以在大多数
包括Windows在内的可用操作系统上运行,并且在
GNU GPL下获得了许可。


有关如何使用SQUID服务器阻止网站的信息,这该怎么做。复制下面的答案:


您必须在squid.conf中进行一些更改,并按以下步骤操作:


打开此文件/ etc /squid3/squid.conf

添加以下行:

acl bad_url dstdomain "/etc/squid3/bad-sites.squid"
http_access deny bad_url



然后转到/ etc / squid3 / bad-sites .conf并以这种格式添加域

.google.com
.msn.com
.app.facebook.com





#3 楼

这里的许多答案都引用了全能的主机文件,实际上,这是最好的选择。这是一些聪明人在StackOverflow上提供的自动化解决方案,它不使用任何第三方软件。您可以将其捆绑到一个批处理文件中,并作为Windows任务运行,该任务在特定时间解锁,并完全将其忽略。

此方法有几个好处:


简单
免费(无需下载)
使用Windows Task Scheduler轻松安排时间
网站的操作系统级别阻止
有足够的麻烦来撤消操作,您可能会在处理它之前停止自己。

以下是批处理文件的代码:

blockfacebook.bat的代码

echo 0.0.0.0 www.facebook.com >> c:\windows\system32\drivers\etc\hosts


unblockfacebook.bat的代码

@echo off
    setlocal enableextensions disabledelayedexpansion

    set "file=c:\windows\system32\drivers\etc\hosts"

    for /f "tokens=* delims=0123456789" %%a in (
        'findstr /n /i /v /c:"facebook" "%file%" ^& type nul ^> "%file%"'
    ) do (
        set "line=%%a"
        setlocal enabledelayedexpansion
        >>"%file%" echo(!line:~1!
        endlocal
    )

    endlocal


将它们复制粘贴到记事本中,并保存为.bat扩展名,然后双击它们进行测试。

计划任务:

来自微软网站:


您必须以管理员身份登录才能执行这些步骤。如果您不是以管理员身份登录的,则只能更改适用于您的用户帐户的设置。

如果您定期使用特定程序,您可以使用Task
Scheduler向导创建一个任务,该任务会根据您选择的时间表自动为您打开程序。例如,如果
您每个月的某天使用财务程序,则可以
安排一个任务,该任务会自动打开该程序,从而避免忘记自己打开该程序的风险。
br />

通过依次单击“开始”按钮,“开始”按钮的图片,“控制面板”,“系统和安全性”,
,“管理工具”,然后双击“任务”,打开Task Scheduler。 /> Scheduler。‌需要管理员权限,如果系统提示您输入
管理员密码或确认,键入密码或
提供确认。
单击“操作”菜单,然后单击“创建基本任务”。
键入任务名称和可选描述,然后单击下一步。

执行以下操作之一:


要基于日历选择计划,请单击“每日”,“每周”,“每月”或“一次”,单击下一个;指定要使用的日程表,然后单击“下一步”。
要基于常见的重复事件选择日程表,请单击“计算机启动时”或“登录时”,然后单击“下一步”。
要根据特定事件选择时间表,请单击“记录特定事件”,然后单击“下一步”。使用下拉列表指定事件日志和其他
信息,然后单击“下一步”。
若要安排程序自动启动,请单击“启动程序”,然后单击“下一步”。


单击“浏览”找到要启动的程序,然后单击“下一步”。
单击“完成”。



评论


为什么只阻止www。?通过访问m.facebook.com,这很容易避免。

–nyuszika7h
15年2月16日在20:57

@ nyuszika7h好点。我将用一些细节来编辑我的答案。

– Conor
15年2月16日在21:06

#4 楼

我建议使用像OpenDNS这样的可配置DNS服务。这是一种“家长控制”服务,但可以满足您的需求。


免费供家庭使用
无需摆弄主机文件,而是只需设置一次路由器级别的DNS服务器。
自动在所有本地计算机上运行
允许配置允许/不允许的类别以及单个域名。
此外,它还自动禁止可识别的恶意软件站点,从而为您的计算机提供某种程度的改进的安全性。 br />

#5 楼

您可以使用主机配置文件在不同的主机文件之间进行切换:


免费提供Windows / Linux(单声道,但只有root用户可以启动该程序。)





评论


完全题外话:我惊讶于同一GUI在不同OS上的外观要好得多。

–马塞尔
15年2月16日在9:52

#6 楼

您可以使用HostsMan在不同的主机文件之间进行切换:


免费提供Windows Windows











#7 楼

您可以使用主机切换器在不同的主机文件之间进行切换:


免费提供
Windows
小托盘图标



#8 楼

WinGate可以在这里提供帮助。由于您要控制多台计算机,因此代理或处理DNS都可以提供答案。

WinGate内置了DNS服务器,您可以使用WinGate策略系统将DNS查找转移到

作为www代理,您可以基于通过WinGate转发实际流量来执行类似的操作。 WinGate中有2个用于Web流量的策略系统,一个简化的基于规则的系统,使您可以控制谁可以在何时何地去;或者,一个更强大的基于事件/流程图的系统,可以使您执行几乎所有操作。

WinGate拥有3个并发用户的免费许可证(我们将很快增加到10个),我们甚至还为免费许可证用户提供免费支持。

免责声明:我为WinGate的作者Qbik工作。

评论


感谢您的回答。请确保所有答案都包含免责声明。

– RockPaperLz-掩盖它或棺材♦
16年5月27日在6:32

很酷,是的,我回去编辑了一些内容。

–阿德里安
16年5月27日在6:46

非常感谢Adrien

– RockPaperLz-掩盖它或棺材♦
16年5月27日在8:16