如何在 Linux 上将某个主机路由到具有某个端口的其他主机?

如何在 Linux 上将某个主机路由到具有某个端口的其他主机?

假设我想将所有对 google.com 的请求路由到 localhost:333 ,该怎么做?

答案1

岸墙路线。(常问问题

您想要将所有本地 google.com 连接请求重定向到在本地区域 127.0.0.1 中运行并监听端口 333 的服务器。您的本地接口是 eth1。

免责声明;我还没有对 Shorewall 进行过这样的操作,因此修改了一个示例 Squid 服务器设置:

  1. 将此条目添加到您的 /etc/shorewall/providers 文件中。

    #NAME   NUMBER  MARK    DUPLICATE       INTERFACE       GATEWAY         OPTIONS
    foo     1       202     -               eth1            127.0.0.1     loose
    
  2. 在 /etc/shorewall/tcrules 中添加:

    #MARK    SOURCE              DEST        PROTO    DEST
    #                                                 PORT(S)
    202:P    net:google.com   0.0.0.0/0   tcp      80
    
  3. 在 /etc/shorewall/interfaces 中:

    #ZONE   INTERFACE    BROADCAST    OPTIONS
    loc     eth1         detect       routeback          
    
  4. 在本地主机上,安排在网络连接后执行以下命令

    iptables -t nat -A PREROUTING -i eth0 -d ! 127.0.0.1 -p tcp --dport 80 -j REDIRECT --to-ports 333          
    

答案2

如果您只想在一台机器上执行此操作,您可以编辑:

/etc/hosts 

并添加

google.com 127.0.0.1

然后重启网络服务

/etc/rc.d/init.d/network restart

但这会将正常的网络流量重定向到 localhost:80。

相关内容