Tommy 碎碎念

Tommy Wu's blog

« 上一篇 | 下一篇 »

一個小錯誤, 讓 email 停擺快兩天
post by tommy @ 30 六月, 2006 09:10
在 6/28 晚上, 因為要連線回家裡的伺服器測試 Zend Studio Server 除錯的功能時, 加上了一個 OpenVPN 的服務, 讓我可以先用 OpenVPN 連線, 然後再使用 Zend Studio來除錯.

由於會經由 OpenVPN 的關係, 所以很單純的想,  只要把 VPN 進來的封包, 如果要經由伺服器送出的話, 就加上 MASQUERADE 做轉換, 就應該可以讓我也連到其他內部的機器了. 所以, 就下了這麼一個指令:

iptables -t nat -A POSTROUTING -j MASQUERADE

結果, 上頭的指令, 造成連主機上頭連線到 localhost 的動作, 也被做了 MASQUERADE, 而且... 並不是用 127.0.0.1 當成來源的 IP, 因為我的 postfix 第二個用來接收由 amavisd-new 傳回信件的 session, 是只接收 127.0.0.1/8 的連線... 所以, 信都被退回去了.

今天發現沒有收到什麼信件, 而且系統管理的帳號有收到近千封的退信通知, 才發現這個問題. 剛剛把指令改成:

iptables -t nat -A POSTROUTING -o eth+ -j MASQUERADE

之後, 總算是正常了.


順便說一下, 那個 Zend Studio 的 Client/Server 之間的除錯溝通方式, 是你在 Client 端指定某個 client 的 IP (或自己設定或讓 Zend Studio 自己選) 來連線到 Server 的 web 介面, 然後在那個連線的 URL 會把 IP 也傳過去. Server 在收到之後, 產生一個到該 IP tcp port 10000 的連線與 client 溝通.

所以, 如果不在同一個網路上, 會有一些問題:

  • 如果透過 firewall 或一些 NAT 的動作, 那個 Client 取得的是機器的內部 IP, 所以 Server 無法與該 IP 連線.
  • 就算完全無 firewall 或 NAT 動作, Client 正常的送出可連線的正確 IP, 在 server 上頭,  都當也不會開放所有的 IP 都可以用來除錯, 每次連線的 IP 若不同, 每次都要改 Server 上頭的設定.
因為這樣, 所以才用了 OpenVPN 來做出一個內部網路的環境使用.

Del.icio.us Furl HEMiDEMi Technorati MyShare
迴響
暱稱:
標題:
個人網頁:
電子郵件:
authimage

迴響

  

Bad Behavior 已經阻擋了 233 個過去 7 天試圖闖關的垃圾迴響與引用。
Power by LifeType. Template design by JamesHuang. Valid XHTML and CSS