我有一个问题,是否可以使用 telnet 获取网站的标题?网站看起来像这样domain.name.server.com/~USER(只是示例)。我想通过 telnet 获取它的标题。
telnet domain.name.server.com/~USER 80 <-- 不起作用
telnet domain.name.server.com 80工作,但我需要得到〜用户。有没有可能做到这一点?
谁能告诉我为什么我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[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)
传出规则NEW和NEW,ESTABLISHED,RELATED …
关于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”,而不是其他内容。为什么只下载索引文件?
目的:通过命令行直接下载官方Win10_1909 iso到linux
来源:https : //www.microsoft.com/en-in/software-download/windows10ISO
选择版本和语言后得到如下64位链接,24小时有效
这通过任何 gui 浏览器或任何平台都可以正常工作,但我们需要在 linux box 中使用它
如何仅通过命令行完成此操作?
正常的 HTTP 请求可能如下所示:
获取/HTTP/1.1 主机:example.com
我想用自定义的方式更改此请求的第一行,例如:
FOOBAR 不是真正的 HTTP 主机:example.com
是否可以使用curl或其他工具来做到这一点,能够做到这一点?
为了测试,我试图通过 建立从我的笔记本电脑到站点的本地 ssh 隧道ssh-server,并下载站点页面(或在浏览器中查看)。
隧道是这样制作的:
$ ssh -L 9999:www.gnu.org:80 ssh-server
Run Code Online (Sandbox Code Playgroud)
我检查隧道与服务器上的nc程序和~#字符一起工作。我检查我是否可以通过运行wget和lynx在服务器上在 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 服务器不允许免费隧道。)
我正在寻找一种方法来做这样的事情:
some_tool --go-to-background http://server.com/~me/uber_vimrc ~/.vimrc
Run Code Online (Sandbox Code Playgroud)
之后,读取~/.vimrc将提供从该 URL 下载的数据。只读映射就足够了,尽管支持写入(通过 REST API 或其他方式)会很酷。使用一些现有的实用程序可以做到这一点吗?
我所追求的关键方面是根据需要将单个 URL 映射到用户帐户中的单个文件。需要一个系统守护进程来支持这一点是可以的,其他方案如ftp或scp也可以,不必是http(s)。
如果没有现有的实用程序,那么自己实现它的一般机制是什么?作为一种可能的方式,我想到了实现网络通信部分的 FUSE 文件系统的符号链接。有没有更简单的方法?
注意:这个问题是关于内置的 OpenBSD http 服务器的命名httpd及其配置。它不适用于任何其他网络服务器。
是否可以对新的 OpenBSD http 服务器进行运行时条件配置httpd?na\xc3\xafve 的例子是
server "myserver.com" {\n if $REMOTE_ADDR == "127.0.0.1" block drop\n}\nRun Code Online (Sandbox Code Playgroud)\n\n禁止本地访问。
\n\n另一个也许更相关和更具启发性的例子是,我正在实现一个从特定位置运行的远程服务的接口,那么我将受益于类似的东西
\n\nremote_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}\nRun Code Online (Sandbox Code Playgroud)\n\n如果这是可能的,正确的做法是什么?
\n\nman更一般地说 - OpenBSD 的页面httpd.conf中指定了许多预定义的宏,如下所述block:
$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) 一般接受的是使用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 作为客户端进行连接?众所周知,在代理服务器的传出连接上找到身份验证功能似乎非常困难。所有这些似乎都集中在侦听套接字上的身份验证功能上。