我正在尝试仅将流量过滤到给定的 HTTP 主机名。我有一个服务器,上面有几十个网站。它只有一个接口和一个IP地址。因此过滤到我的 IP 地址在这里没有帮助。
例如,我的服务器上有a.com、b.com、c.com、 ...、z.com站点,我只需要捕获a.com 的流量,甚至有时是该站点的特定路径,像a.com/register。
请注意,我不是在谈论Display Filters,而是我需要应用Capture Filter。
我怎样才能做到这一点?这些过滤器都不适合我:
tcp port 80 and host a.com
host a.com
tcpdump host a.com
Run Code Online (Sandbox Code Playgroud) 因此,我一直在网上寻找一个脚本,该脚本将删除除 http(80) 和 https(443) 端口之外的所有端口的所有流量,然后只允许来自国家 x 的所有其他端口的流量(在我的案例国家 x 是美国)。
我不想添加来自每个国家/地区的所有 IP,我只想允许来自我国家/地区的 ip,然后阻止来自外部世界的几乎所有其他流量。我国以外的任何人都不应访问 ssh、ftp、smtp 等。除了我自己。如果这种情况发生变化,我会在它接近时为其添加一个特殊情况。
我必须注意,我确实找到了一个问题,其中包含使用 ip 表按国家/地区禁止 ip的脚本,但这是我必须做的很多额外插入。
标记为最佳答案的脚本将阻止来自这些 IP 的所有流量。我只想阻止访问除 80 和 443 之外的所有端口。
根据以下规则,
iptables -A OUTPUT -m geoip --dst-cc CN -j DROP
Run Code Online (Sandbox Code Playgroud)
我可以修改它并做类似的事情吗
iptables -A OUTPUT -m geoip --dst-cc CN --dport 80 -j ACCEPT
iptables -A OUTPUT -m geoip --dst-cc CN --dport 443 -j ACCEPT
iptables -A OUTPUT -m geoip --dst-cc CN -j DROP
Run Code Online (Sandbox Code Playgroud)
我认为这将允许来自中国的 ips 访问端口 80 和端口 443,而它会丢弃其余端口。这个假设是否正确?如果没有,为什么不呢?
经过一番折腾,我发现我的 …
假设我从 Jetbrains.com 下载了一个像 Pycharm 这样的可执行文件。HTTP 用于传送网站的内容 - 当我下载文件时是否也使用它?我读到使用了 FTP,但也看到它已被现代浏览器禁用 - 推荐的协议是什么?
此外,如果网络中断,有时我可以继续下载而不会丢失进度。这是因为创建了一个“会话”,我可以重新加入会话并继续下载吗?在我必须从头开始下载之前,是什么决定了这段时间的持续时间?
我们知道HTTP/1.1的Host头:
所有 HTTP/1.1 请求消息都必须包含 Host 标头字段。
但是当我使用 Chrome 请求 stackoverflow.com 时,我没有找到名为 Host 的标头。
:authority: cdn.sstatic.net
:method: GET
:path: /Img/progress-dots.gif?v=679ddd617b7d
:scheme: https
accept: image/avif,image/webp,image/apng,image/*,*/*;q=0.8
accept-encoding: gzip, deflate, br
accept-language: zh-CN,zh;q=0.9
referer: https://stackoverflow.com/
sec-fetch-dest: image
sec-fetch-mode: no-cors
sec-fetch-site: cross-site
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36
Run Code Online (Sandbox Code Playgroud) 我是俄罗斯网站的爱好者。最近欧盟对其实施了禁令。他们说这是因为乌克兰战争。因此,我注册了一个俄罗斯VPS并在其上安装了一个OpenVPN服务器(使用一个流行的脚本来自动执行该过程)。我选择的DNS服务器是1.1.1.1,我认为它很聪明,所以我选择了端口443上的UDP。
然而,当我从我在欧盟的公寓作为 OpenVPN 客户端连接到它时,内容似乎仍然被阻止。我的朋友有另一个 VPN。这是NordVPN,她可以在 Mac 上毫无问题地查看内容。我使用的是带有Debian\xc2\xa011 (Bullseye) 且没有systemd 的机器。
\n为了缩小问题范围,我在VPS上通过SSH登录时使用了名为w3m的终端浏览器,并且可以通过这种方式查看内容。我可以看到,通过使用 的标准测试dnsleaktest.com,我在默认配置下出现了 DNS 泄漏。
我希望上述信息对于知情者来说可能是推断问题所在的全部信息。
\n我不太清楚俄罗斯的审查制度在技术上是如何实施的。因此,这隐含地定义了一个问题:如果我能理解审查制度是如何实施的,我希望学习如何配置我的服务器和客户端以获得访问权限。
\n可能的重复:
查找在 linux 中使用某个端口的进程
我有一个 Ubuntu Server 设置,我正在尝试设置一个想要访问端口 8080 的守护进程。当我运行该命令时,错误消息说它正被另一个进程使用。但哪一个,它没有说。我怎样才能找到哪个程序使用这个端口?
有时需要从某处下载多个文件。我特别感兴趣的协议是 HTTP,但是这个问题也与 FTP 或任何其他用于传输文件的非 P2P 协议有关。
假设服务器(例如 Rapidshare)具有无限带宽(相对于客户端),并且客户端具有 X Mb/s 的标准 Internet 连接,同时下载多个文件(多少?)会更快吗?或将它们作为队列一个接一个地下载?
哪些参数会改变你的答案?不同的互联网连接速度会有所不同吗?家庭/工作局域网怎么样?
如何在不使用 Wget 或 Curl 的情况下从命令行下载文件?
我对HTTP 的工作原理有基本的了解。我了解客户端(Web 浏览器)发出请求,服务器响应请求。但是,我不明白的是 Web 服务器如何知道客户端何时发出请求?
如果有人打电话给我,我的电话就会响起,我会收到通知。同样,网络服务器如何获得有关请求的通知?
tl;dr我想浏览http基于 的 URL,但 Firefox 不允许。
本地网络 HTTP 服务器位于http://host(端口 80),相应的 HTTPS 服务器位于https://host(端口 443)。
当我在 Firefox 地址栏中输入内容时http://host\xe2\x8f\x8e,Firefox 坚持将 URL 更改为https://host。
\n使用Web 开发人员工具->网络选项卡,我可以看到 Firefox 直接进入,https://host尽管我输入了http://host. Firefox 未从服务器接收 HTTP 300 重定向。
如何指示 Firefox 不使用http覆盖https?
\n如何指示 Firefox 连接到http://host?
在 Windows 10 上使用 Firefox 100。
\n