首先,我的设置是一台 Ubuntu 笔记本电脑和一台 Ubuntu 服务器。
我的本地笔记本电脑上有一个程序需要访问某个 Web 服务(我们称之为http://someserver.com/someservice123)。现在这个服务有一个防火墙,它只允许从我服务器的 IP 访问。
我可以在笔记本电脑和服务器之间使用某种类型的 SSH 隧道,以便当笔记本电脑上的 python 脚本向http://someserver.com/someservice123发送请求时,该服务会看到来自我服务器 IP 的请求?
我知道它看起来像:
ssh -N -R 80:localhost:80 user@myserver
Run Code Online (Sandbox Code Playgroud)
但我不确定。
我们阻止了 Google Analytics(公司政策)。我们有一些 3rd 方 Windows 应用程序可以在用户登录或打开帮助时 ping Google Analytics。不幸的是,由于我们阻止了 Google Analytics,这些功能不起作用......
我已经联系了供应商 (AutoDesk),但到目前为止,他们唯一的解决方案是取消阻止 Google Analytics。
我正在寻找一种方法来欺骗应用程序认为 Google Analytics 正在工作,即使它被阻止。想法?
我现在正在为我们的移动部门准备一个自动化测试实验室,主要由安卓设备组成。
对于第一阶段,我需要 HTTP 设备嗅探,我无法在设备上执行此操作,因为它们并非全部扎根,并且并非所有设备都是 4.0 及更高版本,因此它们可以使用基于 VPN 的解决方案。
我正在考虑一个将在设备 wifi“高级设置”中定义的代理,并且应该使用请求响应头 + 正文创建 .txt 文件(因为它没有特殊格式并且是纯文本应该对我来说很好用) .
如果需要,我将在稍后解决 HTTPS。
我的问题是哪个代理服务器可以最快地为此类操作设置和编写脚本?我想一次可以发出请求的设备不会超过 10-15 个,在我的设置中负载不会有太大问题,但确保每个设备都有自己的数据打印到文件中。
我知道squid 存在,tinyproxy 我知道apache 有一个proxy_mod 可以做到这一点,不确定它是否适合我的需要。服务器机器是 linux,所以没有提琴手会来帮助我。
我有a.b域(例如)并希望username.github.io/project在a.b/c. 这意味着我还想将我的浏览器 url 保留a.b/c为username.github.io/project.
我在 nginx 模块中有以下设置
location /c {
proxy_pass http://username.github.io/project;
proxy_redirect http://username.github.io http://a.b;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
}
Run Code Online (Sandbox Code Playgroud)
如果我更改proxy_set_header Host $http_host为proxy_set_header Host $proxy_hostor $host,它只是重定向到http://username.github.io/project我不想要的。我能怎么做?
我想通过 nginx 代理将 IMAP 客户端请求发送到 IMAP 后端。根据mail_auth_http模块,auth_http必须使用指令来验证客户端。但究竟是什么目的auth_http,为什么不能简单地将认证过程转发到IMAP后端?
据我所知,auth_http指向一个使用自定义 HTTP 协议的身份验证脚本,以确定将使用哪个后端等,并完全跳过基于 IMAP 的实际身份验证。我对么?
如果有人可以发布一个实际示例,我将不胜感激。
我对DNS 解析和 Web 浏览器如何工作的理解如下:
如果我到目前为止所说的任何内容不准确或具有误导性,或者遗漏了任何主要组件,请首先纠正我!
假设我对 DNS 解析和 IP 地址查找的理解或多或少处于正轨,那么我有以下问题:
浏览器将域名解析为 IP 地址(通过 DNS)后,会与该 IP 地址建立直接 HTTP 连接。 这样做时,有没有参考任何最初请求的URL?
换句话说, sayblah.example.com被解析为一个 IPv4 地址1.2.3.4。对 的请求http://blah.example.com/fizz将被转换为对 的请求http://1.2.3.4:80/fizz。我的问题是:在第二个请求(直接引用 IP 地址)中,是否有任何标头/元数据引用blah.example.com?
我查看了Wikipedia 的标准 HTTP 请求标头列表,令我沮丧的是,找不到任何突出的标头。我想我有点希望像这样的标题Requested-URL,等等。
必须有某种方式将第二个 HTTP 请求绑定到最初请求的名称,否则我认为代理或负载平衡器永远无法工作。
我们想将 Apache 代理收到的请求发送到所有一组下游服务器(实际上,也是代理,但我认为这并不重要)。
我们知道,由于各种原因(该 IP 上的服务器不存在、未在正确的端口上侦听或凭据错误),除最多一个之外的所有请求都会失败。
我们知道,对于一台服务器,请求应该可以工作(但可能不会 - 服务器可能已关闭电源、无法正常工作、过载等)。我们不知道这将用于任何一个请求的服务器。
所以我们想返回一个正确的响应,如果它发生,或者如果不应该返回任何错误响应(或固定的失败响应)。
有任何想法吗?如果我们需要从头开始编写,它并不是最复杂的应用程序,但如果可以,我们更愿意使用 Apache(我们的解决方案中已经有了它)。
我有一台 linux 机器,它通过 openVPN 连接路由其整个互联网流量。它被明确配置为以这种方式工作。
但是,该机器有一些应用程序不应使用 VPN 连接 (tun+) 并通过开放连接 (eth0)。
由于它不是基于目标 ip 的路由,我的第一个不过是创建一个本地 socks5 代理,应用程序应该使用它来避免 openVPN 通道。但是,我使用 ssh -D 或其他 sw) 执行此操作的尝试失败了(可能是我的错),我现在想知道是否有其他更好的解决方案。
我正在尝试通过网关连接到 EC2 实例。
如果我连接到网关
local> ssh gateway
Run Code Online (Sandbox Code Playgroud)
然后我可以在没有密码的情况下连接到 EC2
gateway> ssh ec2 # works
Run Code Online (Sandbox Code Playgroud)
但是,尝试通过代理连接似乎需要身份文件。
Host gateway
HostName <gateway>
Host ec2
HostName ec2-<ec2>.compute.amazonaws.com
ProxyCommand ssh gateway -W %h:%p
local> ssh ec2
Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)
我认为 ProxyCommand 基本上是将我登录到网关,然后登录到最终目的地。如果是这样,当网关设置为不需要公钥时,为什么它会要求我提供公钥?如何以与 ssh 进入网关然后 ssh 进入 ec2 相同的方式连接到 ec2 实例?
编辑:rsync 正常工作(不要求提供密钥文件)
rsync -pthrvz --rsync-path=/usr/bin/rsync --rsh='ssh gateway ssh' . ec2:/path
Run Code Online (Sandbox Code Playgroud)
ssh -v 输出 gateway> ssh ec2
gateway> ssh -v ec2
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过 nginx 为我的节点应用程序构建一个代理,认为如果节点应用程序失败或在端口上不可用,这会给我错误页面。
节点应用程序继续运行127.0.0.1:1337,我正在收听mydomain:8080并转发它。
server {
listen 8080;
server_name mydomain;
access_log /log/path/logging.log;
root /path/to/root/;
error_page 400 401 402 403 404 500 501 502 503 504 /error/index.html;
location / {
proxy_redirect off;
proxy_pass_header Server;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Scheme $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_connect_timeout 5;
proxy_read_timeout 240;
proxy_intercept_errors on;
proxy_pass http://127.0.0.1:1337;
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我关闭节点应用程序并请求mydomain:8080. 不过,这是 nginx 的预期行为。我想要的是一个我可以定义的页面,该页面将在节点应用程序的服务关闭时显示。
任何想法如何做到这一点?