机器作为路由器和本地设备之间的网关

我有一台机器,我想用作路由器之间的网关

例如:

  1. networking上的几台机器想访问www.google.com可以说
  2. 把他们的请求发给我
  3. 我把它们发送到我的路由器
  4. 从我的路由器接收响应
  5. 将它们发回给客户

我怎么能在unix的环境中(也许使用iptables)呢?

您将要启用IP转发,然后设置您的路由表或使用IP表进行NAT。 以下是有关如何设置NAT的信息:

  • echo 1 > /proc/sys/net/ipv4/ip_forward

  • 编辑/etc/sysctl.conf并将net.ipv4.ip_forward = 0改为net.ipv4.ip_forward = 1

  • /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    /sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
    /sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

我相信你可以放弃MASQUERADE线,如果你想转发和没有NAT。

除了HTTP请求的具体示例以外,其余的详细信息表明您需要一个实际的网关,而不仅仅是一个代理。

在我看来,你需要运行像squid这样的HTTP代理服务器。 你有两个select:

  1. 在所有机器上configuration客户端浏览器以使用此代理服务器。 在这种情况下,所有的请求将被他们直接发送到代理服务器,代理服务器将把请求发送到真实的服务器,并将回复发送给他们。
  2. 在客户端网关上使用iptables将所有传出的HTTP请求透明地redirect到代理服务器。