雙網卡Linux系統配置NAT轉發

本文根據在ubuntu 18.08 上的操作進行編寫

雙網卡Linux配置NAT轉發

主要用處

  • 將Linux作爲跳板機訪問網站
  • 作爲NAT轉發將內網中服務映射到外網

下面通過NAT轉發將內網中服務映射到外網來講解如何配置

NAT轉發將內網中服務映射到外網

在這裏插入圖片描述

主要功能

  • 將內網中10.10.41.202上的SSR服務映射到A1網卡,讓外網中計算機訪問公網IP:112.203.188.43就能訪問到內網中10.10.41.202服務,這裏的服務可以是任意服務,如網頁服務,FTP服務等

配置方法

步驟一:配置允許轉發

1.查看轉發功能是否開啓 sysctl net.ipv4.ip_forward
2.如果爲0 編輯/etc/sysctl.conf 中 net.ipv4.ip_forward = 1
3.使更改生效:sysctl -p /etc/sysctl.conf

步驟二:更改路由表

ubuntu@root: sudo route add 10.10.41.202 gw 10.10.3.1

這一步的是因爲在測試環境中A2和B1不屬於一個網段,因爲要配置路由表保證跳板機有去代理服務機的路由,如果在A2和B1是在一個網段下,那這條命令也不用配置。這裏要根據實際的網絡情況配置路由。

步驟三:配置NAT規則

# 開啓相關服務,這一步也可能可以不作,因爲可能系統本身就是開啓的
ubuntu@root: sudo /sbin/modprobe ip_tables
ubuntu@root: sudo /sbin/modprobe ip_conntrack
ubuntu@root: sudo /sbin/modprobe ip_conntrack_ftp
ubuntu@root: sudo /sbin/modprobe ip_nat_ftp

#清空NAT現有規則,也可以不清除
ubuntu@root: sudo iptables -t nat -F                        
ubuntu@root: sudo iptables -F INPUT
ubuntu@root: sudo iptables -F OUTPUT
ubuntu@root: sudo iptables -F FORWARD

# 配置NAT映射和IP僞裝,主要實現從eno1 6666端口進來的數據包 通過 eno2 轉發給 10.10.41.202 的 6666 端口
ubuntu@root: sudo iptables -t nat -A PREROUTING -p tcp --dport 6666 -j DNAT -i eno1 --to-destination 10.10.41.202:6666
ubuntu@root: sudo iptables -t nat -A POSTROUTING  -o eno2 -d 10.10.41.202 -p tcp --dport 6666 -j SNAT --to-source 10.10.3.199

# 配置內部轉發鏈(如何發現上面配置了NAT映射沒法轉發,就是這個轉發鏈沒有配置)
ubuntu@root: sudo iptables -A FORWARD -i eno2 -o eno1 -p tcp  -j ACCEPT
ubuntu@root: sudo iptables -A FORWARD -i eno1 -o eno2 -p tcp  -j ACCEPT

步驟四:保存NAT規則,設置開啓啓動

可做可不做,不做就每次開啓重新配置一次

sudo sh -c "iptables-save > /etc/iptables-rules"
# 加載NAT規則
sudo sh -c "iptables-restore < /etc/iptables-rules"

#如果要設置開機啓動"iptables-restore < /etc/iptables-rules" 這行命令寫入到 /etc/network/if-pre-up.d/iptables 文件(沒有該文件就新建即可)中,必須先保存NAT規則

通過以上配置就實現了訪問112.203.188.43:6666 就是訪問10.10.41.202:6666,將內網中的服務映射了出去。

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