Windows NAT端口映射
由于有需求进行端口映射,又不想装乱七八糟的软件,Windows本身自带的路由远程访问配置太麻烦,还要两块网卡,坑爹啊。
其实Windows本身命令行支持配置端口映射,条件是已经安装了IPV6,启不启用都无所谓,我在win7和server2008上是可以的。xp,2003装了ipv6协议也是可以的。
端口映射
端口映射就是将外网主机IP地址的一个端口映射到内网中一台机器,提供相应的服务。当用户访问该IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上。
CMD下操作
增加端口映射,将112.126.72.218 的80映射到112.126.72.218 的8088端口
netsh interface portproxy add v4tov4 listenport=80 listenaddress=112.126.72.218 connectport=8088 connectaddress=112.126.72.218
删除端口映射
netsh interface portproxy del v4tov4 listenport=80 listenaddress=112.126.72.218
查看已存在的端口映射
netsh interface portproxy show v4tov4
可以通过命令 netstat -ano|find “80” 查看端口是否已在监听
telnet 112.126.72.218 80 测试端口是否连通.
阿里云将80端口请求转发到其他端口
背景
租了一台阿里云ECS,想搭建一个java Web 程序,环境都搭建好后,将Tomcat端口改为80并执行。
./startup.sh
程序报错端口号冲突。
估计是80端口被占用了,但是想绑定域名,还是需要将80端口映射到tomcat才行。
于是检查占用80端口的程序
输入命令:netstat -ano,列出所有端口的情况。在列表中我们观察被占用的端口,比如是49157,首先找到它。
查看被占用端口对应的PID,输入命令:netstat -aon|findstr "49157",回车,记下最后一位数字,即PID,这里是2720。
继续输入tasklist|findstr "2720",回车,查看是哪个进程或者程序占用了2720端口,结果是:svchost.exe
是一个叫AliYunDun的程序将80端口占用了。
于是各种google,大神回答说阿里盾并不是将80端口给占用了,而是为了保护请求,进行一层防护。是云盾作为client连接了你server的80端口。并不是bind listen在server的80端口上。于是就有了下面的解决方法:
解决方案(Linux环境)
由于80端口受到各种保护措施,所以一般程序是无法获取80端口使用权的,要想实现不输入端口号直接访问程序,需要将80端口的请求转发到Tomcat设定的端口上去,也就是默认的8080端口。
首先查看服务器网卡及ip设置:
很明显eth1为外网网卡。
设置端口号转发规则:
iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8080
保存规则
[root ~]# cd /etc/rc.d/init.d
[root ~]# ./iptables save
## iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
搞定!
注:此处的80端口是指提供web服务的TCP端口80。
Windows server环境下,需要进行端口映射。详情见博客“
”。- 点赞
- 收藏
- 关注作者
评论(0)