2013-02-04 30 views
0

我有一個新的Linux服務器(Debian 6.0)與數據庫(MySQL),像往常一樣通過端口3306訪問。端口重定向不起作用(80-> 3306)

現在,我想訪問一些用戶的數據庫,由於端口的問題(因爲3306端口通常是封鎖網絡防火牆)通過端口80或443所以轉讓必須從港口80被重定向到3306保持數據庫工作。

我曾嘗試下面的命令:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3306 

但我得到了以下錯誤:

iptables: No chain/target/match by that name.

有誰可以幫我解決這個問題? NAT表是空的(PREROUTINGPOSTROUTINGOUTPUT沒有條目)(與iptables -t nat -n -L選中)

+0

它應該工作(也就是說,除非喲編譯你自己的內核,禁用你不懂的東西等等) –

+0

不,我沒有編譯我自己的內核,我應該這樣做(編譯內核)嗎? – Niko

+0

不,你不應該(並且沒有必要安裝任何模塊,如果你使用一個健全的發行版(其中,btw?)) –

回答

1

在所需的NAT功能的iptables內核模塊:加載在內核模塊

運行下面的命令:

# modprobe iptable_nat 
    # modprobe ipt_REDIRECT 

請確保您有在內核編譯上述模塊:

[[email protected] tmp]# grep REDIRECT /boot/config-$(uname -r) 
CONFIG_IP_NF_TARGET_REDIRECT=m 
CONFIG_BRIDGE_EBT_REDIRECT=m 

在VPS服務器:

使用modprobe命令啓用主機服務器上的模塊

執行從主機服務器下面的命令,以使所有的模塊爲VPS

vzctl set VEID --iptables iptable_nat --iptables ipt_REDIRECT 

添加規則文件/etc/vz/conf/veid.conf

IPTABLES="iptable_nat ipt_REDIRECT" 
+0

感謝您的幫助,但我無法執行grep命令,因爲boot directry爲空。 (沒有文件夾或文件)。這是正常的嗎? – Niko

+0

root @ srv01:/#modprobe iptable_nat 警告:棄用配置文件/etc/modprobe.conf,所有配置文件都屬於/etc/modprobe.d/。 致命錯誤:找不到模塊iptable_nat。 – Niko

+0

爲什麼不告訴我們你的操作系統和內核版本。某些東西是錯誤的。 – Satish