Created
March 7, 2019 08:08
-
-
Save d1y/44dcdb04b2b1ea3aec6ad7717c599a3e to your computer and use it in GitHub Desktop.
python-http端口修改工具
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin | |
export PATH | |
#================================================= | |
# System Required: All | |
# Description: Python HTTP Server | |
# Version: 1.0.2 | |
# Author: Toyo | |
# Blog: https://doub.io/wlzy-8/ | |
#================================================= | |
sethttp(){ | |
#设置端口 | |
while true | |
do | |
echo -e "请输入要开放的HTTP服务端口 [1-65535]" | |
read -e -p "(默认端口: 8000):" httpport | |
[[ -z "$httpport" ]] && httpport="8000" | |
expr ${httpport} + 0 &>/dev/null | |
if [[ $? -eq 0 ]]; then | |
if [[ ${httpport} -ge 1 ]] && [[ ${httpport} -le 65535 ]]; then | |
echo | |
echo -e " 端口 : \033[41;37m ${httpport} \033[0m" | |
echo | |
break | |
else | |
echo "输入错误, 请输入正确的端口。" | |
fi | |
else | |
echo "输入错误, 请输入正确的端口。" | |
fi | |
done | |
#设置目录 | |
echo "请输入要开放的目录(绝对路径)" | |
read -e -p "(直接回车, 默认当前文件夹):" httpfile | |
if [[ ! -z $httpfile ]]; then | |
[[ ! -e $httpfile ]] && echo -e "\033[41;37m [错误] \033[0m 输入的目录不存在 或 当前用户无权限访问, 请检查!" && exit 1 | |
else | |
httpfile=`echo $PWD` | |
fi | |
#最后确认 | |
echo | |
echo "========================" | |
echo " 请检查配置是否正确 !" | |
echo | |
echo -e " 端口 : \033[41;37m ${httpport} \033[0m" | |
echo -e " 目录 : \033[41;37m ${httpfile} \033[0m" | |
echo "========================" | |
echo | |
read -e -p "按任意键继续,如有错误,请使用 Ctrl + C 退出." var | |
} | |
iptables_add(){ | |
iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport ${httpport} -j ACCEPT | |
iptables -I INPUT -m state --state NEW -m udp -p udp --dport ${httpport} -j ACCEPT | |
} | |
iptables_del(){ | |
iptables -D INPUT -m state --state NEW -m tcp -p tcp --dport ${port} -j ACCEPT | |
iptables -D INPUT -m state --state NEW -m udp -p udp --dport ${port} -j ACCEPT | |
} | |
starthttp(){ | |
PID=`ps -ef | grep SimpleHTTPServer | grep -v grep | awk '{print $2}'` | |
[[ ! -z $PID ]] && echo -e "\033[41;37m [错误] \033[0m SimpleHTTPServer 正着运行,请检查 !" && exit 1 | |
sethttp | |
iptables_add | |
cd ${httpfile} | |
nohup python -m SimpleHTTPServer $httpport >> httpserver.log 2>&1 & | |
sleep 2s | |
PID=`ps -ef | grep SimpleHTTPServer | grep -v grep | awk '{print $2}'` | |
if [[ -z $PID ]]; then | |
echo -e "\033[41;37m [错误] \033[0m SimpleHTTPServer 启动失败 !" && exit 1 | |
else | |
ip=`curl -m 10 -s http://members.3322.org/dyndns/getip` | |
[[ -z "$ip" ]] && ip="VPS_IP" | |
echo | |
echo "HTTP服务 已启动 !" | |
echo -e "浏览器访问,地址: \033[41;37m http://${ip}:${httpport} \033[0m " | |
echo | |
fi | |
} | |
stophttp(){ | |
PID=`ps -ef | grep SimpleHTTPServer | grep -v grep | awk '{print $2}'` | |
[[ -z $PID ]] && echo -e "\033[41;37m [错误] \033[0m 没有发现 SimpleHTTPServer 进程运行,请检查 !" && exit 1 | |
port=`netstat -lntp | grep ${PID} | awk '{print $4}' | awk -F ":" '{print $2}'` | |
iptables_del | |
kill -9 ${PID} | |
sleep 2s | |
PID=`ps -ef | grep SimpleHTTPServer | grep -v grep | awk '{print $2}'` | |
if [[ ! -z $PID ]]; then | |
echo -e "\033[41;37m [错误] \033[0m SimpleHTTPServer 停止失败 !" && exit 1 | |
else | |
echo | |
echo "HTTP服务 已停止 !" | |
echo | |
fi | |
} | |
action=$1 | |
[[ -z $1 ]] && action=start | |
case "$action" in | |
start|stop) | |
${action}http | |
;; | |
*) | |
echo "输入错误 !" | |
echo "用法: {start|stop}" | |
;; | |
esac |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment