CONTENT
1. Windows自带端口转发
2. Linux firewall转发(未完成)
3. SSH 转发(未完成)
4. Linux iptables 转发(未完成)
5. 搭建HTTP或HTTPS Proxy服务(未完成)
6. uPnP(未完成)
1. Windows 自带端口转发
使用场景描述:
A网络和B网络不联通
本机连接两个网络A,B
A网络中某些机器上存在一些服务
想将A网络中的部分服务端口映射到B网络,实现B网络访问。
惯用场景1:
本机建立有虚拟环境,将虚拟环境发布到另一网卡所在网络
惯用场景2:
本机充当堡垒机,想实现部分网络服务的转发
实例(惯用场景1):
条件:
1.本机连接A、B、C网络 (网卡地址分别为192.168.137.3,192.168.11.3,192.168.12.3);
2.A、B、C网络互不联通;
3.A为虚拟网络,存在HTTP服务在192.168.137.101上 端口3000
目标1:将A上的HTTP服务只发布到B网络
#只向指定网路发送 (网卡192.168.11.101所在网络,此时包括127.0.0.1所在的其他网络等均无法访问) #访问地址 192.168.11.3:80 netsh interface portproxy add v4tov4 3000 192.168.137.101 80 192.168.11.3
目标2:将A上的HTTP服务发布到所有网络
#将其改为0.0.0.0,此时A,B,C均可访问,包括127.0.0.1的所有网络在内) #访问地址 # 192.168.11.3:80 # 192.168.12.3:80 # 192.168.137.3:80 # 127.0.0.1:80 netsh interface portproxy add v4tov4 3000 192.168.137.101 80 0.0.0.0
ps. 以上添加为永久性添加,重启等该配置依然存在
其他操作:
列出现有端口转发:
#查看现有端口映射规则
netsh interface portproxy show all
删除相应端口转发(目标2的转发)
#删除端口转发
netsh interface portproxy delete v4tov4 80 0.0.0.0
2. linux firewalld转发
场景:
内网为192.168.137.3 上有http服务,端口号3000
设置后,通过本机连接的其他网络直接访问本机ip的80端口即可访问
firewall-cmd --zone=public --permanent --add-masquerade
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=3000:toaddr=192.168.137.3
firewall-cmd --reload
其他:
查看firewalld配置
firewall-cmd --show-all