我想通过透明代理引导一些流量(该代理实际上位于另一台服务器上并通过 ssh 隧道连接)。
通常我可以这样做:
ipfw add forward localhost,8080 tcp from any to x.x.x.x 80
然而,fwd/forward 需要重新编译内核,我不乐意这样做。因此,我正在寻找一种不需要重新编译的解决方案。
例如,我可以以某种方式使用转移套接字来实现此目的吗?或者还有其他基本的好的解决方案吗?
答案1
不,你不能。 divert 只能与侦听使用 创建的套接字的软件一起使用IPPROTO_IPDIVERT
,但代理服务器通常侦听 TCP 端口。
您是否尝试过使用其他防火墙来实现此目的?http://wiki.squid-cache.org/SquidFaq/InterceptionProxy#Interception_Caching_packet_redirection_for_Solaris.2C_SunOS.2C_and_BSD_systems
答案2
我最近看了rinetd
( ~ports/net/rinetd
)。
这是一个非常简单的端口重定向器(从一个 IP/端口到另一个)。重定向是通过其配置文件完成的rinted.conf
:
# bindadress bindport connectaddress connectport
1.2.3.4 8080 4.3.2.1 80
Divert 通常用于更广泛的端口选择(即从 1 个接口到 natd 的所有端口选择;)。