标签: proxy

使用 Postfix 代理邮件到不同的 smtp 服务器

如何根据收件人地址将(或代理)邮件转发到不同的 smtp 服务器?

我有一台带有 SMTP(后缀)服务器侦听端口 25 的机器。我想使用 Lamson(http://lamsonproject.org/)来处理一些传入的邮件和一些我想让 postfix 来处理的邮件。

我的想法是设置 Lamson 以侦听不同的端口,假设 localhost:10025。然后我设置 postfix 通过侦听端口 25 来捕获所有邮件。

如何配置 Postfix 以将某些邮件代理到 10025 上的 Lamson 并自行处理所有其他邮件?

postfix proxy forwarding

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

通过 SOCKS 代理 SSH?(客户端 = OpenSSH OS X)

我不确定这个问题是否最适合在 ServerFault 上或在 SuperUser 上。从逻辑上考虑,我认为这是一个系统管理员问题,所以我把它放在这里,如果模组认为它应该移动,那么为猜错道歉!

无论如何 - 我有一个异地服务器,我被困在一个私有 IP 上,除了通过 HTTP 代理或 SOCKS 4/5 代理之外无法访问网络。我正在运行 OS X,我希望来自终端的 ssh 命令以某种方式通过这两个代理之一工作以到达远程服务器。远程服务器上的 SSH 端口是非标准的,但我怀疑这会有很大的不同。

ssh proxy mac-osx

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

如果代理目标不可用,Nginx 本地回退错误页面

我正在通过 Nginx 服务器将请求转发到本地服务。我现在尝试完成的是回退到本地错误页面,以防服务不可用。

我目前的配置是

server {
    listen       80;
    server_name  "";

    location / {
        proxy_pass  http://127.0.0.1:9080;
        proxy_set_header    Host $host;
        proxy_set_header    X-Real-IP   $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_connect_timeout 1;
        proxy_next_upstream error timeout http_500 http_502 http_503 http_504 http_404;
        proxy_intercept_errors on;
    }

    error_page 501 502 503 @maintenance;
    location @maintenance {
            root   /locust/www/fallback/htdocs;
            index  index.html index.htm;
    }
}
Run Code Online (Sandbox Code Playgroud)

代理可以工作,但是一旦我在 9080 上设置服务不可用,我的维护位置的 index.html 就不会显示。

关于此配置有什么问题的任何建议?

nginx proxy

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

缺少 Internet Explorer 9 和 10 组策略首选项

我有一个域控制器网络(Windows Server 2008 R2,在 2003 森林/域级别上运行),客户端当前正在从 WinXP Pro 迁移到 Win7 Pro。

我需要控制 Internet Explorer 的代理设置:我建立了一个适用于 Windows XP + Internet Explorer 7 & 8,但不适用于 Windows 7 + Internet Explorer 10 & 11 的策略

这是有道理的,因为您必须使用策略首选项而不是管理模板设置代理

但是,当我转到“首选项”并尝试选择“新建”时,我只能选择 5 和 6、7 和 8。

IE 5-8
(来源:technet.com

我希望还有 IE9 和 IE10(我知道IE11 使用 IE10 设置

IE 5-10

我尝试使用 IE8 策略应用代理设置,这在 XP 客户端上运行良好,但在 7 个客户端上运行良好:代理设置为空。

我有一个有效的中央 ADMX 存储 (\[FQDN]\SYSVOL[FQDN]\Policies\PolicyDefinitions),我首先复制了一组 Windows 2008 R2 + IE 10 策略,然后复制了一组 Windows 2012 R2 + IE 11 政策。

以防万一这是本地服务器问题,我备份然后将 …

proxy internet-explorer group-policy windows-server-2008-r2

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

如果后端关闭,nginx 使用代理缓存

如果后端服务器关闭,我需要 nginx 代理使用缓存:

这是我的配置。但似乎是 nginx 使用缓存而不检查后端服务器。

http {

  # ...

  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_cache_path /tmp/nginx levels=1:2 keys_zone=tmpzone:10m inactive=60m;
  proxy_cache_key "$scheme$request_method$host$request_uri";


  server {
    server_name _;

    location / {
      proxy_connect_timeout 5s;
      proxy_read_timeout 5s;
      proxy_cache tmpzone;
      proxy_cache_valid      200 304 1d;
      proxy_cache_use_stale  error timeout invalid_header updating http_500 http_502 http_503 http_504;
      proxy_set_header X-Real-IP  $remote_addr;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header Host 'www.example.com';
      proxy_pass http://www.example.com;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

问题是,如果后端服务器已启动,我如何绕过代理缓存?当后端服务器启动时,我的代理服务器根本不使用缓存。

nginx failover proxy cache

11
推荐指数
1
解决办法
5950
查看次数

如何为 Squid 代理启用 SOCKS5?

Squid'd 默认是作为 HTTP 代理运行;但是,此常见问题解答https://docstore.mik.ua/squid/FAQ-4.html#ss4.10说“将 Squid 与 socks5 一起使用无需更改。只需将通常的 -Dbind=SOCKSbind 等添加到编译行和 -lsocks 到链接行。”

这听起来很棒,除了我不知道基本语法之外我不会编写 c/c++ 代码,所以通常当我编译某些东西时,它是 ./configure 和 ./make。有时我必须修改 makefile 的编译行,但我不确定此处是否链接(尽管我了解链接的概念)。

通过“添加通常的 X 等”来准确解释要做什么也有点混乱,所以如果有人能在这里指出确切的步骤,这将是一个很大的帮助,因为它们似乎没有在任何地方详细说明。听起来并不难。

我已经为 HTTP 连接编译并正确运行了鱿鱼,但必须支持 SOCKS。

proxy squid socks

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

如何设置持久的 TCP 性别更改代理?

我有一个提供程序 (A),它想通过传入的 TCP 连接向我们发送数据。不幸的是,消费服务 (B) 无法接收入站 TCP 连接。此外,它没有静态 IP,这是另一个要求。

解决此问题的一种方法是将传入 TCP A 端口连接到另一个 TCP 端口 B 的服务,以便消费者可以与 B 建立出站连接。

这不是一个独特的问题[1] [2],使用 socat 我可以做出非常接近我想要的东西:

socat -d -d -d -u TCP4-LISTEN:PORT-A,reuseaddr TCP4-LISTEN:PORT-B,reuseaddr

但是,这存在以下问题:

  • 如果 B 断开连接,则无法重新连接。使用TCP4-LISTEN:PORT-B,reuseaddr,fork,可以连接但不接收数据。
  • 在 A 建立连接之前 B 无法连接(可克服)
  • 只能建立一个连接到PORT-B(可克服的)

有没有办法调整命令,使其成为“永久”并抵抗失败?

proxy tcp socat

11
推荐指数
1
解决办法
2108
查看次数

将 Squid 配置为 HTTPS 转发代理?

这是我的问题的一些背景:

  • 我有一个在 Heroku 上运行的 Web 服务,具有动态 IP 地址。Heroku 上的静态 IP 不是一种选择。
  • 我需要连接到防火墙后面的外部 Web 服务。操作外部 Web 服务的人员只会将防火墙打开到特定的静态 IP。

我尝试的解决方案是在具有静态 IP 的单独服务器上使用 Squid 将代理请求从 Heroku 转发到外部服务。这样,外部服务总是看到代理服务器的静态 IP,而不是 Heroku 服务的动态 IP。

由于我的代理服务器不能依赖 IP 地址进行身份验证(这就是开始的问题!),它必须依赖用户名和密码。此外,用户名和密码不能以明文传输,因为如果攻击者要拦截明文,那么他们可以冒充我连接到我的代理,使用我代理的静态 IP 发出出站请求,从而逃避外部Web 服务的防火墙。

因此,Squid 代理必须只接受通过 HTTPS 的连接,而不是 HTTP。(与外部 Web 服务的连接可能是 HTTP 或 HTTPS。)

我在 CentOS 6.5.x 上运行 Squid 3.1.10,这是我squid.conf目前的情况。仅出于故障排除目的,我暂时启用了 HTTP 和 HTTPS 代理,但我只想使用 HTTPS。

#
# Recommended minimum configuration:
#
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1

# Example …
Run Code Online (Sandbox Code Playgroud)

proxy https squid heroku

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

使用 haproxy 将多个子域定向到单个后端

我正在使用 haproxy 为在单个服务器上运行的多个应用程序直接路由。对于正在使用的域之一,有几十个子域应该指向少数应用程序之一。

目前,我在单独的一行中列出了所有这些子域。我的前端配置如下所示:

frontend http-in
    bind *:80

    acl alpha     hdr(host) -i alpha.com
    acl beta      hdr(host) -i beta.com
    acl gamma00   hdr(host) -i apple.gamma.com
    acl gamma01   hdr(host) -i banana.gamma.com
    acl gamma02   hdr(host) -i cherry.gamma.com
    acl gamma03   hdr(host) -i durian.gamma.com
    acl gamma04   hdr(host) -i elderberry.gamma.com
    acl gamma05   hdr(host) -i fig.gamma.com
    acl gamma06   hdr(host) -i grapefruit.gamma.com
    acl gamma     hdr(host) -i gamma.com

    use_backend a if alpha
    use_backend b if beta
    use_backend sub1 if gamma00
    use_backend sub1 if gamma01
    use_backend sub1 if gamma02
    use_backend sub2 …
Run Code Online (Sandbox Code Playgroud)

proxy load-balancing haproxy

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

如何使用 nginx 在一个端口上代理多个 tcp 流

使用 nginx http 指令,您可以在同一个端口上拥有多个具有不同名称的服务器:

server {
    listen       80;
    server_name server1.example.com;
    location / {
      proxy_pass http://server1.example.com;
    }
}
server {
    listen       80;
    server_name server2.example.com;
    location / {
      proxy_pass http://server2.example.com;
    }
}
Run Code Online (Sandbox Code Playgroud)

是否可以像使用 http 一样在同一端口上使用不同名称的 nginx 代理多个 mysql 服务器?它们不是集群或任何东西的一部分。有不同的,不相关的表。

stream {
  upstream db1.example.com {
    server db1.example.com:3306;
    #server_name db1.example.com; "server_name" directive is not allowed here
  }
  upstream db2.example.com {
    server db2.example.com:3306;
  }

  server {
    listen 3306;
    proxy_pass db1.example.com;
  }
  #duplicate "3306" address and port pair
  #server { listen 3306; proxy_pass db2.example.com; }


}
Run Code Online (Sandbox Code Playgroud)

nginx proxy stream

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