跳转至内容

Linux 网络/IP 透明代理

来自维基教科书,自由的教学读物

IP 透明代理

[编辑 | 编辑源代码]

IP 透明代理是一种功能,允许您将指向另一台机器的服务器或服务的连接重定向到此机器上的服务。通常这在您使用 Linux 机器作为路由器,并且还提供代理服务器的情况下很有用。您会将所有指向该远程服务的连接重定向到本地代理服务器。

内核编译选项


      Code maturity level options --->
          [*] Prompt for development and/or incomplete code/drivers
      Networking options --->
          [*] Network firewalls
          ....
          [*] TCP/IP networking
          ....
          [*] IP: firewalling
          ....
          [*] IP: transparent proxy support (EXPERIMENTAL)


透明代理功能的配置使用 ipfwadm 命令完成

一个可能很有用的例子如下

      root# ipfwadm -I -a accept -D 0/0 telnet -r 2323

此示例将导致对任何主机上的 telnet 端口 (23) 的任何连接尝试都重定向到此主机上的端口 2323。如果您在此端口上运行服务,则可以转发 telnet 连接、记录它们或执行任何适合您需求的操作。

一个更有趣的示例是通过本地缓存重定向所有 http 流量。但是,代理服务器使用的协议与原生 http 不同:当客户端连接到 www.server.com:80 并请求 /path/page 时,当它连接到本地缓存时,它会联系 proxy.local.domain:8080 并请求 www.server.com/path/page。

要通过本地代理过滤 http 请求,您需要通过插入一个称为 transproxy 的小型服务器来调整协议(您可以在万维网上找到它)。您可以选择在端口 8081 上运行 transproxy,并发出此命令

      root# ipfwadm -I -a accept -D 0/0 80 -r 8081

然后,transproxy 程序将接收所有旨在到达外部服务器的连接,并在修复协议差异后将它们传递给本地代理。

华夏公益教科书