ip route,ip rule, iptables和docker的端口映射
阿新 • • 發佈:2018-07-13
dport port nat -c wiki interface 所有 ati tle
iptables
默認5個表, 不可增加其他表
1 raw 用於配置數據包,raw 中的數據包不會被系統跟蹤。 2 filter 是用於存放所有與防火墻相關操作的默認表。 3 nat 用於 網絡地址轉換(例如:端口轉發)。 4 mangle 用於對特定數據包的修改(參考 損壞數據包)。 5 security 用於 強制訪問控制 網絡規則
控制Linux內核netfilter模組, 做數據包的過濾和轉發,只是netfilter項目的一小部分
防火墻黑白名單
可以在內核層面將對80端口的訪問直接映射到8080端口上
NAT, 將對本機的請求,轉發到內部其他NAT ip上
下圖中可以看到數據包是如何進入本地進程local process的
參考: https://wiki.archlinux.org/index.php/Iptables_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
https://en.wikipedia.org/wiki/Netfilter
docker使用NAT時,docker命令也是操作iptables, 給在運行中的容器增加端口映射,需要手動執行iptables命令
iptables -t nat -A DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.19:8000
ip route
增加路由, 在本地機器上操作, 對應的文件是/etc/iproute2/rt_tables , 等同與netmanager中的操作命令route add default gw 10.0.0.1
255 local 254 main 253 default 默認的三個路由表, 可以增加自定義的路由表
ip rule
路由規則, 路由表中的具體規則
出方向: ip route, ip rule決定了數據包在到達網口Interface時,需要經過的網關和路由器
ip route,ip rule, iptables和docker的端口映射