考虑一个包含 1 个路由器 (192.168.1.1) 和客户端 (192.168.1.x) 的小型网络。路由器 (OpenWRT) 为客户端提供以太网 LAN 和 WiFi,以连接到 Internet。
现在,我想在客户端和路由器之间使用服务器。这样客户端首先逻辑连接到服务器,服务器将所有流量从连接的客户端路由到路由器。所有客户端和服务器都只连接到路由器。服务器只有 1 个 eth0 接口。
[Clients]----[Server]----[Router]----[Internet]
如何配置此设置?我还希望只有一些特定的客户端在他们自己和路由器之间使用服务器。所有其余的客户端不应将服务器用作“网关”或“隧道”。
例如,是否可以在客户端的 IP 设置中使用服务器的 IP 作为默认网关。并将服务器配置为只接受来自客户端的所有传入流量并将其路由到路由器?
编辑:如何设置?我找不到任何教程。
你有几个选择
代理- 如果您对有限数量的协议(例如 HTTP)感兴趣,您可以将服务器设置为代理服务器(例如使用Squid)。有一些方法可以设置透明代理,但最简单的可能是显式配置客户端应用程序以使用代理并在路由器的防火墙中强制执行此操作(例如,仅允许 HTTP 与代理服务器之间的往来)。
一个武装路由器- 您可以将您的服务器配置为一个武装路由器,然后再次将外部路由器配置为仅接受来自内部路由器的流量。
这些情况中的任何一种都允许您在服务器上使用数据包捕获或其他工具。
正如你所说你
那么您应该将客户端上的默认网关设置为服务器地址。服务器应该允许路由(通过启用 net.ipv4.ip_forward
echo 1 > /proc/sys/net/ipv4/ip_forward
)并将其默认网关设置为 openwrt 路由器。服务器、客户端和内部路由器接口必须在同一网络上。请注意,这根本不安全,因为客户端可能只是通过 openwrt 路由器直接发送流量。