我們想到達主機b的80埠,但是由於網路限制可能無法直接完成。但是我們可以到達主機a的8080埠,而主機a可以直接到達b的80埠。
這時候可以使用iptables,將主機b的80埠對映到主機a的8080埠,通過訪問a的8080相當於訪問b的80。實現如下:
在主機a上直接如下命令,實現埠對映的full-nat
#!/bin/bash說明:pro=
'tcp'
nat_host
='host_a'
nat_port
=8080
dst_host
='host_b'
dst_port=80
iptables
-t nat
-a prerouting
-m $pro
-p $pro
--dport $nat_port
-j dnat
--to
-destination $dst_host
:$dst_port
iptables
-t nat
-a postrouting
-m $pro
-p $pro
--dport $dst_port
-d $dst_host
-j snat
--to
-source $nat_host
nat_pro表示nat的協議,可以是tcp或udp
nat_host表示中間做埠對映的主機。這裡也就是主機a
nat_port表示中間做埠對映的埠。這裡也就是主機a的8080口
dst_host表示被nat的主機。這裡也就是主機b
dst_host表示被nat的埠。這裡也就是主機b的80口
我們可能需要將訪問主機的7979埠對映到8080埠。也可以iptables重定向完成
iptables需要開啟ip_forward功能。-t nat
-a prerouting
-p tcp
--dport
7979
-j redirect
--to
-ports
8080
echo最新'1'>
/proc/
sys/
net/
ipv4
/ip_forward
最早最熱
Linux下用iptables做埠對映詳細
原文連線 linux下用iptables做埠對映詳細過程 實現功能 server a eth0 58.215.xx 外網 eth1 192.168.1.2 內網 server b 192.168.1.3 內網 將server a的3306埠對映到server b的3306埠,實現通過server a...
iptables 埠對映指令碼
echo 1 proc sys net ipv4 ip forward sbin iptables a input p tcp dport 3389 i eth0 j accept sbin iptables t nat a prerouting i eth0 d 192.168.5.7 p tcp...
iptables 埠對映設定
首先應該做的是 etc sysctl.conf配置檔案的 net.ipv4.ip forward 1 預設是0 臨時生效 echo 1 proc sys net ipv4 ip forward 設我們有一台計算機,有兩塊網絡卡,eth0連外網,ip為1.2.3.4 eth1連內網,ip為192.16...