看板FreeBSD
标 题Re: [问题] 转址?封包?重新导向?
发信站交大资讯次世代BS2 (Sat Jan 10 14:39:26 2009)
转信站ptt!news.ntu!mars.scc.ntnu!ctu-peer!news.nctu!csnews.cs.nctu!news.cs.n
※ 引述《[email protected] (ccy.twbbs.org)》之铭言:
> 目前有两部电脑A,B如下:
> Client -> A -> B
> 问题是这样
> 假设 A IP为 210.59.229.19,而
> B IP为 122.252.32.134
> 假设本人管理的电脑为A,Client端为一般使用者,B电脑为跑Apache的服务。
> 因 A电脑 并无架设Apache,故希望让使用者能连到A IP (port为80)後,
> 将封包重新导向至B IP (port 80)。
> 之前我有用过socket将连至 A IP (80)的连线,导向至 B IP (80),
> 但由B主机中发现,连入网页的记录都是记录成 A的IP。
> 所以後来便又将socket关掉。
> 我用的OS为 FreeBSD-7.0,请问有啥较简单方法,可以让使用者在连线到A电脑,
> 重新导向至B电脑时,可以使B电脑的记录为使用者的IP,而不是A电脑的IP?
> 谢谢。
deer 上的没转出来,到 bs2 上再贴一次,顺便补充一些东西。
==
你要在 A 的伺服气上架 haproxy 之类的软体,在 HTTP header 里加上
X-Forwarded-For 这个栏位。
然後在 B 主机的 apache2 上装 mod_rpaf2,或是 mod_extract_forwarded2,
认定 A 送过来的 X-Forwarded-For 是合法的位置。
如果 B 主机上是 lighttpd 或 nginx,都有对应的设定可以将
X-Forwarded-For 转换掉。
==
# mod_extract_forwarded2 example
AddAcceptForwarder 10.1.1.1
AddAcceptForwarder 10.1.1.2
AddAcceptForwarder 10.1.1.3
AddAcceptForwarder 10.1.1.4
AddAcceptForwarder 10.1.1.5
# mod_rpaf2 example
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 10.1.1.1 10.1.1.2 10.1.1.3 10.1.1.4 10.1.1.5
RPAFheader X-Forwarded-For
两个都用过很长一段时间,应该没什麽问题。
--
※ Origin: 交大次世代(bs2.to)
◆ From: bsd2.cs.nctu.edu.tw