我是一名程序员,我为一些客户工作过,他们的网络阻止了端口 22 上的传出连接。考虑到程序员经常需要使用端口 22 进行 ssh,这似乎是一个适得其反的过程。充其量,它迫使程序员向公司收取 3G 互联网费用。在最坏的情况下,这意味着他们无法有效地完成工作。
鉴于这造成的困难,有经验的系统管理员能否解释一下看似双输的行动的预期好处?
我们这里有一些用户在工作时间使用 Facebook,他们的工作效率很高,作为临时措施,我远程编辑了他们的主机文件以指向 facebook.com 及其各种子域指向回送地址,然后手动在午餐时间发表评论,以便他们可以使用它。
每天对许多用户执行此操作显然有点令人厌烦。
我正在寻找可以按计划自动执行此阻塞的方法。
我在想某种代理服务器,我可以通过组策略将其添加到浏览器上的代理设置中。
有谁知道任何免费或廉价的 Windows 软件解决方案可以做到这一点?或者我可以在 PC/VM 上安装独立的东西?
我想我总是可以编写和安排一些批处理文件来切换一个被阻止的主机文件和一个未被阻止的主机文件。
网络是 Windows 2003 SBS 服务器、Windows XP sp3 工作站、服务器 Netgear DG834 路由器上的单一接口,虽然它确实有一些调度,但它不允许设置一个窗口,只有一个块窗口 - 例如 9-5pm,但我想要在中间打开它。
我正在尝试修复我们服务器上的 MySQL 配置。我们的应用程序的特点是大量数据存储在单个表中(目前超过 3 亿行)。该表经常用于插入(它们总是出现)。
当我在该表上运行超过几秒钟的选择查询时,所有插入(确切地提交)都在等待表访问,并使我们的应用程序无响应。
据我所知 InnoDB 在 select 运行时不会对表进行任何锁定。为什么选择阻塞表呢?
我试图找到 innotop 的原因,但我不确定如何解释它的输出以及在哪里搜索。告诉我你需要什么,我会在这里发布。
+-----+---------+-----------+--------+---------+------+----------------+-----------------------------------------------------------------------------------------------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+---------+-----------+--------+---------+------+----------------+-----------------------------------------------------------------------------------------------------------------------------------+
| 1 | root | localhost | dbname | Query | 29 | NULL | COMMIT |
| 2 | root | localhost | dbname | Query | 30 | NULL | COMMIT |
| 4 | root | localhost | dbname | Query | 29 | …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用带有 -f 选项的 haproxy ACL 从文件中读取来拒绝来自特定用户代理的连接(通过匹配用户代理标头的子字符串)。但是它不起作用,它运行时好像忽略了配置。
有更多haproxy经验的人可以指出我缺少什么吗?或者关于如何调试这个 haproxy 配置的一些提示?
我正在运行 haproxy 1.4.18。
这是 haproxy.cfg 的摘录:
listen http 0.0.0.0:80
acl abuser hdr_sub(user-agent) -f /etc/haproxy/abuser.lst
tcp-request content reject if abuser
mode http
server www1 127.0.0.1:8080 maxconn 10000
Run Code Online (Sandbox Code Playgroud)
这是abuser.lst 文件的内容:
# annoying bots
annoyingbot1
annoyingbot2
Run Code Online (Sandbox Code Playgroud) 据我所知,Nginx 默认支持 2 个日志文件:(error_log跟踪与 Nginx 服务器本身相关的问题)和access_log(跟踪 Nginx 处理的请求)。虽然可以access_log使用log_format指令控制 的格式,但我一直未能找到一种仅将某些请求记录到单独文件的方法,因此想在 SF 上提出问题作为未来读者的参考:
有没有办法将某些请求记录到与 定义的不同的日志文件中access_log?
仅供参考,这个问题背后的原因是我有一个规则,拒绝访问带有 200 的不需要的爬虫(因为 403 会提示他们被阻止),并且从 中过滤这些请求access_log变得更加困难。
我在 Debian 上使用 Squid 3.4,我想知道如何在禁止其他子 URL 的同时允许某些子 URL。
特别是,我想禁止访问 reddit.com/* 但允许访问 reddit.com/r/foo/* 和 reddit.com/r/foo/
acl bad url_regex reddit\.com.*
acl good url_regex reddit\.com.*foo*
http_access deny bad
http_access allow good
...
http_access allow localnet
http_access allow localhost
http_access deny all
Run Code Online (Sandbox Code Playgroud)
这段代码似乎不起作用,reddit.com 上的所有内容最终都被屏蔽了。我怎样才能得到我想要的配置?
编辑:更新的配置仍然不起作用:
acl good url_regex http(s)?://(www\.)?reddit\.com/r/foo.*
acl bad url_regex http(s)?://(www\.)?reddit\.com.*
http_access allow good
http_access deny bad
...
http_access allow localnet
http_access allow localhost
http_access deny all
Run Code Online (Sandbox Code Playgroud)
这与前面的代码有相反的效果;它允许访问所有 reddit.com(我不想要)。
我的 SQL Server 2008 开始挂起简单的查询,所以我使用内置的所有阻塞事务报告检查阻塞事务。果然,这样的交易是存在的。但是,如果我展开 Blocking SQL Statement,我会得到一个空白框。我怎样才能找到有关问题的更多信息?
这个事务阻塞了几个对业务至关重要的工作(嗯,不是真的,但老板和老板的老板依赖于他们),所以我不情愿地KILL编辑了阻塞会话。20 分钟后,它仍然是“正在回滚……完成:0%……估计剩余时间:0 秒。” 我真的很想知道是什么导致了这种情况,我已经好几个月没有明显的阻塞了。
我想阻止某些网站的 HTTPS 版本并允许它们使用 HTTP。涉及的主要网站是 Youtube 和 Google 图片/视频。这是因为在 HTTP 版本上,我可以在这些平台上强制执行 Safesearch 过滤器,而我不能在 HTTPS 版本上。对我来说,这是一个非常严重的问题,它破坏了 Google 提供的 Safesearch 功能的许多优点。
有没有可以做到这一点的软件/配置?
我正在使用过滤软件 (K9 Web Protection),它在我提到的网站的 HTTP 版本上强制执行 Safesearch,但无法在 HTTPS 版本上执行此操作。
我想我需要在计算机级别实现它,因为从路由器绕过过滤解决方案非常容易,尤其是当它们依赖 DNS 配置时。
多 CPU 服务器正在运行多个进程。一个进程有一个线程应该始终处于旋转状态,使用它分配的 CPU 的 100%。我当前的方法(除了询问开发人员...)正在strace等待信息到达其打开的文件描述符的进程上使用recvfrom(2),erno并使用where设置为连续检查它,EAGAIN并且方法在没有数据包时返回 -1从网络套接字。
我不习惯堆栈跟踪生产设置,这是一种确定这些信息的笨拙方法。我正在proc(5)探索并认为标志字段的值/proc/[pid]/fdinfo可能有助于检查该进程是否正在使用open(2)以该O_NONBLOCK模式调用的套接字。
我目前正在努力对这个值进行逆向工程。我知道它代表文件状态和文件模式的按位或。所以我想我可以检查源头文件中常量open(2)在那个特定内核上使用的值,然后按位或它们,直到我找到一个与fdinfo. 这看起来很笨拙,如果有人可以验证上述方法(我还不能)或提供更优雅的解决方案,我将非常感激。
我也知道fnctl(2)可以将文件描述符设置为非阻塞状态,但我暂时将其视为打开
所以我的目标是只阻止某些 YouTube 频道。
如果我做:
acl block_youtube dstdomain .youtube.com
http_access deny block_youtube
Run Code Online (Sandbox Code Playgroud)
它会阻止对 youtube 的任何访问。
如果我做:
acl block_youtube url_regex -i ^https://www.youtube.com/watch\?v=v2AC41dglnM
http_access deny block_youtube
Run Code Online (Sandbox Code Playgroud)
它不会阻止该特定页面,即使我在 access_log 中看到这一点。
475862685.876 0 100.100.100.100 TAG_NONE/200 0 CONNECT www.youtube.com:443 - HIER_NONE/- -
1475862686.359 412 100.100.100.100 TCP_MISS/200 51182 GET https://www.youtube.com/watch\?v=v2AC41dglnM - HIER_DIRECT/216.58.192.238 application/json
Run Code Online (Sandbox Code Playgroud)
有人知道如何解决这个问题吗?