CentOS Port Forwarding 保留 IP來源 - Linux

Table of Contents

我的環境是 CentOS 6.3
將此電腦作為 最上層的 ROUTE

使用 ppp0 中華電信取得實體IP
eth0 是 192.168.1.1

我想做個流程是 將 ppp0 PORT 80 WWW服務 的資料轉送到 區網內一台主機

Internet(port 80)-> R(CentOS) -> S(Ubuntu)

也就是將 port 80 轉送到 區域網路 192.168.1.10:80

我有使用 iptables 的 DNAT 與 SNAT 方式成功將 WWW 服務轉到 區域網路的電腦
也可以正常運作整個WWW的服務

但是隨即發現一件事....

不管是 PHP $_SERVER['remote_addr'] 或是 /var/apache2/logs/access.log

來源IP全部是我的 R(CentOS) 192.168.1.1

我的iptables內容(部分):

-A PREROUTING -p tcp -m tcp --dport 80 -j DNAT \
--to-destination 192.168.1.10:80
-A POSTROUTING -m mark --mark 0x1 -j SNAT \
--to-source 192.168.1.1

我有想過是 --to-source 的問題...
但是改過實體IP(主機端的或瀏覽者的)

全部就連不上了...連 access.log 內都沒紀錄

爬文爬了非常多始終找不到答案....

想請問有甚麼方法或是甚麼關鍵字嗎~~~

感謝各位大大了......

--

All Comments

Madame avatarMadame2012-12-29
xforward類的套件可以試試 但在你的環境未必有效
Ida avatarIda2013-01-01
你在R已經用iptables把來源ip替換掉了,後端自然不會紀錄,你
Tristan Cohan avatarTristan Cohan2013-01-02
可以用apache等來轉發,並帶入來源ip.