Rumah > Operasi dan penyelenggaraan > operasi dan penyelenggaraan linux > Laksanakan pemetaan port pada Linux atau Windows

Laksanakan pemetaan port pada Linux atau Windows

Lepaskan: 2023-08-01 17:03:54
ke hadapan
1084 orang telah melayarinya

Biasanya pelayan mempunyai banyak kad rangkaian, jadi ia mungkin disambungkan ke rangkaian yang berbeza, sesetengah perkhidmatan mungkin perlu berkomunikasi pada masa ini, pelayan boleh mengambil tanggungjawab selepas dikonfigurasikan . Fungsi memajukan paket data.

Laksanakan pemetaan port pada Linux atau Windows

1. Melaksanakan pemetaan port di bawah Windows

1.

netsh interface portproxy show v4tov4
Salin selepas log masuk

3. Tambah pemetaan port

netsh interface portproxy show v4tov4 | find "[IP]"例:netsh interface portproxy show v4tov4 | find "192.168.1.1"
Salin selepas log masuk

4

netsh interface portproxy delete v4tov4 listenaddress=[外网IP] listenport=[外网端口]例:netsh interface portproxy delete v4tov4 listenaddress=2.2.2.2 listenport=8080
Salin selepas log masuk

二、Linux 下端口映射

1. 允许数据包转发

echo 1 >/proc/sys/net/ipv4/ip_forwardiptables -t nat -A POSTROUTING -j MASQUERADEiptables -A FORWARD -i [内网网卡名称] -j ACCEPTiptables -t nat -A POSTROUTING -s [内网网段] -o [外网网卡名称] -j MASQUERADE例:echo 1 >/proc/sys/net/ipv4/ip_forwardiptables -t nat -A POSTROUTING -j MASQUERADEiptables -A FORWARD -i ens33 -j ACCEPTiptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o ens37 -j MASQUERADE
Salin selepas log masuk

2. 设置端口映射

iptables -t nat -A PREROUTING -p tcp -m tcp --dport [外网端口] -j DNAT --to-destination [内网地址]:[内网端口]例:iptables -t nat -A PREROUTING -p tcp -m tcp --dport 6080 -j DNAT --to-destination 10.0.0.100:6090
Salin selepas log masuk

实验:将部署在内网的服务映射到外网

实验环境

  1. VMWare Workstation Pro

  2. 5 台最小化安装的 centos 7 虚拟机

实验 拓扑

Laksanakan pemetaan port pada Linux atau Windows

内网 外网 是 相对 <span style="outline: 0px;font-size: 17px;">Server4</span>来说的。
<span style="outline: 0px;font-size: 17px;">Server1</span><span style="outline: 0px;font-size: 17px;">Server2</span>为内网环境的两台服务器;
<span style="outline: 0px;font-size: 17px;">Server3</span>为外网环境下的一台服务器;
<span style="outline: 0px;font-size: 17px;">Server4</span>为一台双网卡主机,分别连接<span style="outline: 0px;font-size: 17px;">192.168.50.0/24</span><span style="outline: 0px;font-size: 17px;">172.16.2.0/24</span> <span style="outline: 0px;font-size: 17px;">Server4</span>

来说的。
🎜🎜Server1🎜🎜和🎜🎜Server2🎜🎜为内网环境的两台服务;
🎜🎜Server3🎜🎜为外网环境下的一台服务器;
🎜🎜Server4🎜🎜为一台双网卡主机,分别连接🎜 gaya margin-kanan: 2px;margin-kiri: 2px; padding: 2px 4px;garis besar: 0px;saiz fon: 14px;jejari sempadan: 4px;warna latar belakang: rgba(27, 31, 35, 0.05);font- keluarga: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(239, 112, 96);">🎜192.168.50.0/24🎜🎜和🎜 🎜172.16.2.0/24🎜🎜两个网络。🎜🎜

配置实验环境

1. Server1,2,3 上搭建 HTTP 服务

用 Python 在<span style="outline: 0px;font-size: 17px;">Server1</span>上搭建一个简单的 HTTP 服务

cd ~echo "server1" > index.htmlpython -m SimpleHTTPServer 8080
Salin selepas log masuk
Laksanakan pemetaan port pada Linux atau Windows

<span style="outline: 0px;font-size: 17px;">Server2、Server3</span>同理

对照实验

<span style="outline: 0px;font-size: 17px;">client</span>上访问<span style="outline: 0px;font-size: 17px;">Server1</span>的资源

curl http://192.168.50.11:8080/index.html
Salin selepas log masuk
Laksanakan pemetaan port pada Linux atau Windows

<span style="outline: 0px;font-size: 17px;">client</span>上访问<span style="outline: 0px;font-size: 17px;">Server2</span>的资源

curl http://192.168.50.12:8080/index.htm
Salin selepas log masuk
Laksanakan pemetaan port pada Linux atau Windows

<span style="outline: 0px;font-size: 17px;">client</span>上访问<span style="outline: 0px;font-size: 17px;">Server3</span>的资源

curl http://172.16.2.11:8080/index.html
Salin selepas log masuk
Salin selepas log masuk
Laksanakan pemetaan port pada Linux atau Windows

可以看到,外网的<span style="outline: 0px;font-size: 17px;">client</span>是无法访问内网<span style="outline: 0px;font-size: 17px;">Server1</span>,<span style="outline: 0px;font-size: 17px;">Server2</span>的资源的。

<span style="outline: 0px;font-size: 17px;">Server4</span>上配置端口映射

临时配置

#允许数据包转发echo 1 >/proc/sys/net/ipv4/ip_forwardiptables -t nat -A POSTROUTING -j MASQUERADEiptables -A FORWARD -i ens33 -j ACCEPTiptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o ens37 -j MASQUERADE#设置端口映射iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8081 -j DNAT --to-destination 192.168.50.11:8080iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8082 -j DNAT --to-destination 192.168.50.12:8080
Salin selepas log masuk

永久配置

如果需要永久配置,则将以上命令追加到<span style="outline: 0px;font-size: 17px;">/etc/rc.local</span>文件。

检查效果

<span style="outline: 0px;font-size: 17px;">client</span>上访问 Server1 的资源

curl http://172.16.2.100:8081/index.html
Salin selepas log masuk

<span style="outline: 0px;font-size: 17px;">client</span>上访问<span style="outline: 0px;font-size: 17px;">Server2</span>的资源

curl http://172.16.2.100:8082/index.html
Salin selepas log masuk
Laksanakan pemetaan port pada Linux atau Windows

<span style="outline: 0px;font-size: 17px;">client</span>上访问<span style="outline: 0px;font-size: 17px;">Server3</span>的资源

curl http://172.16.2.11:8080/index.html
Salin selepas log masuk
Salin selepas log masuk
Laksanakan pemetaan port pada Linux atau Windows

如果<span style="outline: 0px;font-size: 17px;">Server4</span>为 Windows,替换一下相应的命令即可

Windows 的 IP 信息如下

Kad Rangkaian Ethernet0192.168.50.105 255.255.255.0-Kad rangkaian intranetEthernet12
1. 255.255.255.0-Kad rangkaian luaran
Laksanakan pemetaan port pada Linux atau Windows

配置并查看端口映射情况

netsh interface portproxy add v4tov4 listenaddress=172.16.2.105 listenport=8081 connectaddress=192.168.50.11 connectport=8080netsh interface portproxy add v4tov4 listenaddress=172.16.2.105 listenport=8082 connectaddress=192.168.50.12 connectport=8080netsh interface portproxy show v4tov4
Salin selepas log masuk

检查效果

<span style="outline: 0px;font-size: 17px;">client</span>节点上

curl http://172.16.2.105:8081/index.htmlcurl http://172.16.2.105:8082/index.htmlcurl http://172.16.2.11:8080/index.html
Salin selepas log masuk
Laksanakan pemetaan port pada Linux atau Windows

Atas ialah kandungan terperinci Laksanakan pemetaan port pada Linux atau Windows. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:Linux中文社区
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan