用iptables做埠對映

2021-06-26 16:35:17 字數 1271 閱讀 7552

我們想到達主機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 

-t nat

-a prerouting

-p tcp

--dport

7979

-j redirect

--to

-ports

8080

需要開啟ip_forward功能。

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...