iptables 跨網段轉發

網絡結構如下

網絡拓撲圖

需求

PC 只能訪問到 Linux,需要 Linux 轉發數據包,使得 PC 可以訪問到路由器。

使用 iptables 轉發

iptables -t nat -I PREROUTING -p tcp --dport 10000 -j DNAT --to-destination 192.168.0.1:80
iptables -t nat -I POSTROUTING -p tcp -d 192.168.0.1 --dport 80 -j SNAT --to-source 192.168.0.20

這樣當 PC 訪問 192.168.194.20:10000 時,實際就可訪問到路由器(192.168.0.1)了。

命令的解釋如下:

  1. 當發起到 Linux 的連接請求時,數據包從 192.168.194.10 發出,到達 Linux 主機 192.168.194.20,經過 Linux 時將數據包重新構造,把數據包的目的地址由 192.168.194.20 改爲 192.168.0.1。
  2. 經過第一步處理的數據包進入 192.168.194.20,數據包從 192.168.0.20 發向 192.168.0.1 時,將數據包的源地址 192.168.194.11 改爲192.168.0.20。
  3. 路由器接收到請求數據包之後響應,響應數據包從 192.168.0.1 發送到 192.168.0.20,在接收到源地址爲 192.168.0.1 的數據包時,將其目的地址 192.168.0.20 改爲 192.168.194.11。
  4. 數據包第三步處理後流向 192.168.194.20,當數據包流出 192.168.194.20 時,將其源地址 192.168.0.1 改爲 192.168.194.20。

其他 iptables 命令

顯示規則:iptables -t nat -L PREROUTING --line-numbers
刪除規則:iptables -t nat -D PREROUTING 1(規則序號)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章