仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1516|回复: 9
打印 上一主题 下一主题

[shell编程] 来一发shell剧本转发80端口数据包

[复制链接]
小妖女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:14:45 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
欢迎大家来到仓酷云论坛!开辟基于Node.js的WEB使用很便利,可是办事端口成绩很蛋疼,因为Linux内核划定一般用户只能利用年夜于1024的端标语,以是利用一般用户运转Node.js办事就不克不及监听80端口


注重:万万不要图费事间接利用ROOT用户运转Node.js办事!这将带来没法估计的宁静成绩!

可是利用80端口作为HTTP默许端口这一习气是从MS时期就持续至今的,怎样办呢?网上有人口若悬河地说用NginX做反向代办署理之类的,实在我以为没需要这么夸大,只必要利用ROOT用户做一个一般端口与80端口的数据转发就行了,利用iptables语句以下:
复制代码代码以下:
iptables-tnat-APREROUTING-ptcp--dport80-jREDIRECT--to-port你的端标语

利用以上这条语句必要注重以下几点:
1.这条语句是一时性的,办事重视启后生效。
2.假如实行过这类语句以后,又想把80端口绑定转发到其他端口上往的话,你要先利用
复制代码代码以下:

#检察今朝端口转发划定规矩
iptables--line-numbers--listPREROUTING-tnat
#从下面语句输入的列表中找到本人之前绑定转发的端口的纪录的行号,然后用上面这句删失落这笔记录来删除转发,并且最蛋疼的是你不克不及指定转发划定规矩的特性来删除纪录,你只能告知它“删除第几行”。
iptables-tnat-DPREROUTING行号


3.利用ArchLinux的童鞋们必要注重了,大概因为内核短少模块(是iptables仍是nat来着?)而不克不及用上述语句来设置绑定转发端口,必要从头编译内核大概模块。
介于以上蛋疼成绩,我写了一个剧本,来完成主动删除纪录和主动绑定:

复制代码代码以下:
#!/bin/bash
#剧本书院www.jbxue.com
if[$#=1];then
if[$1-ge0];then
if[$1-le65535];then
#Deletealloldbindings
forline_numin$(iptables--line-numbers--listPREROUTING-tnat|grepdpt:http|awk{print$1})
do
LINES="$line_num$LINES"
done
forlinein$LINES
do
iptables-tnat-DPREROUTING$line
done
unsetLINES

#Makeanewbinding
iptables-tnat-APREROUTING-ptcp--dport80-jREDIRECT--to-port$1
echo"Port80isboundwith$1!"
exit1
fi
fi
fi
echo"PleaseinputONEPORTNUMBER!"


只必要将下面代码保留为文件(如bind80)并增加实行权限,利用以下指令便可扫除之前的纪录并将新端口举行绑定转发:
复制代码代码以下:

sudobind80端标语


如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-14 03:10

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表