NAT LOOPBACK DNAT - Linux

Table of Contents


※ 引述《NKill (可樂戒指)》之銘言:
: 我有一台Linux ,設定 dhcp 跟 NAT
: PCA
: Linux <--->
: PCB
: Linux WAN ip 1.2.3.4
: LINUX LAN ip 192.168.1.1
: PCA ip 192.168.1.2
: PCB ip 192.168.1.3
: PCA上面裝了 http server
: AP 設定 Port Forward 到 PCA
: 我希望能從PCB 打 AP的 WAN IP 就能存取 PCA的網頁
: 1. iptables -t nat -I PREROUTING -i br0 -d 1.2.3.4 -j DNAT --to 192.168.1.2
: 2. iptables -t nat -I POSTROUTING -s 192.168.1.1/24 -o br0 -d 192.168.1.2 -j SNAT --to 192.168.1.1
: iptables -L -vn -t nat 看到 1. pkg 會增加 但是 2.pkg 不會增加
: ip_forward 1

試試這樣:

0.0 移除 br0

0.1 設定 eth0 為 public IP 與對外 gateway

0.2 alias : ifconfig eth0:1 192.168.1.1/24

1. iptables -t nat -I PREROUTING -i eth0 -d 1.2.3.4 -p tcp --dport 80 \
-j DNAT --to 192.168.1.2

2. iptables -t nat -I POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

PCA 及 PCB 的 default gateway 都設定 192.168.1.1

enable ip_forward 1

: 請各位指點一下迷津 謝謝

--

All Comments

Charlie avatarCharlie2014-02-19
第一行是 OK的 PACKAGE 會增加 但就不會跑其他 chain了
Brianna avatarBrianna2014-02-21
不確定是不是 iptables 版本的問題 有點鬼打牆= =
Eartha avatarEartha2014-02-21
1. DNAT 改成 public ip 或者 LAN ip 都是 ok的
Victoria avatarVictoria2014-02-21
第一行其實你的寫法會將全部的TCP/UDP/SCTP流量導給PCA
William avatarWilliam2014-02-22
不過我沒試過用 br0 bridge device 做 NAT ...
Valerie avatarValerie2014-02-24
恩恩xd 我一開始有設 port 跟 tcp 也是跑完之後 就消失了