今天就跟大家聊聊有關(guān)Linux和Windows中怎么實(shí)現端口映射,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
一、Windows下實(shí)現端口映射
1. 查詢(xún)端口映射情況
netsh interface portproxy show v4tov4
2. 查詢(xún)某一個(gè)IP的所有端口映射情況
netsh interface portproxy show v4tov4 | find "[IP]" 例: netsh interface portproxy show v4tov4 | find "192.168.1.1"
3. 增加一個(gè)端口映射
netsh interface portproxy add v4tov4 listenaddress=[外網(wǎng)IP] listenport=[外網(wǎng)端口] connectaddress=[內網(wǎng)IP] connectport=[內網(wǎng)端口] 例: netsh interface portproxy add v4tov4 listenaddress=2.2.2.2 listenport=8080 connectaddress=192.168.1.50 connectport=80
4. 刪除一個(gè)端口映射
netsh interface portproxy delete v4tov4 listenaddress=[外網(wǎng)IP] listenport=[外網(wǎng)端口] 例: netsh interface portproxy delete v4tov4 listenaddress=2.2.2.2 listenport=8080
二、Linux下端口映射
1. 允許數據包轉發(fā)
echo 1 >/proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -j MASQUERADE iptables -A FORWARD -i [內網(wǎng)網(wǎng)卡名稱(chēng)] -j ACCEPT iptables -t nat -A POSTROUTING -s [內網(wǎng)網(wǎng)段] -o [外網(wǎng)網(wǎng)卡名稱(chēng)] -j MASQUERADE 例: echo 1 >/proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -j MASQUERADE iptables -A FORWARD -i ens33 -j ACCEPT iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o ens37 -j MASQUERADE
2. 設置端口映射
iptables -t nat -A PREROUTING -p tcp -m tcp --dport [外網(wǎng)端口] -j DNAT --to-destination [內網(wǎng)地址]:[內網(wǎng)端口] 例: iptables -t nat -A PREROUTING -p tcp -m tcp --dport 6080 -j DNAT --to-destination 10.0.0.100:6090
實(shí)驗:將部署在內網(wǎng)的服務(wù)映射到外網(wǎng)
實(shí)驗環(huán)境
鴻蒙官方戰略合作共建——HarmonyOS技術(shù)社區
VMWare Workstation Pro
5臺最小化安裝的centos 7虛擬機
實(shí)驗拓撲
內網(wǎng)和外網(wǎng)是相對Server4來(lái)說(shuō)的。
Server1和Server2為內網(wǎng)環(huán)境的兩臺;
Server3為外網(wǎng)環(huán)境下的一臺服務(wù)器;
Server4為一臺雙網(wǎng)卡主機,分別連接192.168.50.0/24和172.16.2.0/24兩個(gè)網(wǎng)絡(luò )。
配置實(shí)驗環(huán)境
1. Server1,2,3上搭建HTTP服務(wù)
用Python在Server1上搭建一個(gè)簡(jiǎn)單的HTTP服務(wù)
cd ~ echo "server1" > index.html python -m SimpleHTTPServer 8080
Server2、Server3同理
對照實(shí)驗
在client上訪(fǎng)問(wèn)Server1的資源
curl http://192.168.50.11:8080/index.html
在client上訪(fǎng)問(wèn)Server2的資源
curl http://192.168.50.12:8080/index.htm
在client上訪(fǎng)問(wèn)Server3的資源
curl http://172.16.2.11:8080/index.html
可以看到,外網(wǎng)的client是無(wú)法訪(fǎng)問(wèn)內網(wǎng)Server1,Server2的資源的。
在Server4上配置端口映射
臨時(shí)配置
#允許數據包轉發(fā) echo 1 >/proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -j MASQUERADE iptables -A FORWARD -i ens33 -j ACCEPT iptables -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:8080 iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8082 -j DNAT --to-destination 192.168.50.12:8080
永久配置
如果需要永久配置,則將以上命令追加到/etc/rc.local文件。
檢查效果
在client上訪(fǎng)問(wèn)Server1的資源
curl http://172.16.2.100:8081/index.html
在client上訪(fǎng)問(wèn)Server2的資源
curl http://172.16.2.100:8082/index.html
在client上訪(fǎng)問(wèn)Server3的資源
curl http://172.16.2.11:8080/index.html
如果Server4為Windows,替換一下相應的命令即可
Windows的IP信息如下
配置并查看端口映射情況
netsh interface portproxy add v4tov4 listenaddress=172.16.2.105 listenport=8081 connectaddress=192.168.50.11 connectport=8080 netsh interface portproxy add v4tov4 listenaddress=172.16.2.105 listenport=8082 connectaddress=192.168.50.12 connectport=8080 netsh interface portproxy show v4tov4
檢查效果
在client節點(diǎn)上
curl http://172.16.2.105:8081/index.html curl http://172.16.2.105:8082/index.html curl http://172.16.2.11:8080/index.html
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站