Linux

製作 CentOS 6.xa 埠轉發 NAT 設備

  • July 3, 2013

我想讓 CentOS 成為使用 iptables 的埠轉發 NAT 機器。這是我第一次嘗試這個,我想我可能需要一點幫助。

這是我想要實現的配置。我正在嘗試通過埠 5500 上的 CentOS 機器建立遠端桌面連接,並讓 CentOS 連接到埠 3389 上的伺服器。

在此處輸入圖像描述

192.168.21.11 是應該通過連接到埠 5500 上的 192.168.21.10 (CentOS) 來連接到 192.168.9.120 上的埠 3389 的客戶端。

  • CentOS eth0 為 192.168.9.20/24
  • CentOS eth1 為 192.168.21.10/24

到目前為止我嘗試了什麼:

  1. 禁用 SELINUX
  2. 在 /etc/sysctl.conf 中啟用 IPv4 轉發
/etc/sysctl.conf
net.ipv4.ip_forward = 1
  1. 執行以下 iptables 命令
iptables -t nat -A PREROUTING -p tcp -d 192.168.21.10 --dport 5500 -j DNAT --to 192.168.9.120:3389
iptables -A INPUT -i eth1 -p tcp --dport 5500 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 5500 -m state --state ESTABLISHED -j ACCEPT
service iptables save

保存此配置後,我無法建立我想要實現的遠端桌面連接,那麼我的 iptables 規則有什麼問題嗎?或者有什麼我可能會錯過的嗎?

嘗試將此規則添加到您的 /etc/sysconfig/iptables 之後-A PREROUTING -p tcp -d 192.168.21.10 --dport 5500 -j DNAT --to 192.168.9.120:3389

-A POSTROUTING -d 192.168.9.120 -j MASQUERADE

第二次檢查 net.ipv4.ip_forward 是否通過執行 ‘sysctl -a | 設置為 1 grep net.ipv4.ip_forward`

如果它仍然設置為 0,則執行:

sysctl -w net.ipv4.ip_forward=1

嘗試添加:

iptables -A FORWARD -i eth1 -j ACCEPT
iptables -A FORWARD -o eth1 -j ACCEPT

引用自:https://serverfault.com/questions/520431