內網通過snat訪問外網

SNAT

SNAT(Source Network Address Translation):源地址轉換,其作用是將ip數據包的源地址轉換成另外一個地址。設置內網的設備經過防火器(路由器等)接入到互聯網時,按內網設備的不同IP地址、對應選擇不同的外網接口。

例子:

有兩臺服務器Server A(具有雙網卡em1, em2), Server B,其中(proxy_ip和private_ip可以ping通):

1.  Server A:具有內網地址proxy_ip (proxy_nic=em1)和外網地址public_ip (public_nic=em2);

2.  Server B:具有內網地址private_ip;


具體配置

1   配置Server A

1.1 開啓路由轉發功能:

臨時啓動:

echo 1 > /proc/sys/net/ipv4/ip_forward

永久啓動(修改配置文件/etc/sysctl.conf):

net.ipv4.ip_forward=1

1.2 配置iptables的SNAT規則

iptables -t nat -A PREROUTING-d $public_ip -p tcp --dport $public_port -j DNAT --to-destination $private_ip:$private_port

iptables -t nat -APOSTROUTING -d $private_ip -p tcp --dport $private_port -j SNAT --to-source$proxy_ip

iptables -t nat -APOSTROUTING -s $private_ip -j MASQUERADE

2   配置Server B

添加proxy_ip作爲B的路由

route add -net 0.0.0.0gateway $proxy_ip netmask 0.0.0.0 dev $proxy_nic

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