标签: http

使用 telnet 获取网站标题

我有一个问题,是否可以使用 telnet 获取网站的标题?网站看起来像这样domain.name.server.com/~USER(只是示例)。我想通过 telnet 获取它的标题。

telnet domain.name.server.com/~USER 80 <-- 不起作用

telnet domain.name.server.com 80工作,但我需要得到〜用户。有没有可能做到这一点?

http telnet

7
推荐指数
1
解决办法
2万
查看次数

如何使用 netcat 通过 HTTP 获取 URL?

谁能告诉我为什么我bad request在执行这个命令时得到

echo -e "GET http://www.yellowpages.com.eg/Mjg3NF9VUkxfMTEwX2h0dHA6Ly93d3cubG90dXMtYWlyLmNvbV8=/Lotus-Air/profile.html HTTP/1.1\n\n" | nc www.yellowpages.com 80 
Run Code Online (Sandbox Code Playgroud)

同一个网站在浏览器中打开得很好。

http nc

6
推荐指数
2
解决办法
3万
查看次数

IPtables - 新的与新的、已建立的、相关的

让我们举个例子,假设我只允许传出的 HTTP[S] 流量通过防火墙。我知道在现实世界中我还需要允许传出 DNS 流量,但这只是一个例子。我会像这样编写 iptable 规则:

:INPUT DROP
:FORWARD DROP
:OUTPUT DROP

-A INPUT -p tcp -m multiport --sports 80,443 -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -p tcp -m multiport --dports 80,443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

这样对吗?我想知道,因为我见过有人写过这样的防火墙规则:

:INPUT DROP
:FORWARD DROP
:OUTPUT DROP

-A INPUT -p tcp -m multiport --sports 80,443 -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -p tcp -m multiport --dports 80,443 -m state --state NEW -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

传出规则NEWNEW,ESTABLISHED,RELATED …

iptables http

6
推荐指数
1
解决办法
5627
查看次数

Wget:有选择地和递归地下载文件?

关于wget、子文件夹和 index.html 的问题。

假设我在“travels/”文件夹中,这是在“website.com”中:“website.com/travels/”。

文件夹“travels/”包含很多文件和其他(子)文件夹:“website.com/travels/list.doc”、“website.com/travels/cover.png”、“website.com/travels/[1990” ] America/" , "website.com/travels/[1994] Japan/", 等等...

如何仅下载位于所有子文件夹中的所有“.mov”和“.jpg”?我不想从“travels/”中选择文件(例如不是“website.com/travels/list.doc”)

我发现一个wget命令(在 Unix&Linux Exchange 上,我不记得讨论了什么)能够从子文件夹下载只有它们的“index.html”,而不是其他内容。为什么只下载索引文件?

download wget recursive directory-structure http

6
推荐指数
1
解决办法
1万
查看次数

使用 wget 或 curl 从微软下载 Windows ISO

目的:通过命令行直接下载官方Win10_1909 iso到linux

来源:https : //www.microsoft.com/en-in/software-download/windows10ISO

选择版本和语言后得到如下64位链接,24小时有效

https://software-download.microsoft.com/pr/Win10_1909_English_x64.iso?t=77395428-650e-4e5c-8bcc-97abca347eaa&e=1583937294&h=2b05fad63d3a6e20c4c7c7c9

这通过任何 gui 浏览器或任何平台都可以正常工作,但我们需要在 linux box 中使用它

  • linux服务器当然少gui(不打算安装gui)
  • wget/curl 导致禁止下载 html 文件
  • 在 wget/curl 中将用户代理更改为 firefox 或将自定义负载添加为 curl -d '{"t": 77e897e2-a32c-419c-8f18-54770dbb5a15,"e": 1583942596,"h": 595f691df881d270 iso 文件返回禁止页面
  • 尝试过基于 linux 的下载管理器,如 aria 和 axel 它也失败了,禁止

如何仅通过命令行完成此操作?

wget http curl https

6
推荐指数
2
解决办法
8759
查看次数

发送 HTTP 标头的第一行

正常的 HTTP 请求可能如下所示:

获取/HTTP/1.1
主机:example.com

我想用自定义的方式更改此请求的第一行,例如:

FOOBAR 不是真正的 HTTP
主机:example.com

是否可以使用curl或其他工具来做到这一点,能够做到这一点?

http curl

5
推荐指数
1
解决办法
589
查看次数

为什么 wget 不能通过 ssh 隧道工作?代理阻止 ssh-client 做什么?

为了测试,我试图通过 建立从我的笔记本电脑到站点的本地 ssh 隧道ssh-server,并下载站点页面(或在浏览器中查看)。

隧道是这样制作的:

$ ssh -L 9999:www.gnu.org:80 ssh-server
Run Code Online (Sandbox Code Playgroud)

我检查隧道与服务器上的nc程序和~#字符一起工作。我检查我是否可以通过运行wgetlynx在服务器上在 ssh-server 上执行 http 请求——它们都运行没有错误。

但是当我wget --no-proxy localhost:9999在笔记本电脑上运行时,我收到错误 403。

我可以使用ssh ssh-server 'wget -O - http://www.gnu.org/' >> whatever. 但是为什么隧道不起作用?

所以我想弄清楚正在发生的事情以及代理不允许的事情。

我的猜测是代理专门阻止 ssh 客户端执行 http 请求。是这样吗?

如果是这样 - 代理如何将 ssh-client 与其他程序区分开来?它可以区分来自 ssh-client 的请求和来自另一个程序的请求吗?

以及“将 ssh 客户端屏蔽到另一个程序”(或通过代理传递的其他方式)的常用方法是什么?

PS 如果有人在评论中写了一个免费的 ssh 服务器的地址来测试 ssh 隧道和其他内容,那将会很棒。(通常 ssh 服务器不允许免费隧道。)

ssh proxy ssh-tunneling wget http

5
推荐指数
1
解决办法
3729
查看次数

将文件映射到 URL

我正在寻找一种方法来做这样的事情:

some_tool --go-to-background http://server.com/~me/uber_vimrc ~/.vimrc
Run Code Online (Sandbox Code Playgroud)

之后,读取~/.vimrc将提供从该 URL 下载的数据。只读映射就足够了,尽管支持写入(通过 REST API 或其他方式)会很酷。使用一些现有的实用程序可以做到这一点吗?

我所追求的关键方面是根据需要将单个 URL 映射到用户帐户中的单个文件。需要一个系统守护进程来支持这一点是可以的,其他方案如ftpscp也可以,不必是http(s)


如果没有现有的实用程序,那么自己实现它的一般机制是什么?作为一种可能的方式,我想到了实现网络通信部分的 FUSE 文件系统的符号链接。有没有更简单的方法?

linux http files

5
推荐指数
1
解决办法
698
查看次数

OpenBSD httpd.conf 条件

注意:这个问题是关于内置的 OpenBSD http 服务器的命名httpd及其配置。它不适用于任何其他网络服务器。

\n\n

是否可以对新的 OpenBSD http 服务器进行运行时条件配置httpd?na\xc3\xafve 的例子是

\n\n
server "myserver.com" {\n  if $REMOTE_ADDR == "127.0.0.1" block drop\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

禁止本地访问。

\n\n

另一个也许更相关和更具启发性的例子是,我正在实现一个从特定位置运行的远程服务的接口,那么我将受益于类似的东西

\n\n
remote_service1_ip = "192.168.0.1"\nserver "myserver.com" {\n  location "/remote_service1_api/" {\n    if $REMOTE_ADDR != $remote_service1_ip block drop\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果这是可能的,正确的做法是什么?

\n\n

man更一般地说 - OpenBSD 的页面httpd.conf中指定了许多预定义的宏,如下所述block

\n\n
$DOCUMENT_URI\n    The request path.\n$QUERY_STRING\n    The optional query string of the request.\n$REMOTE_ADDR\n    The IP address of the connected client.\n$REMOTE_PORT\n    The TCP source port …
Run Code Online (Sandbox Code Playgroud)

openbsd webserver http openbsd-httpd

5
推荐指数
1
解决办法
1506
查看次数

如何对 HTTP 代理使用身份验证和协商(例如 Kerberos)?

一般接受的是使用HTTP_PROXY/HTTPS_PROXY环境变量来指定代理服务器的使用。身份验证可以包含在该 URL 中,例如HTTP_PROXY=http://user:pass@myproxy.mydomain.tld:3128/

但是,我使用 Kerberos SSO 通过代理进行身份验证。我该如何配置呢?因此,假设 Squid 代理服务器配置如下所述: https: //wiki.squid-cache.org/ConfigExamples/Authenticate/Kerberos。它描述了 Windows 客户端如何通过协商使用代理身份验证,但没有信息如何配置 Linux/Unix 客户端。

对于 cURL,使用--proxy-negotiate -u :可以解决问题,例如:

HTTPS_PROXY=http://myproxy.mydomain.tld:3128/ curl --proxy-negotiate -u : https://www.google.com
Run Code Online (Sandbox Code Playgroud)

如何告诉非 cURL 应用程序使用此机制?例如 Debian/Ubuntu APT 带有Acquire::http::Proxy "http://myproxy.mydomain.tld:3128/";?

我发现cntlm充当中间另一个本地运行的代理,促进来自本地主机的未经身份验证的连接。但是,这仅适用于 NTLM,而我需要 Kerberos。Squid 是否能够使用 Kerberos 作为客户端进行连接?众所周知,在代理服务器的传出连接上找到身份验证功能似乎非常困难。所有这些似乎都集中在侦听套接字上的身份验证功能上。

http-proxy proxy http squid kerberos

5
推荐指数
0
解决办法
1万
查看次数