初始化

Signed-off-by: hitsword <admin@hitsword.com>
master
hitsword 2020-03-04 21:37:12 +08:00
commit 74e4a2a3a9
5 changed files with 233 additions and 0 deletions

1
README.md 100644
View File

@ -0,0 +1 @@
udp2raw和UDPspeeder安装配置工具

View File

@ -0,0 +1,17 @@
[Unit] # 主要是服务说明
Description=Udp2Raw - %i # 简单描述服务
After=network.target # 描述服务类别表示本服务需要在network服务启动后在启动
Before= # 表示需要在某些服务启动之前启动After和Before字段只涉及启动顺序不涉及依赖关系。
[Service] # 核心区域
Type=forking # 表示后台运行模式。
User=nobody # 设置服务运行的用户
Group=nobody # 设置服务运行的用户组
KillMode=control-group # 定义systemd如何停止服务
PIDFile=/usr/local/udptools/pid/udp2raw-%i.pid # 存放PID的绝对路径
Restart=no # 定义服务进程退出后systemd的重启方式默认是不重启
ExecStart=/usr/local/udptools/udp2raw-%i.sh # 服务启动命令,命令需要绝对路径
PrivateTmp=true # 表示给服务分配独立的临时空间
[Install]
WantedBy=multi-user.target # 多用户

View File

@ -0,0 +1,17 @@
[Unit] # 主要是服务说明
Description=UdpSpeeder - %i # 简单描述服务
After=network.target # 描述服务类别表示本服务需要在network服务启动后在启动
Before= # 表示需要在某些服务启动之前启动After和Before字段只涉及启动顺序不涉及依赖关系。
[Service] # 核心区域
Type=forking # 表示后台运行模式。
User=nobody # 设置服务运行的用户
Group=nobody # 设置服务运行的用户组
KillMode=control-group # 定义systemd如何停止服务
PIDFile=/usr/local/udptools/pid/udpspeeder-%i.pid # 存放PID的绝对路径
Restart=no # 定义服务进程退出后systemd的重启方式默认是不重启
ExecStart=/usr/local/udptools/udpspeeder-%i.sh # 服务启动命令,命令需要绝对路径
PrivateTmp=true # 表示给服务分配独立的临时空间
[Install]
WantedBy=multi-user.target # 多用户

110
udptools.sh 100644
View File

@ -0,0 +1,110 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
#判断系统
if [[ -e /etc/debian_version ]]; then
OS=debian
GROUPNAME=nogroup
RCLOCAL='/etc/rc.local'
IPTABLES=`dpkg --get-selections | grep iptables`
elif [[ -e /etc/centos-release || -e /etc/redhat-release ]]; then
OS=centos
GROUPNAME=nobody
RCLOCAL='/etc/rc.d/rc.local'
IPTABLES=`rpm -qa |grep iptables`
else
echo "只支持Debian\Ubuntu\CentOS系统"
exit
fi
#检查依赖IPTABLES
if [ "$IPTABLES" == '' ]; then
if [[ "$OS" = 'debian' ]]; then
apt-get update
apt-get install iptables -y
else
yum install iptables -y
fi
fi
#判断服务模式
if pgrep systemd-journal; then
SYSTEMCTL=1
else
SYSTEMCTL=0
fi
echo
echo "Which mode to run this?"
echo "你想运行在什么模式?"
echo " 1) Client(Default) - 客户端(默认)"
echo " 2) Server - 服务端"
read -p "Run Mode(运行模式) [1-2]: " -e -i 1 RUNMODE
case $RUNMODE in
1)
read -p "Remote Udp2Raw IP(Udp2Raw远程IP): " RIP
echo""
while [[ ! "$RPORT" =~ [1-65535] ]];do
read -p "Remote Udp2Raw Port(Udp2Raw远程端口): " RPORT
echo""
done
while [[ ! "$MPORT" =~ [1-65535] ]];do
read -p "Middle Port(Udp2Raw与UDPSpeeder中间端口): " MPORT
CHECKMPORT=`netstat -ntl | grep $MPORT`
if [[ "$CHECKMPORT" != "" ]]; then
MPORT=0
echo "端口已被占用";
fi
echo""
done
while [[ ! "$LPORT" =~ [1-65535] ]];do
read -p "Listen Port(监听给本地其他业务用端口): " LPORT
CHECKLPORT=`netstat -ntl | grep $LPORT`
if [[ "$CHECKLPORT" != "" ]]; then
LPORT=0
echo "端口已被占用";
fi
if [ "$LPORT" == "$MPORT" ]; then
LPORT=0
echo "端口已被占用";
fi
echo""
done
;;
2)
while [[ ! "$RPORT" =~ [1-65535] ]];do
read -p "Other Server Port(本地其他业务端口): " RPORT
echo""
done
while [[ ! "$MPORT" =~ [1-65535] ]];do
read -p "Middle Port(Udp2Raw与UDPSpeeder中间端口): " MPORT
CHECKMPORT=`netstat -ntl | grep $MPORT`
if [[ "$CHECKMPORT" != "" ]]; then
MPORT=0
echo "端口已被占用";
fi
if [ "$MPORT" == "$RPORT" ]; then
MPORT=0
echo "端口已被占用";
fi
echo""
done
while [[ ! "$LPORT" =~ [1-65535] ]];do
read -p "Udp2Raw Listen Port(监听给远程UDP2RAW用): " LPORT
CHECKLPORT=`netstat -ntl | grep $LPORT`
if [[ "$CHECKLPORT" != "" ]]; then
LPORT=0
echo "端口已被占用";
fi
if [ "$LPORT" == "$MPORT" ]; then
LPORT=0
echo "端口已被占用";
fi
echo""
done
;;
esac
echo $IP
echo $RPORT
echo $MPORT
echo $LPORT

View File

@ -0,0 +1,88 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
UDP2RAW_URL=https://soft.huayizhiyun.com/network/udptools/udp2raw/udp2raw_20190716.tar.gz
UDPSPEEDER_URL=https://soft.huayizhiyun.com/network/udptools/udpspeeder/speederv2_20190121.tar.gz
#判断系统和决定BIN名
if [[ `getconf WORD_BIT` = '32' && `getconf LONG_BIT` = '64' ]] ; then
Is_64bit='y'
UDP2RAW_BIN='udp2raw_amd64'
UDPSPEEDER_BIN='speederv2_amd64'
else
Is_64bit='n'
UDP2RAW_BIN='udp2raw_x86'
UDPSPEEDER_BIN='speederv2_x86'
fi
if uname -m | grep -Eqi "arm|aarch64"; then
Is_ARM='y'
UDP2RAW_BIN='udp2raw_arm'
UDPSPEEDER_BIN='speederv2_arm'
fi
#安装程序
Get_udp2raw()
{
#下载并提取相关文件
if [ ! -d "/usr/local/udptools" ]; then
mkdir /usr/local/udptools
fi
if [ ! -d "/usr/local/udptools/bin" ]; then
mkdir /usr/local/udptools/bin
fi
if [ ! -d "/usr/local/udptools/src" ]; then
mkdir /usr/local/udptools/src
fi
cd /usr/local/udptools/src
if [ ! -f "/usr/local/udptools/src/$UDP2RAW_BIN" ]; then
if [ ! -f "/usr/local/udptools/src/udp2raw.tar.gz" ]; then
wget -O udp2raw.tar.gz https://soft.huayizhiyun.com/network/udptools/udp2raw/udp2raw_20190716.tar.gz
fi
tar -zxvf udp2raw.tar.gz
fi
if [ ! -f "/usr/local/udptools/src/$UDP2RAW_BIN" ]; then
echo "下载udp2raw失败;"
exit
fi
cp /usr/local/udptools/src/$UDP2RAW_BIN /usr/local/udptools/bin/udp2raw
}
Get_udpspeeder()
{
#下载并提取相关文件
if [ ! -d "/usr/local/udptools" ]; then
mkdir /usr/local/udptools
fi
if [ ! -d "/usr/local/udptools/bin" ]; then
mkdir /usr/local/udptools/bin
fi
if [ ! -d "/usr/local/udptools/src" ]; then
mkdir /usr/local/udptools/src
fi
cd /usr/local/udptools/src
if [ ! -f "/usr/local/udptools/src/$UDPSPEEDER_BIN" ]; then
if [ ! -f "/usr/local/udptools/src/udpspeeder.tar.gz" ]; then
wget -O udpspeeder.tar.gz https://soft.huayizhiyun.com/network/udptools/udpspeeder/speederv2_20190121.tar.gz
fi
tar -zxvf udpspeeder.tar.gz
fi
if [ ! -f "/usr/local/udptools/src/$UDPSPEEDER_BIN" ]; then
echo "下载udpspeeder失败;"
exit
fi
cp /usr/local/udptools/src/$UDPSPEEDER_BIN /usr/local/udptools/bin/udpspeeder
}
if [ ! -f "/usr/local/udptools/bin/udp2raw" ]; then
Get_udp2raw
fi
if [ ! -f "/usr/local/udptools/bin/udpspeeder" ]; then
Get_udpspeeder
fi
if [ ! -d "/usr/local/udptools/pid" ]; then
mkdir /usr/local/udptools/pid
fi
if [ ! -d "/usr/local/udptools/log" ]; then
mkdir /usr/local/udptools/log
fi